/* ---------- Landing v2: real ChiefOS output ---------- */
.landing{max-width:1240px}
.landing-hero{
  display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); gap:36px; align-items:center;
  min-height:0; padding:26px 0 56px;
}
@media(max-width:1020px){.landing-hero{grid-template-columns:1fr; gap:34px}}
.hero-copy{display:flex; flex-direction:column; gap:20px; align-items:flex-start}
.hero-copy h1{font-size:clamp(38px,4.6vw,62px); line-height:1.02; letter-spacing:-.045em}
.hero-proof{display:flex; flex-wrap:wrap; gap:10px 22px; color:var(--dim); font-weight:600; font-size:14px}
.hero-proof b{color:var(--ink); font-family:var(--display); font-size:20px; margin-right:4px}

/* the stage: one image in -> memes out */
.stage{
  background:rgba(255,255,255,.72); backdrop-filter:blur(10px); border:3px solid var(--ink); border-radius:32px;
  box-shadow:0 10px 0 var(--ink); padding:22px 22px 26px; position:relative;
}
.stage-pick{display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:18px; font-weight:700; color:var(--dim); font-size:14px}
.pick-btn{border:2px solid var(--ink); background:#fff; color:var(--ink); border-radius:999px; padding:6px 16px; font:inherit; font-weight:800; font-size:13.5px; cursor:pointer; transition:transform .14s cubic-bezier(.3,1.8,.5,1)}
.pick-btn:hover{transform:translateY(-2px)}
.pick-btn.active{background:var(--pink); color:#fff; box-shadow:0 3px 0 var(--ink)}
.stage-flow{display:grid; grid-template-columns:minmax(120px,.3fr) minmax(0,1fr); gap:20px; align-items:center}
@media(max-width:620px){.stage-flow{grid-template-columns:1fr}}
.stage-in{position:relative; display:flex; flex-direction:column; align-items:center; gap:12px}
.sticker{
  position:absolute; z-index:3; font-family:var(--display); font-weight:800; font-size:13px; padding:5px 13px; border-radius:999px;
  border:2.5px solid var(--ink); box-shadow:0 3px 0 var(--ink); white-space:nowrap;
}
.s-in{top:-14px; left:-6px; background:var(--yellow); transform:rotate(-5deg)}
.s-out{top:-30px; right:-6px; background:var(--mint); transform:rotate(3deg)}
.ref-card-big{border:3px solid var(--ink); border-radius:24px; overflow:hidden; background:#fff; box-shadow:0 6px 0 var(--ink); aspect-ratio:1; width:100%; max-width:230px}
.ref-card-big img{width:100%; height:100%; object-fit:cover; display:block}
.ref-card-big.swap{animation:refswap .55s cubic-bezier(.3,1.5,.5,1)}
@keyframes refswap{from{transform:scale(.8) rotate(-6deg); opacity:0}}
.stage-arrow{color:var(--pink); width:64px; animation:nudge 1.2s ease-in-out infinite}
.stage-arrow svg{display:block; width:100%; height:auto}
@keyframes nudge{50%{transform:translateX(9px)}}
@media(max-width:620px){.stage-arrow{transform:rotate(90deg); animation:none}}
.stage-out{position:relative; padding-top:6px}
.meme-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:10px}
@media(max-width:780px){.meme-grid{grid-template-columns:repeat(3,1fr)}}
.meme-tile{
  margin:0; position:relative; border:2.5px solid var(--ink); border-radius:16px; overflow:hidden; background:#fff; aspect-ratio:1;
  transform:scale(.3) rotate(0deg); opacity:0; transition:transform .5s cubic-bezier(.3,1.7,.5,1), opacity .25s; box-shadow:0 3px 0 var(--ink);
}
.meme-tile.in{transform:scale(1) rotate(var(--r)); opacity:1}
.meme-tile:hover{transform:scale(1.12) rotate(0deg); z-index:5; box-shadow:0 9px 0 var(--ink)}
.meme-tile img{width:100%; height:100%; object-fit:cover; display:block}
.meme-tile figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:12px 6px 4px; font-size:10.5px; font-weight:800; color:#fff; text-align:center;
  background:linear-gradient(transparent,rgba(42,27,77,.85)); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* menu / bento */
.section-title{text-align:center; margin-bottom:34px}
.section-title .kicker{display:inline-block; background:var(--yellow); border:2.5px solid var(--ink); border-radius:999px; padding:4px 14px; font-weight:800; font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; transform:rotate(-2deg); box-shadow:0 3px 0 var(--ink)}
.section-title h2{font-size:clamp(30px,4.4vw,52px); margin:14px 0 8px}
.section-title p{margin:0; color:var(--dim); font-size:16px}
.menu{margin-bottom:84px}
.bento{display:grid; grid-template-columns:repeat(6,1fr); gap:22px}
.bento-card{
  background:#fff; border:3px solid var(--ink); border-radius:30px; padding:24px; box-shadow:0 8px 0 var(--ink); overflow:hidden;
  display:flex; flex-direction:column; gap:16px; position:relative;
}
.b-tok{grid-column:span 6; background:var(--yellow)}
.b-meme{grid-column:span 4; background:var(--pink); color:#fff}
.b-kol{grid-column:span 6; background:var(--mint)}
.b-nft{grid-column:span 2; background:var(--sky)}
@media(max-width:1000px){.b-tok,.b-meme,.b-kol,.b-nft{grid-column:span 6}}
.bento-text .tag{display:inline-block; background:#fff; color:var(--ink); border:2.5px solid var(--ink); border-radius:999px; padding:3px 13px; font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:.06em}
.bento-text h3{font-size:30px; margin:10px 0 4px; line-height:1.05}
.bento-text p{margin:0; font-weight:500; line-height:1.5; opacity:.92; max-width:440px}
.collage{display:grid; gap:10px; margin-top:auto}
.collage img{width:100%; display:block; object-fit:cover; border:2.5px solid var(--ink); border-radius:16px; background:#fff; transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.collage img:hover{transform:scale(1.07) rotate(-2deg); z-index:3; position:relative}
.collage.coins{grid-template-columns:repeat(6,1fr); gap:12px}
.collage.coins figure{margin:0; position:relative; transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.collage.coins figure:hover{transform:scale(1.07) rotate(-2deg); z-index:3}
.collage.coins img{aspect-ratio:1; border-radius:20px}
.collage.coins figcaption{position:absolute; left:6px; right:6px; bottom:6px; background:#fff; color:var(--ink); border:2px solid var(--ink); border-radius:999px; padding:2px 6px; font-size:11px; font-weight:800; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
@media(max-width:900px){.collage.coins{grid-template-columns:repeat(3,1fr)}}
.collage.memes{grid-template-columns:repeat(3,1fr)} .collage.memes img{aspect-ratio:1}
@media(max-width:700px){.collage.memes{grid-template-columns:repeat(3,1fr)}}
.collage.kol{grid-template-columns:repeat(6,1fr)} .collage.kol img{aspect-ratio:3/4}
@media(max-width:900px){.collage.kol{grid-template-columns:repeat(3,1fr)}}
.collage.nft{display:block}
.nft-stage{position:relative; aspect-ratio:1; max-width:340px; margin:0 auto; border-radius:24px; background:repeating-conic-gradient(#ffffff55 0 25%, #ffffff22 0 50%) 0 0/28px 28px; border:2.5px solid var(--ink); overflow:hidden}
.nft-stage img.nft-base{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border:0; border-radius:0}
.nft-stage img.trait{position:absolute; width:34%; height:auto; border:0; border-radius:0; background:none; filter:drop-shadow(0 4px 0 rgba(42,27,77,.45)); animation:floaty 3.6s ease-in-out infinite; animation-delay:calc(var(--i) * -.6s)}
.nft-stage img.trait:hover{transform:scale(1.15) rotate(-6deg)}
.trait.t0{left:33%; top:0%} .trait.t1{left:2%; top:14%} .trait.t2{right:2%; top:8%}
.trait.t3{left:0; bottom:14%} .trait.t4{right:0; bottom:10%} .trait.t5{left:33%; bottom:0}
@keyframes floaty{50%{transform:translateY(-8px) rotate(3deg)}}

/* pricing on landing */
.pricing{margin-bottom:84px}
.landing-plans .plan-card.earn{background:var(--yellow)}
.landing-plans .plan-card .btn{margin-top:auto}
.earn-list li::before{content:"\2605"}

.landing-steps{margin-bottom:84px}
.landing-auth{padding-top:10px}
.landing-nav{position:sticky; top:0; z-index:30; padding:14px 0; background:linear-gradient(180deg,var(--bg) 70%,transparent)}

/* ---------- login first ---------- */
.landing-hero.login-first{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; min-height:calc(100vh - 150px); padding:10px 0 30px; gap:48px}
@media(max-width:1020px){.landing-hero.login-first{grid-template-columns:1fr; min-height:0}}
.hero-auth{display:flex; justify-content:flex-end}
@media(max-width:1020px){.hero-auth{justify-content:center; order:-1}}
.hero-auth .auth-card{width:min(440px,100%); padding:30px 28px 26px; transform:rotate(1deg)}
@media(max-width:1020px){.hero-auth .auth-card{transform:none}}
.landing-hero.login-first .hero-copy h1{font-size:clamp(36px,4.4vw,60px)}
.scroll-cue{display:flex; flex-direction:column; align-items:center; gap:4px; margin:0 auto 26px; width:max-content; text-decoration:none; color:var(--dim); font-weight:700; font-size:14px}
.scroll-cue i{font-style:normal; font-size:22px; width:40px; height:40px; border-radius:50%; background:#fff; border:3px solid var(--ink); display:grid; place-items:center; box-shadow:0 3px 0 var(--ink); animation:cue 1.5s ease-in-out infinite; color:var(--ink)}
@keyframes cue{50%{transform:translateY(6px)}}
.brew{margin:40px 0 70px}
.brew .stage{max-width:1080px; margin:0 auto}
