/* ===== RESET ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  --bg:#080d1a;
  --bg2:#0d1428;
  --bg3:#111b35;
  --surface:#141e38;
  --surface2:#1a2540;
  --border:rgba(255,255,255,0.08);
  --border2:rgba(255,255,255,0.14);
  --text:#eef2ff;
  --text2:#8fa0c0;
  --text3:#5a7090;
  --accent:#4f8ef7;
  --accent2:#7cb3ff;
  --green:#22c55e;
  --yellow:#f59e0b;
  --red:#ef4444;
  --purple:#a78bfa;
  --teal:#2dd4bf;
  --nav-h:66px;
  --top-h:58px;
  --radius:16px;
  --radius-sm:10px;
  --font:'Nunito',sans-serif;
  --font-display:'Playfair Display',serif;
  --transition:0.22s cubic-bezier(0.4,0,0.2,1);
}

html{font-size:16px;-webkit-tap-highlight-color:transparent;}
body{
  font-family:var(--font);
  background:var(--bg);
  color:var(--text);
  overflow:hidden;
  height:100dvh;
  max-width:480px;
  margin:0 auto;
}

@media(min-width:481px){
  body{
    max-width:100%;
    display:grid;
    grid-template-columns:1fr;
    justify-items:center;
    background:#050a14;
  }
  body::before{
    content:'';
    position:fixed;inset:0;
    background:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(79,142,247,0.08) 0%,transparent 70%);
    pointer-events:none;
  }
  #app,#splash{
    max-width:480px;width:100%;
    position:relative;
    box-shadow:0 0 60px rgba(0,0,0,0.8),0 0 0 1px rgba(255,255,255,0.06);
  }
}

.hidden{display:none!important;}

/* ===== SPLASH ===== */
#splash{
  position:fixed;inset:0;
  background:var(--bg);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:1.2rem;z-index:1000;
  max-width:480px;margin:0 auto;
}
.splash-logo{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:0.2rem;}
.splash-ring{
  position:absolute;
  width:120px;height:120px;
  border-radius:50%;
  border:2px solid var(--accent);
  opacity:0.25;
  animation:ring-pulse 1.8s ease-in-out infinite;
}
.splash-ring.r2{
  width:160px;height:160px;
  border-color:var(--teal);
  opacity:0.1;
  animation-delay:0.4s;
}
@keyframes ring-pulse{0%,100%{transform:scale(1);opacity:0.25;}50%{transform:scale(1.1);opacity:0.05;}}
.splash-text{
  font-family:var(--font-display);
  font-size:3rem;font-weight:900;
  color:var(--text);letter-spacing:-1px;
}
.splash-text span{color:var(--accent);}
.splash-tagline{font-size:0.85rem;color:var(--text3);letter-spacing:0.5px;}
.splash-loader{width:160px;height:3px;background:var(--surface);border-radius:99px;overflow:hidden;}
.splash-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--teal));border-radius:99px;animation:load-bar 1.8s ease-in-out forwards;}
@keyframes load-bar{from{width:0;}to{width:100%;}}

/* ===== TOP BAR ===== */
.top-bar{
  position:fixed;top:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:480px;height:var(--top-h);
  background:rgba(8,13,26,0.95);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 1.1rem;z-index:100;
}
.logo-wrap{display:flex;align-items:center;gap:0.6rem;}
.logo-icon-wrap{display:flex;align-items:center;}
.logo-text{
  font-family:var(--font-display);
  font-size:1.55rem;font-weight:900;
  color:var(--text);letter-spacing:-0.5px;
  line-height:1;
}
.logo-text span{color:var(--accent);}
.icon-btn{
  background:none;border:1px solid var(--border2);
  color:var(--text2);border-radius:var(--radius-sm);
  width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:var(--transition);
}
.icon-btn:hover,.icon-btn:active{background:var(--surface);color:var(--text);}

