:root{
  --purple:#6757e5;
  --blue:#4082f4;
  --ink:#17172a;
  --muted:#77798d;
  --line:#e6e6ef;
  --soft:#f7f7fb;

  --header:72px;
  --footer:40px;
  --left:225px;
  --right:290px;
}

*{box-sizing:border-box}

html,body{
  margin:0;
  height:100%;
}

body{
  font-family:Inter,sans-serif;
  color:var(--ink);
  background:#f5f5f9;
  overflow:hidden;
}

button,input,textarea{
  font:inherit;
}

button{cursor:pointer}

a{
  text-decoration:none;
  color:inherit;
}


.topbar{
  position:fixed;
  top:0;
  left:0;
  right:0;

  height:var(--header);

  display:grid;
  grid-template-columns:var(--left) minmax(250px,700px) 1fr;
  gap:22px;

  align-items:center;

  padding:0 18px;

  background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--line);

  z-index:100;
}

.logo{
  display:flex;
  align-items:center;
  gap:10px;
}

.logo-box{
  width:38px;
  height:38px;

  display:grid;
  place-items:center;

  border-radius:11px;

  font:800 25px Archivo;
  color:#fff;

  background:linear-gradient(135deg,var(--purple),var(--blue));

  box-shadow:0 8px 18px rgba(103,87,229,.25);
}

.logo>span:last-child{
  display:flex;
  flex-direction:column;
}

.logo strong{
  font:800 21px Archivo;
  letter-spacing:-1px;
}

.logo small{
  margin-top:2px;
  font-size:8px;
  color:var(--muted);
}


.search{
  height:43px;

  display:flex;
  align-items:center;
  gap:9px;

  padding:0 13px;

  border:1px solid #dddde8;
  border-radius:12px;

  background:#f8f8fb;
}

.search:focus-within{
  background:white;
  border-color:#8c81e9;
  box-shadow:0 0 0 3px rgba(103,87,229,.08);
}

.search span{
  font-size:20px;
  color:#9293a4;
}

.search input{
  flex:1;

  border:0;
  outline:0;

  background:none;

  font-size:12px;
}


.header-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
}

.header-actions button{
  height:39px;

  padding:0 13px;

  border:1px solid var(--line);
  border-radius:9px;

  background:#fff;

  font-size:11px;
  font-weight:700;
}

.header-actions .ecosystem-btn{
  border:0;

  color:#fff;

  background:linear-gradient(135deg,var(--purple),var(--blue));
}

.mobile-menu{
  display:none;
}


.leftbar,
.rightbar{
  position:fixed;

  top:var(--header);
  bottom:var(--footer);

  overflow-y:auto;

  background:#fff;

  z-index:20;
}


.leftbar{
  left:0;

  width:var(--left);

  padding:18px 14px;

  border-right:1px solid var(--line);
}


.rightbar{
  right:0;

  width:var(--right);

  padding:15px;

  border-left:1px solid var(--line);
}


.workspace{
  position:fixed;

  top:var(--header);
  bottom:var(--footer);

  left:var(--left);
  right:var(--right);

  overflow-y:auto;

  padding:0 22px 35px;

  background:#f7f7fa;
}


.label{
  margin:0 0 8px;

  font-size:8px;
  font-weight:800;
  letter-spacing:1.6px;

  color:#9a9bad;
}


#categories{
  display:flex;
  flex-direction:column;

  gap:3px;
}

#categories button{
  padding:10px 9px;

  border:0;
  border-radius:9px;

  text-align:left;

  background:none;

  color:#595b70;

  font-size:11px;
  font-weight:650;
}

#categories button:hover,
#categories button.active{
  color:#533bd0;
  background:#f0edff;
}


.divider{
  height:1px;

  margin:18px 0;

  background:var(--line);
}


.toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;

  padding:6px;

  font-size:10px;
}

.toggle input{display:none}

.toggle i{
  position:relative;

  width:31px;
  height:17px;

  border-radius:20px;

  background:#d8d8e1;
}

.toggle i::after{
  content:"";

  position:absolute;

  width:11px;
  height:11px;

  top:3px;
  left:3px;

  border-radius:50%;

  background:white;

  transition:.2s;
}

.toggle input:checked+i{
  background:var(--purple);
}

.toggle input:checked+i::after{
  left:17px;
}


