:root{
  --bg:#102c44;
  --panel:#284a63;
  --panel2:#203f57;
  --glass:rgba(40,74,99,.84);
  --line:rgba(255,255,255,.14);
  --text:#edf3ff;
  --muted:#d8e2f2;
  --gold:#efc15c;
  --shadow:0 18px 44px rgba(0,0,0,.24);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  color:var(--text);
  font-family:"Segoe UI","Tahoma","Arial",sans-serif;
  background:
    radial-gradient(circle at 18% 14%, rgba(28,117,173,.20), transparent 24%),
    radial-gradient(circle at 85% 12%, rgba(239,193,92,.08), transparent 18%),
    linear-gradient(135deg, #0a2033, #153955 55%, #1f5074);
}
.glass{
  background:var(--glass);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  backdrop-filter:blur(10px);
}
.top-shell{
  width:min(1600px, calc(100% - 18px));
  margin:24px auto 0;
  position:relative;
  z-index:3;
}
.top-bar{
  min-height:118px;
  border-radius:34px;
  padding:14px 20px;
  display:grid;
  grid-template-columns:220px 1fr 220px;
  align-items:center;
  gap:20px;
}
.logo-wrap{
  background:#fff;
  border-radius:24px;
  min-height:94px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px;
  border:1px solid rgba(255,255,255,.7);
}
.logo-wrap img{
  max-width:170px;
  max-height:82px;
  width:auto;
  height:auto;
  display:block;
}
.top-center{
  text-align:center;
}
.title-line{
  font-size:3rem;
  font-weight:900;
  color:#f1f6ff;
  margin-bottom:10px;
}
.nav-row{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:26px;
  font-size:1.15rem;
}
.nav-row a{
  color:#e7effd;
  text-decoration:none;
  font-weight:700;
  transition:.2s ease;
}
.nav-row a:hover{color:var(--gold)}
.page{
  width:min(1600px, calc(100% - 18px));
  margin:16px auto 42px;
  position:relative;
  z-index:2;
}
.hero-panel{
  display:grid;
  grid-template-columns:1.02fr 1.15fr;
  gap:0;
  min-height:610px;
  border-radius:0 0 28px 28px;
  overflow:hidden;
}
.hero-card{
  background:rgba(31,66,92,.86);
  border:1px solid rgba(255,255,255,.10);
}
.visual{
  padding:26px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 20% 50%, rgba(16,106,178,.28), transparent 28%),
    linear-gradient(180deg,#0b2034,#102c44 70%, #0c2237);
}
.visual-frame{
  width:100%;
  max-width:720px;
  border-radius:42px;
  padding:22px;
  background:rgba(63,95,123,.55);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 20px 40px rgba(0,0,0,.20);
}
.visual-frame img{
  width:100%;
  display:block;
  border-radius:32px;
}
.content{
  padding:56px 46px 40px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:linear-gradient(180deg, rgba(44,76,100,.82), rgba(40,74,99,.92));
}
.hackathon{
  margin:0 0 8px;
  color:var(--gold);
  font-size:1.2rem;
  font-weight:800;
}
.mega-title{
  margin:0;
  line-height:.92;
  font-size:clamp(3.6rem, 8vw, 7rem);
  font-weight:900;
  display:grid;
  gap:6px;
}
.mega-title span{
  display:block;
  opacity:0;
  transform:translateY(30px);
  filter:blur(8px);
  animation:titleIn .85s ease forwards;
}
.mega-title span:nth-child(1){animation-delay:.05s}
.mega-title span:nth-child(2){animation-delay:.22s}
.mega-title span:nth-child(3){animation-delay:.39s}
.mega-title span:nth-child(4){animation-delay:.56s}
.mega-title .gold{color:var(--gold)}
.description{
  margin:24px 0 0;
  font-size:1.18rem;
  line-height:2;
  color:var(--muted);
  max-width:760px;
}
.hero-actions{
  margin-top:26px;
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:170px;
  padding:14px 24px;
  border-radius:999px;
  text-decoration:none;
  font-size:1.08rem;
  font-weight:800;
  transition:.25s ease;
}
.btn.primary{
  background:transparent;
  color:#dfeaff;
  border:1px solid rgba(255,255,255,.18);
}
.btn.secondary{
  background:var(--gold);
  color:#182b3c;
}
.btn:hover{transform:translateY(-2px)}
.info-strip{
  margin-top:16px;
  border-radius:26px;
  padding:22px 26px;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:18px;
}
.info-box{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);
  border-radius:24px;
  padding:18px 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  text-align:center;
  font-size:1.18rem;
  font-weight:700;
}
.label{
  color:var(--gold);
  font-size:1.35rem;
  font-weight:900;
}
.cards-grid{
  margin-top:18px;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:18px;
}
.card{
  background:rgba(37,68,93,.88);
  border:1px solid rgba(255,255,255,.12);
  border-radius:28px;
  padding:20px;
  box-shadow:var(--shadow);
}
.card h2{
  margin:0 0 12px;
  color:var(--gold);
  font-size:1.65rem;
}
.card p, .card li{
  line-height:1.95;
  font-size:1.03rem;
  color:#ecf3ff;
}
.card ul{padding:0 20px 0 0; margin:0}
.mini-image{
  margin:-6px -6px 14px;
}
.mini-image img{
  width:100%;
  display:block;
  border-radius:20px;
}
.card-3d{
  transform-style:preserve-3d;
  transition:transform .32s ease, box-shadow .32s ease;
}
.card-3d:hover{
  transform:perspective(1200px) rotateX(4deg) rotateY(-4deg) translateY(-7px);
  box-shadow:0 28px 60px rgba(0,0,0,.28);
}
.gallery-section{
  margin-top:20px;
  background:rgba(37,68,93,.88);
  border:1px solid rgba(255,255,255,.12);
  border-radius:30px;
  padding:24px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.gallery-head{
  text-align:center;
  margin-bottom:16px;
}
.gallery-head h2{
  margin:0 0 10px;
  color:var(--gold);
  font-size:2rem;
}
.gallery-head p{
  margin:0;
  color:var(--muted);
  font-size:1.05rem;
}
.gallery-slider{
  overflow:hidden;
  mask-image:linear-gradient(to left, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image:linear-gradient(to left, transparent, #000 8%, #000 92%, transparent);
}
.gallery-track{
  display:flex;
  gap:18px;
  width:max-content;
  animation:marquee 28s linear infinite;
}
.gallery-slider:hover .gallery-track{animation-play-state:paused}
.gallery-item{
  width:360px;
  overflow:hidden;
  border-radius:24px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  margin:0;
}
.gallery-item img{
  width:100%;
  height:230px;
  object-fit:cover;
  display:block;
}
.gallery-item figcaption{
  padding:12px;
  text-align:center;
  font-weight:800;
}

/* Rain + motion */
.rain{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:
    linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,.18)),
    linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,.12)),
    linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,.10));
  background-size:2px 120px, 1px 90px, 2px 140px;
  background-position:16% -10%, 58% 0%, 84% -20%;
  animation:rainMove .7s linear infinite;
  opacity:.18;
}
.mist{
  position:fixed;
  inset:auto 0 0 0;
  height:220px;
  z-index:0;
  pointer-events:none;
  filter:blur(28px);
  opacity:.12;
}
.mist-a{
  background:radial-gradient(circle at 24% 50%, rgba(255,255,255,.28), transparent 28%),
             radial-gradient(circle at 72% 50%, rgba(255,255,255,.18), transparent 24%);
  animation:mistFloat 14s ease-in-out infinite;
}
.mist-b{
  bottom:55px;
  background:radial-gradient(circle at 38% 50%, rgba(255,255,255,.16), transparent 28%),
             radial-gradient(circle at 86% 50%, rgba(255,255,255,.16), transparent 22%);
  animation:mistFloat 18s ease-in-out infinite reverse;
}
.sparkles{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.85) 1.4px, transparent 1.6px),
    radial-gradient(circle, rgba(239,193,92,.85) 1.2px, transparent 1.4px);
  background-size:280px 280px, 420px 420px;
  opacity:.20;
  animation:twinkle 10s ease-in-out infinite alternate;
}
@keyframes titleIn{
  from{opacity:0; transform:translateY(30px); filter:blur(8px)}
  to{opacity:1; transform:translateY(0); filter:blur(0)}
}
@keyframes marquee{
  from{transform:translateX(0)}
  to{transform:translateX(50%)}
}
@keyframes rainMove{
  from{background-position:16% -20%, 58% -10%, 84% -30%}
  to{background-position:16% 100%, 58% 100%, 84% 100%}
}
@keyframes mistFloat{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(28px)}
}
@keyframes twinkle{
  from{opacity:.14}
  to{opacity:.24}
}
@media (max-width:1200px){
  .cards-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:980px){
  .top-bar{grid-template-columns:160px 1fr 160px}
  .hero-panel{grid-template-columns:1fr}
  .info-strip{grid-template-columns:1fr}
}
@media (max-width:700px){
  .top-bar{grid-template-columns:1fr; gap:14px}
  .title-line{font-size:2.2rem}
  .logo-wrap img{max-width:140px}
  .cards-grid{grid-template-columns:1fr}
  .gallery-item{width:280px}
  .content{padding:34px 24px}
}