/* ===== SEARCH ===== */
.search-bar{
  position:fixed;top:var(--top-h);left:50%;transform:translateX(-50%);
  width:100%;max-width:480px;
  background:var(--bg2);border-bottom:1px solid var(--border);
  padding:0.6rem 1rem;z-index:99;
  animation:slideDown 0.2s ease;
}
@keyframes slideDown{from{transform:translateX(-50%) translateY(-10px);opacity:0;}to{transform:translateX(-50%) translateY(0);opacity:1;}}
.search-inner{
  display:flex;align-items:center;gap:0.6rem;
  background:var(--surface);border:1px solid var(--border2);
  border-radius:var(--radius);padding:0.5rem 0.8rem;color:var(--text2);
}
.search-inner input{flex:1;background:none;border:none;outline:none;font-family:var(--font);font-size:0.95rem;color:var(--text);}
.search-inner input::placeholder{color:var(--text3);}
#search-clear{background:none;border:none;color:var(--text3);cursor:pointer;display:flex;align-items:center;}

/* ===== LAYOUT ===== */
#app{position:fixed;inset:0;max-width:480px;margin:0 auto;display:flex;flex-direction:column;}
.main-content{
  flex:1;overflow-y:auto;overflow-x:hidden;
  padding-top:var(--top-h);padding-bottom:calc(var(--nav-h) + 0.5rem);
  scroll-behavior:smooth;-webkit-overflow-scrolling:touch;
}
.main-content::-webkit-scrollbar{width:3px;}
.main-content::-webkit-scrollbar-thumb{background:var(--border2);border-radius:99px;}

.tab-section{display:none;padding:0 0 1rem;animation:fadeIn 0.25s ease;}
.tab-section.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

/* ===== HERO ===== */
.hero-banner{
  background:linear-gradient(135deg,#0d1b3e 0%,#091228 100%);
  padding:1.6rem 1.3rem 1.4rem;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--border);position:relative;overflow:hidden;
}
.hero-banner::after{
  content:'';position:absolute;top:-40px;right:-40px;
  width:200px;height:200px;
  background:radial-gradient(circle,rgba(79,142,247,0.12) 0%,transparent 70%);
  pointer-events:none;
}
.hero-sub{font-size:0.75rem;color:var(--accent2);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:0.35rem;font-weight:700;}
.hero-title{
  font-family:var(--font-display);
  font-size:1.9rem;font-weight:900;line-height:1.15;color:var(--text);
  margin-bottom:0.4rem;
}
.hero-title span{color:var(--accent);}
.hero-desc{font-size:0.78rem;color:var(--text3);letter-spacing:0.5px;}
.hex-grid{display:flex;gap:8px;}
.hex{width:38px;height:44px;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);animation:float 3s ease-in-out infinite;}
.h1{background:var(--accent);opacity:0.7;animation-delay:0s;}
.h2{background:var(--teal);opacity:0.5;animation-delay:0.5s;}
.h3{background:var(--purple);opacity:0.4;animation-delay:1s;}
@keyframes float{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}

.section-label{font-size:0.7rem;text-transform:uppercase;letter-spacing:2px;color:var(--text3);padding:1.2rem 1.2rem 0.6rem;font-weight:800;}

/* ===== QUICK GRID ===== */
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.7rem;padding:0 1rem;}
.quick-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:1rem 0.85rem;display:flex;flex-direction:column;align-items:flex-start;gap:0.65rem;
  cursor:pointer;font-family:var(--font);font-size:0.88rem;font-weight:700;
  color:var(--text);text-align:left;transition:var(--transition);
  -webkit-tap-highlight-color:transparent;
}
.quick-card:active{transform:scale(0.96);background:var(--surface2);}
.qc-icon{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;}
.notes-icon{background:rgba(79,142,247,0.15);color:var(--accent);}
.papers-icon{background:rgba(245,158,11,0.15);color:var(--yellow);}
.blog-icon{background:rgba(34,197,94,0.15);color:var(--green);}
.video-icon{background:rgba(239,68,68,0.15);color:var(--red);}

/* ===== SUBJECT CHIPS (home) ===== */
.subject-chips{display:flex;flex-wrap:wrap;gap:0.5rem;padding:0 1rem;}
.chip{
  background:var(--surface);border:1px solid var(--border2);
  border-radius:99px;padding:0.3rem 0.85rem;
  font-size:0.8rem;color:var(--text2);cursor:pointer;
  transition:var(--transition);white-space:nowrap;font-weight:700;
  font-family:var(--font);
}
.chip:active,.chip.active{background:var(--accent);color:white;border-color:var(--accent);}

