
:root{--bg:#0A0A0A;--surface:#141414;--surface-light:#1C1C1C;--border:#2A2A2A;--text:#FFFFFF;--text-soft:#E8E8E8;--text-sec:#A0A0A0;--cyan:#25F4EE;--red:#FE2C55;--yellow:#FFD700}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'Inter', system-ui, -apple-system, sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}[hidden]{display:none!important}a{color:inherit}#app{max-width:800px;margin:auto;background:var(--bg);height:100dvh;overflow:hidden}.screen{display:none;height:100%;min-height:0}.screen.active{display:flex}#start-screen{flex-direction:column;padding:20px;gap:16px}.home-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.brand {
  display: inline-block;
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.5px;
  margin: 0;
  text-align: center;
  color: var(--bg);
  background: var(--cyan);
  border: 2px solid var(--text);
  border-radius: 14px;
  padding: 6px 20px;
  box-shadow: 4px 4px 0 var(--text);
  transform: rotate(-3deg);
}.brand span{display:block;font-size:14px;font-weight:500;color:var(--text-sec);letter-spacing:0;margin-top:4px}.brand span{display:block;font-size:14px;font-weight:600;letter-spacing:0;margin-top:3px}.icon-link{display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex-shrink:0;color:var(--bg);background:var(--yellow);border:2px solid var(--text);border-radius:12px;text-decoration:none;box-shadow:4px 4px 0 var(--text);transform:rotate(-2deg);transition:all 0.2s}.icon-link:hover{transform:translate(-2px,-2px) rotate(-2deg);box-shadow:6px 6px 0 var(--text);background:var(--cyan)}.icon-link svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.whatsapp{background:#25d366;width:64px;height:64px;transform:rotate(2deg)}.whatsapp:hover{transform:translate(-2px,-2px) rotate(2deg)}.whatsapp svg{width:36px;height:36px;stroke-width:2}.list-heading{align-self:flex-start;display:inline-block;font-size:24px;font-weight:800;margin:16px 0 8px;color:var(--bg);background:var(--red);border:2px solid var(--text);border-radius:12px;padding:6px 16px;box-shadow:4px 4px 0 var(--text);transform:rotate(-1.5deg)}.categories{display:flex;flex-direction:column;gap:12px;overflow-y:auto;overscroll-behavior:contain;min-height:0;flex:1;padding:4px 12px 4px 4px}.categories::-webkit-scrollbar{width:16px}.categories::-webkit-scrollbar-track{background:var(--surface);border-left:2px solid var(--border)}.categories::-webkit-scrollbar-thumb{background:var(--cyan);border:2px solid var(--text)}.categories::-webkit-scrollbar-thumb:hover{background:var(--red)}.category-card{display:flex;align-items:center;gap:24px;flex-shrink:0;width:100%;min-height:100px;background:var(--surface);border:2px solid var(--border);border-radius:16px;padding:20px 24px;color:var(--text);text-align:left;transition:transform 0.2s,background 0.2s,border-color 0.2s}.category-card:hover{background:var(--surface-light);transform:translateY(-2px);border-color:var(--cyan)}.category-card .emoji{display:flex;align-items:center;justify-content:center;width:52px;height:52px;font-size:26px;background:var(--cyan);border:2px solid var(--text);border-radius:50%;box-shadow:3px 3px 0 var(--text);flex-shrink:0;color:var(--bg)}.category-card strong{font-size:20px;font-weight:900;text-transform:uppercase;letter-spacing:-0.5px;margin-right:auto;color:var(--bg);border:2px solid var(--text);border-radius:10px;padding:6px 14px;box-shadow:3px 3px 0 var(--text)}.category-card:nth-child(5n+1) strong{background:#25F4EE;transform:rotate(-2deg)}.category-card:nth-child(5n+2) strong{background:#FE2C55;transform:rotate(2deg)}.category-card:nth-child(5n+3) strong{background:#FFD700;transform:rotate(-1.5deg)}.category-card:nth-child(5n+4) strong{background:#B026FF;transform:rotate(2.5deg)}.category-card:nth-child(5n+5) strong{background:#00FF7F;transform:rotate(-2.5deg)}.category-card small{font-size:20px;color:var(--cyan);font-weight:600}.catalog-status{font-size:12px;color:#999;margin:0}.catalog-status:empty{display:none}footer{flex-shrink:0;text-align:center}.text-button{border:0;background:none;color:var(--text-sec);padding:8px;font-size:14px}.eyebrow{font-size:11px;letter-spacing:1.5px;color:var(--cyan)}.round-button,.help-button,.close-button{color:var(--text);background:var(--surface);border:2px solid var(--text);border-radius:12px;display:flex;align-items:center;justify-content:center;padding:0 0 4px 0;line-height:0;box-shadow:4px 4px 0 var(--cyan);transition:all 0.2s}.round-button:hover,.help-button:hover,.close-button:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--cyan);background:var(--cyan);color:var(--bg)}.round-button{width:42px;height:42px;font-size:24px}dialog{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:16px;max-width:440px;width:calc(100% - 32px);max-height:80dvh;overflow:auto;padding:32px;line-height:1.6}dialog::backdrop{background:#000b}dialog a{color:var(--cyan);font-weight:500}dialog p{font-size:15px;color:var(--text-soft)}dialog nav{display:flex;flex-direction:column;gap:10px;margin-top:25px}.close-button{width:32px;height:32px;font-size:22px;float:right}@media(min-width:700px){#app{height:calc(100dvh - 64px);margin:32px auto;border:1px solid var(--border);border-radius:12px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
#app{position:relative;padding-bottom:72px}.screen{height:100%;min-height:0;overflow:hidden}.brand {
  display: inline-block;
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.5px;
  margin: 0;
  text-align: center;
  color: var(--bg);
  background: var(--cyan);
  border: 2px solid var(--text);
  border-radius: 14px;
  padding: 6px 20px;
  box-shadow: 4px 4px 0 var(--text);
  transform: rotate(-3deg);
}.brand span{display:block;font-size:14px;font-weight:500;color:var(--text-sec);letter-spacing:0;margin-top:4px}.site-footer{position:absolute;bottom:0;left:0;right:0;height:80px;display:flex;justify-content:center;align-items:center;background:var(--bg);border-top:1px solid var(--border);z-index:5}.about-button{background:var(--cyan);color:var(--bg);border:3px solid var(--text);border-radius:12px;padding:15px 32px;min-height:54px;font-weight:900;font-size:20px;text-transform:uppercase;transition:all 0.2s;display:inline-flex;align-items:center;justify-content:center;letter-spacing:-0.5px;box-shadow:4px 4px 0 var(--text);transform:rotate(1deg)}.about-button:hover{transform:translate(-2px,-2px) rotate(1deg);box-shadow:6px 6px 0 var(--text);background:var(--yellow,#FFD700)}.brutalist-dialog{background:var(--bg);color:var(--text);border:4px solid var(--text);border-radius:20px;max-width:500px;width:calc(100% - 32px);max-height:85dvh;overflow-y:auto;padding:40px;text-align:center;box-shadow:8px 8px 0 var(--cyan);position:relative}.brutalist-dialog::backdrop{background:rgba(0,0,0,0.6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.brutalist-dialog h2{font-size:32px;font-weight:900;text-transform:uppercase;margin:0 auto 24px;color:var(--bg);background:var(--cyan);border:2px solid var(--text);border-radius:14px;padding:8px 24px;box-shadow:4px 4px 0 var(--text);transform:rotate(-2deg);display:inline-block}.brutalist-dialog p{font-size:18px;font-weight:600;margin-bottom:24px;color:var(--text)}.brutalist-dialog .subtitle{color:var(--bg);background:var(--red);border:2px solid var(--text);border-radius:10px;padding:6px 16px;box-shadow:4px 4px 0 var(--text);font-weight:800;font-size:20px;text-transform:uppercase;margin-bottom:24px;display:inline-block;transform:rotate(1deg)}.brutalist-dialog ul{text-align:left;list-style:none;padding:0;margin:0 0 32px 0;display:flex;flex-direction:column;gap:16px}.brutalist-dialog li{background:var(--surface);border:2px solid var(--text);border-radius:12px;padding:16px;font-size:16px;font-weight:600;box-shadow:4px 4px 0 var(--cyan);position:relative;transition:transform 0.2s;color:var(--text)}.brutalist-dialog li:hover{transform:translateY(-2px);box-shadow:6px 6px 0 var(--cyan)}.brutalist-dialog a{display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--text);border:2px solid var(--text);border-radius:12px;padding:16px;margin-bottom:16px;font-size:18px;font-weight:800;text-transform:uppercase;text-decoration:none;box-shadow:4px 4px 0 var(--red);transition:all 0.2s}.brutalist-dialog a:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--red);background:var(--red);color:var(--bg)}.brutalist-dialog nav{display:flex;flex-direction:column;gap:12px;margin-top:32px}.brutalist-dialog nav a{box-shadow:4px 4px 0 var(--cyan);margin:0}.brutalist-dialog nav a:hover{box-shadow:6px 6px 0 var(--cyan);background:var(--cyan);color:var(--bg)}.brutalist-dialog .close-button{position:absolute;top:16px;right:16px;z-index:10;background:var(--bg);color:var(--text);border:2px solid var(--text);border-radius:50%;width:40px;height:40px;font-size:28px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:2px 2px 0 var(--cyan);padding:0 0 4px 0;cursor:pointer}.brutalist-dialog .close-button:hover{background:var(--cyan);color:var(--bg);transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--text)}.search-wrapper{flex-shrink:0;position:relative}.search-input{width:100%;padding:16px 16px 16px 48px;border:3px solid var(--text);border-radius:12px;background:var(--surface);color:var(--text);font-size:18px;font-weight:800;text-transform:uppercase;box-shadow:4px 4px 0 var(--cyan);outline:none;-webkit-appearance:none;appearance:none;transition:all 0.2s}.search-input::placeholder{color:var(--text-sec)}.search-input:focus{border-color:var(--text);background:var(--surface-light);box-shadow:6px 6px 0 var(--red);transform:translate(-2px,-2px)}.search-wrapper::before{content:'\2315';position:absolute;left:18px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:900;color:var(--text);pointer-events:none;line-height:1}

/* --- ANIMATIONS & KINETIC TYPOGRAPHY --- */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(15px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes marquee {
  0% { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}

@keyframes kineticText {
  0% { letter-spacing: 2px; opacity: 0; filter: blur(4px); }
  100% { letter-spacing: -0.5px; opacity: 1; filter: blur(0); }
}

.brand {
  animation: kineticText 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

/* Staggered fade in for category cards */
.category-card {
  animation: fadeInUp 0.5s ease-out forwards;
  opacity: 0; /* Starts hidden */
}

.category-card:nth-child(1) { animation-delay: 0.05s; }
.category-card:nth-child(2) { animation-delay: 0.10s; }
.category-card:nth-child(3) { animation-delay: 0.15s; }
.category-card:nth-child(4) { animation-delay: 0.20s; }
.category-card:nth-child(5) { animation-delay: 0.25s; }
.category-card:nth-child(6) { animation-delay: 0.30s; }
.category-card:nth-child(7) { animation-delay: 0.35s; }
.category-card:nth-child(8) { animation-delay: 0.40s; }
.category-card:nth-child(n+9) { animation-delay: 0.45s; }

/* Subtle reveal for main headers */
.list-heading {
  animation: fadeInUp 0.6s ease-out forwards;
}

/* Ambient background only visible on desktop */
.ambient-bg {
  display: none;
}

@media(min-width: 850px) {
  .ambient-bg {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -1;
    overflow: hidden;
    background: #0A0A0A;
  }
  
  .blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(120px);
    opacity: 0.15;
    animation: float 8s infinite ease-in-out alternate;
  }
  
  .blob-cyan {
    width: 400px;
    height: 400px;
    background: var(--cyan);
    top: 10%;
    left: 20%;
    animation-delay: 0s;
  }
  
  .blob-red {
    width: 500px;
    height: 500px;
    background: var(--red);
    bottom: -10%;
    right: 15%;
    animation-duration: 25s;
    animation-direction: alternate-reverse;
  }
  
  @keyframes float {
    0% { transform: translate(0, 0) scale(1); }
    33% { transform: translate(50px, -50px) scale(1.1); }
    66% { transform: translate(-30px, 40px) scale(0.9); }
    100% { transform: translate(0, 0) scale(1); }
  }
}

.correct-words{display:flex;flex-direction:column;gap:12px}.correct-word{width:100%;padding:14px;border:2px solid var(--text);border-radius:12px;background:var(--surface);color:var(--text);font-weight:800;overflow-wrap:anywhere}.correct-word:hover{background:var(--cyan);color:var(--bg)}

.category-card .emoji img{width:100%;height:100%;object-fit:contain;border-radius:50%}

.home-header .brand{display:flex;align-items:center;gap:10px}.home-header .brand img{width:32px;height:32px;flex-shrink:0}
.catalog-view{display:flex;gap:12px}.catalog-view [aria-pressed=true]{color:var(--cyan);font-weight:800}
.categories.grid-view{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:14px}
.grid-view .category-card{flex-direction:column;justify-content:center;gap:16px;padding:18px 10px;min-height:160px;text-align:center}
.grid-view .category-card .emoji{width:64px;height:64px;font-size:32px}.grid-view .category-card strong{margin:0;max-width:100%;overflow-wrap:anywhere;font-size:17px;padding:6px 10px}
@media(min-width:700px){.categories.grid-view{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:360px){.home-header .brand{padding:6px 10px;font-size:22px}.home-header .brand img{width:24px;height:24px}}

#start-screen{gap:12px}#start-screen .list-heading{margin:8px 0}.grid-view .category-card{min-height:140px;gap:12px}.grid-view .category-card .emoji{width:56px;height:56px}

/* The footer stays visible; only the vocabulary region scrolls. */
#app{padding-bottom:80px}
#start-screen>.text-button,.catalog-view,.list-heading{flex-shrink:0}
@media(max-width:699px){
 #start-screen{padding:16px;gap:10px}
 .categories.grid-view{display:flex;flex-direction:column}
 .grid-view .category-card{flex-direction:row;justify-content:flex-start;text-align:left;min-height:90px;padding:16px;gap:16px}
 .category-card strong{font-size:18px;overflow-wrap:anywhere;min-width:0}
 .home-header{gap:8px}
 .home-header .brand{font-size:22px;padding:6px 10px;gap:6px}
 .home-header .brand img{width:26px;height:26px}
 .whatsapp{width:48px;height:48px}
 .list-heading{font-size:20px}
 .catalog-view{display:none}
 .text-button{font-size:16px;min-height:44px}
}

@media(max-width:699px){
 .site-footer .about-button{background:var(--yellow);font-size:15px;min-height:40px;padding:8px 20px;border-width:2px;box-shadow:3px 3px 0 var(--text)}
 .site-footer{height:58px}#app{padding-bottom:58px}
 .camera-layout #app{padding-bottom:0}
}

.desktop-love-label{display:none}
@media(min-width:850px){
 body:not(.camera-layout) #app{width:min(620px,calc((100dvh - 56px)*3/4));height:calc(100dvh - 56px);margin:28px auto;border:7px solid #29292d;border-radius:38px;box-shadow:0 0 0 2px #555,0 24px 60px #0009;isolation:isolate}
 body:not(.camera-layout) #start-screen{padding:16px;gap:10px}
 body:not(.camera-layout) .home-header{gap:8px}
 body:not(.camera-layout) .home-header .brand{font-size:22px;padding:6px 10px;gap:6px}
 body:not(.camera-layout) .home-header .brand img{width:26px;height:26px}
 body:not(.camera-layout) .whatsapp{width:48px;height:48px}
 body:not(.camera-layout) .categories.grid-view{grid-template-columns:repeat(2,minmax(0,1fr))}
 body:not(.camera-layout) .site-footer{height:58px}
 body:not(.camera-layout) #app{padding-bottom:58px}
 body:not(.camera-layout) .site-footer .about-button{font-size:15px;min-height:40px;padding:8px 20px}
 .desktop-love-label{display:flex;flex-direction:column;position:fixed;left:28px;bottom:28px;gap:6px;padding:14px 20px;background:var(--yellow);color:#111;border:3px solid #111;border-radius:12px;box-shadow:6px 6px 0 var(--red);transform:rotate(-3deg);z-index:1}
 .desktop-love-label strong{font-size:20px;font-weight:900}.desktop-love-label span{font-size:13px;font-weight:700}
 .blob{opacity:.3;filter:blur(85px);animation:desktopDrift 12s ease-in-out infinite alternate}
 .blob-cyan{left:10%;top:5%;width:500px;height:500px}
 .blob-red{right:5%;bottom:-5%;animation-duration:16s;animation-direction:alternate-reverse}
 @keyframes desktopDrift{0%{transform:translate(-80px,-40px) scale(.9)}50%{transform:translate(100px,60px) scale(1.12)}100%{transform:translate(-20px,140px) scale(1.25)}}
}
@media(prefers-reduced-motion:reduce){.blob{animation:none!important}}

@media(min-width:850px){
 .camera-layout #app{width:min(620px,calc((100dvh - 56px)*3/4));height:calc(100dvh - 56px);margin:28px auto;padding:0;border:7px solid #29292d;border-radius:38px;box-shadow:0 0 0 2px #555,0 24px 60px #0009;isolation:isolate}
 #app #game-screen{border-radius:28px 28px 0 0}
}
