*{box-sizing:border-box}
:root{
  --bg:#f7f4ff;--card:#fff;--text:#17132f;--muted:#746f8c;
  --purple:#6f43ff;--purple2:#9b6cff;--line:#e9e3ff;--good:#1e9f63;
  --shadow:0 18px 50px rgba(81,48,176,.12)
}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(145deg,#fbf9ff,#f0eaff);color:var(--text)}
a{text-decoration:none;color:inherit}
.container{width:min(1120px,92%);margin:auto}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:22px 0}
.brand{font-size:28px;font-weight:900;letter-spacing:-1px}.brand span{color:var(--purple)}
.nav{display:flex;gap:10px;align-items:center}
.btn{border:0;border-radius:14px;padding:12px 18px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn-primary{background:linear-gradient(135deg,var(--purple),var(--purple2));color:white;box-shadow:0 8px 24px rgba(111,67,255,.28)}
.btn-light{background:white;border:1px solid var(--line);color:var(--text)}
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:center;padding:44px 0 34px}
.hero h1{font-size:clamp(42px,6vw,72px);line-height:.98;letter-spacing:-3px;margin:0 0 18px}
.hero h1 em{font-style:normal;color:var(--purple)}
.hero p{font-size:18px;color:var(--muted);max-width:640px;line-height:1.65}
.phone-card{background:linear-gradient(145deg,#6f43ff,#b08cff);border-radius:36px;padding:24px;box-shadow:var(--shadow);min-height:400px;display:flex;align-items:center}
.phone-inner{width:100%;background:#fff;border-radius:28px;padding:18px}
.balance-card{background:linear-gradient(135deg,#5f33f4,#8354ff);color:#fff;border-radius:22px;padding:22px;margin-bottom:16px}
.balance-label{opacity:.8;font-size:13px}.balance{font-size:36px;font-weight:900;margin-top:8px}
.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:26px 0}
.feature{background:white;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 26px rgba(51,30,110,.06)}
.feature .icon{font-size:28px}.feature strong{display:block;margin-top:10px}.feature small{color:var(--muted)}
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.auth-card{width:min(520px,100%);background:white;border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow)}
.auth-card h1{margin:0 0 8px}.auth-card p{color:var(--muted)}
.field{margin:14px 0}.field label{display:block;font-size:13px;font-weight:800;margin-bottom:7px}
.input,select{width:100%;border:1px solid #ddd7f3;border-radius:13px;padding:13px 14px;font-size:15px;background:#fff}
.input:focus,select:focus{outline:2px solid #cbbcff;border-color:var(--purple)}
.error{background:#fff0f3;color:#9d2645;border:1px solid #ffd3df;padding:12px;border-radius:12px;margin:12px 0}
.success{background:#effcf6;color:#16734a;border:1px solid #c7f0dc;padding:12px;border-radius:12px;margin:12px 0}
.dashboard{padding-bottom:70px}
.dash-top{display:flex;justify-content:space-between;align-items:center;padding:20px 0}
.user-chip{background:white;border:1px solid var(--line);padding:10px 14px;border-radius:999px}
.wallet{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#5830ee,#8c5cff);color:#fff;border-radius:26px;padding:24px;box-shadow:var(--shadow)}
.wallet .amount{font-size:40px;font-weight:900}
.section-title{display:flex;justify-content:space-between;align-items:end;margin:28px 0 14px}
.task-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.task{background:white;border:1px solid var(--line);border-radius:18px;padding:16px;display:flex;align-items:center;gap:14px}
.task-icon{width:48px;height:48px;border-radius:14px;background:#f0ebff;display:grid;place-items:center;font-size:23px;flex:0 0 auto}
.task-main{flex:1}.task-main h3{margin:0 0 5px;font-size:16px}.task-main small{color:var(--muted)}
.reward{font-weight:900;color:var(--purple);margin:4px 0}
.status{font-size:12px;font-weight:900;color:var(--good)}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-top:1px solid var(--line);display:none;justify-content:space-around;padding:10px 4px;z-index:20}
.bottom-nav a{font-size:12px;text-align:center;color:var(--muted)}.bottom-nav b{display:block;font-size:19px;color:var(--purple)}
.panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;margin:16px 0}
table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}
.modal{position:fixed;inset:0;background:rgba(15,10,35,.55);display:none;place-items:center;padding:20px;z-index:99}
.modal.open{display:grid}.modal-card{width:min(420px,100%);background:white;border-radius:22px;padding:22px}
.lang-buttons{display:grid;gap:10px}.lang-btn{border:1px solid var(--line);background:#fff;padding:14px;border-radius:14px;font-weight:800;cursor:pointer}
.loader-wrap{min-height:100vh;display:grid;place-items:center;text-align:center;padding:20px}
.loader{width:62px;height:62px;border:7px solid #e9e3ff;border-top-color:var(--purple);border-radius:50%;animation:spin .8s linear infinite;margin:auto}
@keyframes spin{to{transform:rotate(360deg)}}
.admin-grid{display:grid;grid-template-columns:220px 1fr;gap:20px}.sidebar{background:#201643;color:#fff;border-radius:20px;padding:18px;height:max-content}.sidebar a{display:block;padding:11px;border-radius:11px}.sidebar a:hover{background:#342766}
@media(max-width:850px){.hero{grid-template-columns:1fr}.phone-card{min-height:auto}.grid{grid-template-columns:repeat(2,1fr)}.task-list{grid-template-columns:1fr}.admin-grid{grid-template-columns:1fr}.sidebar{display:flex;overflow:auto;gap:8px}.sidebar a{white-space:nowrap}}
@media(max-width:620px){.container{width:min(94%,1120px)}.hero{padding-top:24px}.hero h1{font-size:44px}.nav .desktop-only{display:none}.grid{grid-template-columns:1fr 1fr}.wallet{align-items:flex-start;gap:16px;flex-direction:column}.bottom-nav{display:flex}.dashboard{padding-bottom:92px}.task{padding:14px}.auth-card{padding:20px;border-radius:22px}}

/* Dashboard task-flow animation */
.doing-animation{
  margin:30px 0 18px;
  min-height:330px;
  border-radius:28px;
  padding:30px;
  overflow:hidden;
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  align-items:center;
  background:linear-gradient(135deg,#5d35f2 0%,#7c4cff 55%,#a37aff 100%);
  color:#fff;
  box-shadow:var(--shadow);
}
.doing-animation:before{
  content:"";
  position:absolute;
  width:260px;height:260px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  top:-110px;left:-80px;
}
.doing-animation:after{
  content:"";
  position:absolute;
  width:220px;height:220px;
  border-radius:50%;
  background:rgba(255,255,255,.07);
  right:-70px;bottom:-100px;
}
.doing-copy{position:relative;z-index:2}
.doing-kicker{
  display:inline-block;
  font-size:12px;
  font-weight:900;
  letter-spacing:1.3px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);
  padding:8px 11px;
  border-radius:999px;
  margin-bottom:14px
}
.doing-copy h2{font-size:34px;line-height:1.08;margin:0 0 12px;letter-spacing:-1px}
.doing-copy p{margin:0;max-width:480px;line-height:1.6;color:rgba(255,255,255,.83)}
.doing-status{
  width:max-content;
  display:flex;align-items:center;gap:9px;
  margin-top:18px;
  padding:10px 13px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  font-weight:800;
  font-size:13px
}
.doing-dot{
  width:9px;height:9px;border-radius:50%;
  background:#74f0aa;
  box-shadow:0 0 0 0 rgba(116,240,170,.55);
  animation:taskPulse 1.6s infinite
}

.doing-scene{
  min-height:270px;
  position:relative;
  display:grid;
  place-items:center;
  z-index:2
}
.mini-phone{
  width:min(310px,88%);
  border-radius:30px;
  padding:17px;
  background:#fff;
  color:var(--text);
  box-shadow:0 24px 50px rgba(25,8,78,.28);
  animation:phoneFloat 3.4s ease-in-out infinite;
  position:relative;
  z-index:3
}
.mini-phone-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}
.mini-phone-top strong{font-size:18px;color:#5f37f2}
.mini-phone-top span{color:#9d95bb}
.mini-balance{
  background:linear-gradient(135deg,#6c42ff,#8d62ff);
  color:#fff;border-radius:18px;padding:15px;margin-bottom:12px
}
.mini-balance small{display:block;opacity:.8;margin-bottom:3px}
.mini-balance strong{font-size:28px}
.mini-progress{
  height:7px;border-radius:999px;background:rgba(255,255,255,.25);
  overflow:hidden;margin-top:9px
}
.mini-progress span{
  display:block;height:100%;width:72%;border-radius:999px;background:#fff;
  animation:progressGlow 2s ease-in-out infinite
}
.mini-task-row{
  display:flex;align-items:center;gap:10px;
  border:1px solid #eee8ff;
  background:#fbfaff;
  border-radius:14px;
  padding:10px;
  margin-top:8px;
  box-shadow:0 5px 15px rgba(45,28,92,.05)
}
.mini-task-row div{flex:1}
.mini-task-row b{display:block;font-size:13px}
.mini-task-row small{display:block;color:#827a9f;font-size:11px;margin-top:2px}
.mini-task-icon{
  width:34px;height:34px;border-radius:10px;background:#eee9ff;
  display:grid;place-items:center
}
.row-one{animation:rowFloat 3.1s ease-in-out infinite}
.row-two{animation:rowFloat 3.1s ease-in-out .35s infinite}
.row-three{animation:rowFloat 3.1s ease-in-out .7s infinite}
.mini-check{color:#1ea765;font-weight:900;font-size:18px}
.mini-arrow{color:#6f43ff;font-size:24px;font-weight:900}
.mini-spinner{
  width:17px;height:17px;border-radius:50%;
  border:3px solid #ddd4ff;border-top-color:#7144ff;
  animation:spin .8s linear infinite
}
.orbit{
  position:absolute;border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  animation:orbitSpin 12s linear infinite
}
.orbit-one{width:310px;height:310px}
.orbit-two{width:230px;height:230px;animation-direction:reverse;animation-duration:9s}
.floating-coin{
  position:absolute;
  width:48px;height:48px;border-radius:50%;
  display:grid;place-items:center;
  background:#ffd86a;color:#714b00;
  font-weight:1000;font-size:22px;
  box-shadow:0 10px 25px rgba(38,17,94,.22);
  z-index:4
}
.coin-one{right:1%;top:8%;animation:coinFloat 2.8s ease-in-out infinite}
.coin-two{left:4%;bottom:10%;width:38px;height:38px;font-size:17px;animation:coinFloat 3.2s ease-in-out .5s infinite}
.floating-bubble{
  position:absolute;border-radius:50%;background:rgba(255,255,255,.22);
  backdrop-filter:blur(4px)
}
.bubble-one{width:25px;height:25px;left:8%;top:9%;animation:bubbleFloat 4s ease-in-out infinite}
.bubble-two{width:15px;height:15px;right:12%;bottom:8%;animation:bubbleFloat 3.5s ease-in-out .6s infinite}

@keyframes phoneFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1deg)}}
@keyframes rowFloat{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
@keyframes taskPulse{0%{box-shadow:0 0 0 0 rgba(116,240,170,.55)}70%{box-shadow:0 0 0 9px rgba(116,240,170,0)}100%{box-shadow:0 0 0 0 rgba(116,240,170,0)}}
@keyframes progressGlow{0%,100%{opacity:.78}50%{opacity:1}}
@keyframes orbitSpin{to{transform:rotate(360deg)}}
@keyframes coinFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(8deg)}}
@keyframes bubbleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}

@media(max-width:760px){
  .doing-animation{grid-template-columns:1fr;padding:24px;min-height:auto}
  .doing-copy{text-align:center}
  .doing-copy p{margin-left:auto;margin-right:auto}
  .doing-status{margin-left:auto;margin-right:auto}
  .doing-copy h2{font-size:29px}
}
@media(prefers-reduced-motion:reduce){
  .doing-animation *, .doing-animation *:before, .doing-animation *:after{animation:none!important}
}