/* ===== BLOG PREVIEW ===== */
.blog-preview-card{
  display:flex;align-items:center;gap:0.8rem;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:1rem 1.1rem;text-decoration:none;color:var(--accent2);
  font-size:0.88rem;font-weight:600;transition:var(--transition);
}
.blog-preview-card:active{background:var(--surface2);}
.bp-dot{width:10px;height:10px;border-radius:50%;background:var(--green);flex-shrink:0;animation:blink 1.5s ease-in-out infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:0.3;}}

/* ===== PAGE HEADER ===== */
.page-header{padding:1.2rem 1.2rem 0.6rem;border-bottom:1px solid var(--border);margin-bottom:0.8rem;}
.page-header h2{font-family:var(--font-display);font-size:1.4rem;font-weight:900;margin-bottom:0.2rem;}
.page-header p{font-size:0.83rem;color:var(--text2);}

/* ===== RESOURCE LIST ===== */
.resource-list{padding:0 0.85rem;display:flex;flex-direction:column;gap:0.65rem;}

/* Semester / subject card */
.resource-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);overflow:hidden;
  transition:var(--transition);text-decoration:none;color:inherit;
  display:block;cursor:pointer;
}
.resource-card:active{transform:scale(0.975);border-color:var(--accent);}
.rc-inner{display:flex;align-items:center;gap:0.9rem;padding:0.9rem 1rem;}
.rc-icon{
  width:48px;height:48px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:1.4rem;
}
.rc-icon.notes-bg{background:rgba(79,142,247,0.15);}
.rc-icon.papers-bg{background:rgba(245,158,11,0.15);}
.rc-icon.blog-bg{background:rgba(34,197,94,0.15);}
.rc-icon.video-bg{background:rgba(239,68,68,0.15);}
.rc-icon.special-bg{background:rgba(167,139,250,0.15);}