.survival{
  margin:20px 0;

  padding:13px;

  border:1px solid #e2defb;
  border-radius:13px;

  background:linear-gradient(135deg,#f3f0ff,#eff5ff);
}

.survival small{
  font-size:8px;
  color:#85869a;
}

.survival strong{
  display:block;

  margin-top:5px;

  font:800 27px Archivo;

  color:#5742d2;
}

.meter{
  height:5px;

  margin:7px 0;

  overflow:hidden;

  border-radius:10px;

  background:#dddaf3;
}

.meter i{
  display:block;

  width:13%;
  height:100%;

  background:linear-gradient(90deg,var(--purple),var(--blue));
}

.survival span{
  font-size:9px;
  color:#85869a;
}


.left-links{
  display:flex;
  flex-direction:column;
}

.left-links a{
  padding:6px;

  font-size:10px;
  color:#77788b;
}


.feed-status{
  height:37px;

  display:flex;
  align-items:center;

  gap:8px;

  border-bottom:1px solid var(--line);

  font-size:9px;
  color:#77788b;
}

.feed-status b{
  font-size:8px;
  letter-spacing:1.1px;

  color:#515267;
}

.feed-status #clock{
  margin-left:auto;
}

.online-dot{
  width:7px;
  height:7px;

  border-radius:50%;

  background:#30b76b;

  box-shadow:0 0 0 4px rgba(48,183,107,.10);
}


.hero{
  position:relative;

  height:385px;

  margin:20px 0;

  overflow:hidden;

  border-radius:17px;

  color:#fff;

  background:#171728;

  box-shadow:0 13px 28px rgba(25,25,44,.13);
}

.hero-image{
  position:absolute;
  inset:0;

  background-size:cover;
  background-position:center;
}

.hero-shade{
  position:absolute;
  inset:0;

  background:
  linear-gradient(90deg,
    rgba(10,10,24,.91),
    rgba(10,10,24,.63) 55%,
    rgba(10,10,24,.12)
  ),
  linear-gradient(0deg,
    rgba(10,10,24,.55),
    transparent
  );
}

.hero-content{
  position:absolute;

  left:34px;
  bottom:36px;

  max-width:650px;

  z-index:3;
}

.hero-meta{
  display:flex;

  gap:8px;

  margin-bottom:11px;

  font-size:9px;

  color:#dcdce8;
}

.hero-meta span:first-child{
  padding:5px 8px;

  border:1px solid rgba(255,255,255,.2);
  border-radius:20px;

  background:rgba(255,255,255,.15);

  font-weight:700;
}

.hero h1{
  margin:0 0 12px;

  font:800 clamp(27px,3vw,46px)/1.04 Archivo;

  letter-spacing:-1.2px;
}

.hero p{
  max-width:590px;

  margin:0 0 18px;

  color:#e2e2eb;

  font-size:12px;
  line-height:1.55;
}

.hero-buttons{
  display:flex;

  gap:7px;
}

.hero-buttons a,
.hero-buttons button{
  padding:10px 13px;

  border:0;
  border-radius:8px;

  font-size:9px;
  font-weight:800;
}

.hero-buttons a{
  background:white;
  color:#26263a;
}

.hero-buttons button{
  color:white;

  border:1px solid rgba(255,255,255,.2);

  background:rgba(255,255,255,.14);
}


.arrow{
  position:absolute;

  top:50%;

  width:36px;
  height:48px;

  transform:translateY(-50%);

  border:0;
  border-radius:9px;

  color:white;

  background:rgba(0,0,0,.25);

  font-size:28px;

  z-index:5;
}

.prev{left:8px}
.next{right:8px}


.hero-dots{
  position:absolute;

  right:17px;
  bottom:14px;

  display:flex;

  gap:4px;

  z-index:5;
}

.hero-dots button{
  width:17px;
  height:3px;

  padding:0;

  border:0;
  border-radius:4px;

  background:rgba(255,255,255,.4);
}

.hero-dots button.active{
  width:29px;

  background:#fff;
}


.feed-header{
  display:flex;
  align-items:end;
  justify-content:space-between;

  padding:4px 0 12px;
}

.feed-header h2{
  margin:0;

  font:700 19px Archivo;

  letter-spacing:-.4px;
}

.sort{
  padding:6px 9px;

  border:1px solid var(--line);
  border-radius:20px;

  background:#fff;

  font-size:9px;
  font-weight:700;

  color:#68697c;
}