/* cinematic glow for hero */
.hero-card{
 box-shadow:0 0 80px rgba(255,255,255,.05), 0 30px 80px rgba(0,0,0,.4);
}



/* Improved title layout */
.mega-title{
  margin:0;
  text-align:center;
  line-height:1.05;
  font-size:clamp(3rem,6vw,5.5rem);
  font-weight:900;
  display:block;
}

.mega-title span{
  display:block;
  margin:6px 0;
}

.title-small{
  font-size:clamp(1.8rem,3vw,2.4rem);
  color:#e8f1ff;
}

.mega-title .gold{
  color:#efc15c;
}



/* Hackathon section */
.hackathon-section{
  margin-top:28px;
  padding:26px;
  border-radius:28px;
  background:rgba(37,68,93,.88);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 44px rgba(0,0,0,.25);
}

.hackathon-section h2{
  text-align:center;
  color:#efc15c;
  font-size:2rem;
  margin-bottom:20px;
}

.hack-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}

.hack-card{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.15);
  border-radius:22px;
  padding:18px;
  transition:.25s;
}

.hack-card:hover{
  transform:translateY(-5px);
  background:rgba(255,255,255,.08);
}

.hack-card h3{
  color:#efc15c;
  margin-bottom:8px;
}

.hack-card p{
  line-height:1.8;
  font-size:0.95rem;
}