.rc-body{flex:1;min-width:0;}
.rc-title{font-size:0.93rem;font-weight:800;color:var(--text);margin-bottom:0.2rem;line-height:1.3;}
.rc-meta{font-size:0.77rem;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rc-code{
  font-size:0.7rem;font-weight:800;border-radius:99px;
  padding:0.2rem 0.6rem;white-space:nowrap;flex-shrink:0;
  background:rgba(79,142,247,0.15);color:var(--accent2);
  font-family:var(--font);letter-spacing:0.3px;
}
.rc-arrow{color:var(--text3);display:flex;align-items:center;flex-shrink:0;}

/* Accent left bar */
.resource-card.accent-notes{border-left:3px solid var(--accent);}
.resource-card.accent-papers{border-left:3px solid var(--yellow);}
.resource-card.accent-blog{border-left:3px solid var(--green);}
.resource-card.accent-video{border-left:3px solid var(--red);}
.resource-card.accent-special{border-left:3px solid var(--purple);}

/* ===== ABOUT ===== */
.about-wrap{padding:1.5rem 1.2rem 2rem;display:flex;flex-direction:column;align-items:center;gap:1.2rem;text-align:center;}
.about-logo-big{font-family:var(--font-display);font-size:2.6rem;font-weight:900;color:var(--text);letter-spacing:-1px;}
.about-logo-big span{color:var(--accent);}
.about-tagline{font-size:0.88rem;color:var(--text2);margin-top:-0.8rem;}
.about-card{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.2rem;text-align:left;}
.about-card-title{font-weight:800;font-size:0.88rem;margin-bottom:0.4rem;color:var(--accent2);}
.about-card p{font-size:0.86rem;color:var(--text2);line-height:1.65;}
.about-links{display:flex;flex-direction:column;gap:0.55rem;width:100%;}
.about-link-btn{
  display:flex;align-items:center;gap:0.7rem;
  background:var(--surface);border:1px solid var(--border2);
  border-radius:var(--radius-sm);padding:0.75rem 1rem;
  font-family:var(--font);font-size:0.88rem;font-weight:700;
  color:var(--text);text-decoration:none;transition:var(--transition);
}
.about-link-btn:active{background:var(--surface2);color:var(--accent);}
.youtube-btn{border-color:rgba(239,68,68,0.3);}
.youtube-btn:active{color:var(--red);}
.made-by-card{
  width:100%;
  background:linear-gradient(135deg,rgba(79,142,247,0.1),rgba(45,212,191,0.05));
  border:1px solid rgba(79,142,247,0.2);border-radius:var(--radius);
  padding:1.3rem;display:flex;flex-direction:column;align-items:center;gap:0.3rem;
}
.mb-label{font-size:0.75rem;color:var(--text3);text-transform:uppercase;letter-spacing:1.2px;font-weight:800;}
.mb-name{font-family:var(--font-display);font-size:1.6rem;font-weight:900;color:var(--accent);text-decoration:none;letter-spacing:-0.5px;}
.mb-sub{font-size:0.8rem;color:var(--text2);}
.app-version{font-size:0.73rem;color:var(--text3);}

/* ===== BOTTOM NAV ===== */
.bottom-nav{
  position:fixed;bottom:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:480px;height:var(--nav-h);
  background:rgba(8,13,26,0.97);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-top:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-around;
  padding:0 0.3rem;z-index:100;
}
.nav-btn{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.18rem;
  background:none;border:none;color:var(--text3);
  font-family:var(--font);font-size:0.62rem;font-weight:800;
  cursor:pointer;padding:0.4rem 0;border-radius:var(--radius-sm);
  transition:var(--transition);-webkit-tap-highlight-color:transparent;min-height:50px;
  letter-spacing:0.2px;
}
.nav-btn.active{color:var(--accent);}
.nav-btn svg{transition:var(--transition);}
.nav-btn.active svg{filter:drop-shadow(0 0 6px rgba(79,142,247,0.5));}

/* ===== SUBSCRIBE POPUP ===== */
.sub-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.88);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  display:flex;align-items:flex-end;justify-content:center;
  z-index:1000;animation:overlayIn 0.3s ease;
}
@keyframes overlayIn{from{opacity:0;}to{opacity:1;}}
.sub-card{
  background:var(--bg2);border:1px solid var(--border2);
  border-radius:28px 28px 0 0;padding:2rem 1.5rem 2.8rem;
  width:100%;max-width:480px;
  display:flex;flex-direction:column;align-items:center;gap:0.75rem;text-align:center;
  animation:sheetUp 0.4s cubic-bezier(0.34,1.56,0.64,1);
}
@keyframes sheetUp{from{transform:translateY(100%);}to{transform:translateY(0);}}
.sub-icon{margin-bottom:0.2rem;}
.sub-title{font-family:var(--font-display);font-size:1.55rem;font-weight:900;color:var(--text);}
.sub-desc{font-size:0.88rem;color:var(--text2);line-height:1.6;max-width:280px;}
.sub-btn{
  display:flex;align-items:center;justify-content:center;gap:0.5rem;
  background:#ff0000;color:white;font-family:var(--font);
  font-size:0.95rem;font-weight:800;text-decoration:none;border:none;
  border-radius:var(--radius);padding:0.9rem 2rem;width:100%;margin-top:0.4rem;
  cursor:pointer;transition:var(--transition);letter-spacing:0.3px;
}
.sub-btn:active{transform:scale(0.97);background:#cc0000;}
.sub-close{background:none;border:none;color:var(--text3);font-family:var(--font);font-size:0.86rem;cursor:pointer;padding:0.5rem;transition:var(--transition);font-weight:700;}
.sub-close:hover{color:var(--text2);}

/* ===== EMPTY / SECTION LABEL ===== */
.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--text3);}
.empty-state svg{margin-bottom:0.8rem;opacity:0.4;}
.empty-state p{font-size:0.9rem;}

/* Section group header inside list */
.list-group-header{
  font-size:0.7rem;text-transform:uppercase;letter-spacing:2px;
  color:var(--text3);font-weight:800;
  padding:0.8rem 0.3rem 0.35rem;
}