.sort.active{
  color:white;

  background:#27273a;
  border-color:#27273a;
}


.article-feed{
  overflow:hidden;

  border:1px solid var(--line);
  border-radius:14px;

  background:#fff;
}

.article{
  display:grid;

  grid-template-columns:145px 1fr auto;

  gap:15px;

  padding:14px;

  border-bottom:1px solid #ededf3;
}

.article:last-child{
  border-bottom:0;
}

.article:hover{
  background:#fbfbfd;
}

.thumb{
  height:94px;

  border-radius:10px;

  background-size:cover;
  background-position:center;
  background-color:#eee;
}

.article-meta{
  display:flex;
  align-items:center;

  gap:6px;

  margin-bottom:6px;

  color:#999aaa;

  font-size:8px;
}

.article-meta b{
  color:#6757e5;
}

.article h3{
  margin:0 0 6px;

  font:700 15px/1.25 Archivo;
}

.article p{
  margin:0;

  color:#727386;

  font-size:10px;
  line-height:1.45;
}

.article-side{
  min-width:80px;

  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:flex-end;

  font-size:9px;
}

.article-side button{
  border:0;

  background:none;

  color:#5d44d6;

  font-size:8px;
  font-weight:800;
}


.widget{
  margin-bottom:12px;

  padding:13px;

  border:1px solid var(--line);
  border-radius:13px;

  background:#fff;
}

.widget-title{
  display:flex;
  align-items:center;
  justify-content:space-between;

  margin-bottom:10px;
}

.widget-title .label{
  margin-bottom:2px;
}

.widget-title h3{
  margin:0;

  font:700 13px Archivo;
}

.widget-title button{
  width:27px;
  height:27px;

  border:1px solid var(--line);
  border-radius:7px;

  background:white;
}


.weather-main{
  display:flex;
  align-items:center;

  gap:10px;
}

.weather-main>strong{
  font:800 35px Archivo;

  letter-spacing:-2px;
}

.weather-main div{
  display:flex;
  flex-direction:column;
}

.weather-main b{
  font-size:10px;
}

.weather-main small{
  margin-top:3px;

  font-size:8px;
  color:#999aaa;
}


.weather-info{
  display:grid;
  grid-template-columns:repeat(3,1fr);

  margin-top:11px;
  padding-top:9px;

  border-top:1px solid var(--line);
}

.weather-info span{
  display:flex;
  flex-direction:column;
}

.weather-info small{
  font-size:7px;
  color:#999aaa;
}

.weather-info b{
  margin-top:2px;

  font-size:9px;
}


.markets>div{
  display:flex;
  justify-content:space-between;

  padding:8px 0;

  border-bottom:1px solid #eeeef4;

  font-size:9px;
}

.markets b{
  display:block;
}

.markets small{
  color:#999aaa;
}

.up{color:#19945a}
.down{color:#d04a64}

.note{
  display:block;

  margin-top:8px;

  color:#a1a2b0;

  font-size:7px;
  line-height:1.4;
}


#popular{
  list-style:none;

  margin:0;
  padding:0;

  counter-reset:item;
}

#popular li{
  counter-increment:item;

  display:grid;
  grid-template-columns:23px 1fr;

  gap:6px;

  padding:8px 0;

  border-bottom:1px solid #eeeef4;
}

#popular li::before{
  content:counter(item);

  font:800 16px Archivo;

  color:#c1c2cf;
}

#popular li span{
  font-size:9px;
  font-weight:650;
  line-height:1.3;
}

#popular li small{
  display:block;

  margin-top:3px;

  color:#999aaa;

  font-size:7px;
}


.tags{
  display:flex;
  flex-wrap:wrap;

  gap:5px;
}

.tags button{
  padding:5px 7px;

  border:1px solid #e5e2f7;
  border-radius:20px;

  background:#f8f7ff;

  color:#6955c6;

  font-size:8px;
}


footer{
  position:fixed;

  left:0;
  right:0;
  bottom:0;

  height:var(--footer);

  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;

  padding:0 16px;

  background:#1e1e2d;

  color:#bfc0cc;

  font-size:7px;

  z-index:100;
}

footer>span:nth-child(2){
  color:#828397;
}

footer nav{
  justify-self:end;

  display:flex;

  gap:13px;
}


