:root{
  --accent:#58AEE8;
  --bg:#fbfeff;
  --muted:#7b8f99;
}

*{box-sizing:border-box;margin:0;padding:0}

body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Noto Sans KR',sans-serif;
  background: linear-gradient(180deg, #f8fbff 0%, #eaf4ff 60%, #e3efff 100%);
}

/* sidebar */
.sidebar{
  width:240px;
  background:#f3f5f8;
  border-right:1px solid #eef4f9;
  padding:22px 0;
  position:fixed;
  top:0;
  left:-260px;
  height:100%;
  z-index:200;
  transition:left 0.3s ease;
}

.sidebar.open{ left:0 }

.sidebar-inner{
  background:#fff;
  padding:22px;
  border-radius:0 12px 12px 0;
}

.side-item{
  padding:10px;
  border-radius:8px;
  cursor:pointer;
  font-weight:700;
  margin-bottom:8px;
}

.side-item:hover{ background:#f0fbff }

.sidebar-overlay{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.35);
  z-index:190;
}

.sidebar-overlay.active{ display:block }

/* topbar */
.topbar{
  height:66px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 22px;
  border-bottom:1px solid #eef4f9;
}

.topbar-left{
  display:flex;
  align-items:center;
  gap:20px;
}

.logo{
  font-weight:900;
  font-size:20px;
  color:var(--accent);
}

.search{
  display:flex;
  align-items:center;
  background:#f1f5f9;
  border-radius:30px;
  padding:4px 6px;
}

.search input{
  border:none;
  outline:none;
  background:transparent;
  padding:8px 12px;
}

/* 버튼 동그랗게 */
.menu-btn,
.mobile-search{
  font-size:20px;
  background:none;
  border:none;
  cursor:pointer;
  padding:8px;
  border-radius:50%;
  width:36px;
  height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.menu-btn:hover,
.mobile-search:hover{
  background:#eef4f9;
}

/* tabs */
.tab-wrap{
  display:flex;
  justify-content:center;
  margin:14px 0;
}

.tab-pill{
  background:#eaf6ff;
  border-radius:28px;
  padding:8px 12px;
  display:flex;
  gap:12px;
}

.tab{
  padding:10px 14px;
  border-radius:14px;
  cursor:pointer;
  font-weight:900;
  transition:0.15s;
}

.tab:hover{
  transform:translateY(-3px);
}

.tab.active{
  background:white;
  color:#0e7fc2;
}

/* ===== 메인 ===== */

.main{
  width:100%;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.container{
  width:100%;
  max-width:1180px;
  margin:20px auto;
  padding:0 12px;
}

.grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  width:100%;
}

/* 카드 */
.card{
  background: rgba(88,174,232,0.08);
  backdrop-filter: blur(6px);

  padding:12px;
  border-radius:12px;
  cursor:pointer;

  text-align:left;

  box-shadow:0 6px 18px rgba(14,50,80,0.03);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card:hover{
  transform: translateY(-6px);
  box-shadow: 0 14px 28px rgba(0,0,0,0.08);
}

/* 제목 (2번째 div) */
.card div:nth-child(2){
  font-weight:900;
  font-size:15px;
}

/* 썸네일 */
.thumb{
  width:100%;
  padding-top:56.25%;
  position:relative;
  border-radius:8px;
  overflow:hidden;
}

.thumb img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* 중요공지 */
.important-notice{
  background:#fff8d6;
  border-bottom:1px solid #ffe58a;
  padding:10px 16px;
  font-weight:700;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:14px;
}

.important-notice button{
  background:none;
  border:none;
  font-size:18px;
  cursor:pointer;
  padding:4px 8px;
  border-radius:6px;
}

.important-notice button:hover{
  background:#ffe58a;
}

/* ===== footer (크레딧 가운데) ===== */
.footer{
  margin-top:40px;
  text-align:center;
  color:#7b8f99;
  padding-top:20px;
  border-top:1px solid #eef4fa;
}

.footer-inner{
  text-align:center;
}