@media (max-width:1100px){
  .hack-grid{grid-template-columns:1fr 1fr}
}

@media (max-width:700px){
  .hack-grid{grid-template-columns:1fr}
}



.real-app-section{
  margin-top:26px;
  padding:28px;
  border-radius:30px;
  background:rgba(37,68,93,.88);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 44px rgba(0,0,0,.25);
}
.app-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-top:20px;
}
.app-grid.lower{ margin-top:20px; }
.app-panel{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  padding:20px;
}
.app-panel h3{
  margin:0 0 14px;
  color:#efc15c;
  font-size:1.35rem;
}
.controls{
  display:grid;
  grid-template-columns:1.4fr .9fr auto;
  gap:10px;
  align-items:center;
}
.controls.compact{ grid-template-columns:1fr auto auto auto; }
.controls.compact-2{ grid-template-columns:1fr auto; }
.real-app-section input,
.real-app-section select{
  width:100%;
  border:none;
  outline:none;
  background:rgba(255,255,255,.09);
  color:#fff;
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  padding:14px 15px;
  font-size:1rem;
}
.real-app-section input::placeholder{ color:#dbe6f7; }
.real-app-section select option{ color:#111; }
.app-btn{
  border:none;
  cursor:pointer;
  border-radius:14px;
  padding:13px 18px;
  font-size:1rem;
  font-weight:800;
  transition:.22s ease;
  background:#efc15c;
  color:#152535;
}
.app-btn:hover{ transform:translateY(-2px); }
.app-btn.secondary{ background:#7ed4ff; color:#12314a; }
.app-btn.primary{ background:#efc15c; color:#152535; }
.app-btn.danger{ background:#d75b5b; color:#fff; }
.subject-list-wrap,.schedule-picker,.today-items-wrap{ margin-top:18px; }
.subject-list{ display:grid; gap:10px; }
.subject-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  padding:12px 14px;
}
.subject-item strong{ color:#fff; }
.subject-item small{ color:#dbe6f7; }
.delete-btn{
  border:none;
  background:rgba(215,91,91,.18);
  color:#fff;
  border-radius:12px;
  padding:8px 12px;
  cursor:pointer;
  font-weight:800;
}
.checkbox-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.check-item{
  display:flex;
  align-items:center;
  gap:10px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  padding:12px;
}
.check-item input{ width:18px; height:18px; }
.result-box{ margin-top:16px; }
.result-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:12px;
}
.metric{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  padding:14px;
  text-align:center;
}
.metric-label{
  display:block;
  color:#dbe6f7;
  margin-bottom:8px;
  font-size:.92rem;
}
.metric strong{ color:#fff; font-size:1.3rem; }
.today-items{ display:grid; gap:10px; }
.today-item{
  background:rgba(126,212,255,.10);
  border:1px solid rgba(126,212,255,.25);
  border-radius:14px;
  padding:12px 14px;
  color:#fff;
  font-weight:700;
}
.empty-state{
  color:#dbe6f7;
  background:rgba(255,255,255,.05);
  border:1px dashed rgba(255,255,255,.20);
  border-radius:16px;
  padding:18px;
  text-align:center;
}
.live-chart{
  min-height:300px;
  display:flex;
  justify-content:center;
  align-items:flex-end;
  gap:60px;
  margin-top:18px;
}
.bar-shell{
  width:100px;
  height:230px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  border-radius:24px;
  display:flex;
  align-items:flex-end;
  padding:10px;
}
.live-bar{
  width:100%;
  height:0%;
  border-radius:18px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:10px;
  color:#fff;
  font-weight:900;
  transition:height .8s ease;
}
.full-bar{ background:linear-gradient(180deg,#ff8d77,#c94843); }
.today-bar{ background:linear-gradient(180deg,#7ed4ff,#3396e8); }
.live-bar span{ font-size:.95rem; }
.chart-col{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}
@media (max-width:1100px){ .app-grid{ grid-template-columns:1fr; } }
@media (max-width:760px){
  .controls, .controls.compact, .controls.compact-2{ grid-template-columns:1fr; }
  .checkbox-grid{ grid-template-columns:1fr; }
  .result-grid{ grid-template-columns:1fr; }
}



/* ===== Phone showcase for the smart app ===== */

.app-phone-stage{
  display:flex;
  justify-content:center;
  margin-top:20px;
}

.phone-frame{
  width:420px;
  max-width:95%;
  border-radius:40px;
  padding:18px;
  background:#0b0b0b;
  box-shadow:
    0 25px 60px rgba(0,0,0,0.6),
    0 0 0 6px #1a1a1a,
    0 0 0 10px #000;
  position:relative;
}

.phone-frame::before{
  content:"";
  position:absolute;
  top:10px;
  left:50%;
  transform:translateX(-50%);
  width:120px;
  height:10px;
  border-radius:10px;
  background:#222;
}

.phone-screen{
  border-radius:30px;
  overflow:hidden;
  background:linear-gradient(135deg,#1a3b54,#234f6e);
  padding:20px;
}

/* make the app fit inside the phone screen nicely */
.phone-screen .app-grid{
  grid-template-columns:1fr;
}

.phone-screen .app-panel{
  background:rgba(255,255,255,0.06);
  backdrop-filter:blur(6px);
}

/* subtle glow to highlight innovation */
.real-app-section{
  position:relative;
}

.real-app-section::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 30% 20%, rgba(239,193,92,0.15), transparent 40%),
    radial-gradient(circle at 70% 80%, rgba(126,212,255,0.15), transparent 40%);
}

/* label for prototype */
.phone-frame::after{
  content:"Prototype App";
  position:absolute;
  bottom:-28px;
  left:50%;
  transform:translateX(-50%);
  background:#efc15c;
  color:#132331;
  font-weight:900;
  padding:6px 16px;
  border-radius:20px;
  font-size:0.8rem;
  box-shadow:0 8px 18px rgba(0,0,0,0.35);
}



/* ===== Interactive sound controls ===== */
.sound-toggle{
  position:fixed;
  left:18px;
  bottom:18px;
  z-index:9999;
  border:none;
  border-radius:999px;
  padding:12px 18px;
  background:#efc15c;
  color:#132331;
  font-weight:900;
  font-size:0.95rem;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(0,0,0,0.28);
  transition:transform .2s ease, opacity .2s ease;
}
.sound-toggle:hover{
  transform:translateY(-2px);
}
.sound-toggle.off{
  background:#6f8497;
  color:#fff;
}