.modal{
  position:fixed;
  inset:0;

  display:grid;
  place-items:center;

  padding:20px;

  background:rgba(13,13,27,.68);
  backdrop-filter:blur(6px);

  z-index:200;
}

.hidden{
  display:none;
}

.comment-box{
  position:relative;

  width:min(520px,100%);

  padding:25px;

  border-radius:16px;

  background:#fff;

  box-shadow:0 25px 80px rgba(0,0,0,.25);
}

.close{
  position:absolute;

  right:14px;
  top:11px;

  border:0;

  background:none;

  font-size:25px;
  color:#888;
}

.comment-box h2{
  margin:0;

  font:800 25px Archivo;
}

.comment-intro{
  margin:5px 0 14px;

  color:#77788a;

  font-size:10px;
}

textarea{
  width:100%;
  height:130px;

  resize:none;

  padding:12px;

  outline:0;

  border:1px solid #dddde8;
  border-radius:10px;

  font-size:12px;
}

textarea:focus{
  border-color:#8374e5;

  box-shadow:0 0 0 3px rgba(103,87,229,.08);
}

.submit-comment{
  width:100%;

  margin-top:8px;
  padding:11px;

  border:0;
  border-radius:9px;

  color:white;

  background:linear-gradient(135deg,var(--purple),var(--blue));

  font-size:9px;
  font-weight:800;
}

#commentResult{
  margin-top:12px;

  font-size:11px;
  font-weight:700;
  line-height:1.5;
}

.rejected{
  padding:12px;

  border:1px solid #f0d2d9;
  border-radius:9px;

  color:#b53c54;

  background:#fff5f7;
}

.approved{
  padding:12px;

  border:1px solid #cce9d8;
  border-radius:9px;

  color:#278356;

  background:#f1fff6;
}


#toast{
  position:fixed;

  left:50%;
  bottom:58px;

  transform:translate(-50%,15px);

  padding:9px 12px;

  border-radius:9px;

  background:#242438;
  color:#fff;

  opacity:0;
  pointer-events:none;

  font-size:9px;

  transition:.2s;

  z-index:300;
}

#toast.show{
  opacity:1;
  transform:translate(-50%,0);
}


@media(max-width:1100px){

  :root{
    --right:245px;
  }

  .topbar{
    grid-template-columns:var(--left) 1fr auto;
  }

  #randomBtn{
    display:none;
  }
}


@media(max-width:900px){

  :root{
    --right:0px;
  }

  .rightbar{
    display:none;
  }

  .workspace{
    right:0;
  }
}


@media(max-width:700px){

  :root{
    --left:0px;
    --header:62px;
    --footer:34px;
  }

  .topbar{
    grid-template-columns:auto 1fr auto;

    gap:8px;

    padding:0 9px;
  }

  .logo small{
    display:none;
  }

  .logo-box{
    width:34px;
    height:34px;
  }

  .search{
    height:38px;
  }

  .ecosystem-btn{
    display:none;
  }

  .mobile-menu{
    display:block !important;
  }

  .leftbar{
    width:260px;

    transform:translateX(-100%);

    transition:.2s;

    box-shadow:15px 0 35px rgba(0,0,0,.14);
  }

  .leftbar.open{
    transform:translateX(0);
  }

  .workspace{
    left:0;

    padding:0 10px 25px;
  }

  .hero{
    height:355px;

    margin:10px 0 16px;
  }

  .hero-content{
    left:20px;
    right:18px;
    bottom:28px;
  }

  .hero h1{
    font-size:30px;
  }

  .hero p{
    font-size:10px;
  }

  .arrow{
    display:none;
  }

  .article{
    grid-template-columns:100px 1fr;
  }

  .thumb{
    height:78px;
  }

  .article p{
    display:none;
  }

  .article-side{
    grid-column:2;

    flex-direction:row;

    min-width:0;
  }

  footer{
    grid-template-columns:1fr auto;
  }

  footer>span:nth-child(2){
    display:none;
  }

  footer nav a:nth-child(-n+2){
    display:none;
  }
}


@media(max-width:440px){

  .logo>span:last-child{
    display:none;
  }

  .hero{
    height:330px;
  }

  .hero h1{
    font-size:26px;
  }

  .article{
    grid-template-columns:88px 1fr;
  }

}
