:root{
  --bg:#04060d; --ink:#f4efe6; --mute:rgba(244,239,230,.62); --dim:rgba(244,239,230,.38);
  --gold:#f3c97a; --gold2:#ffe7b3; --line:rgba(243,201,122,.22); --glass:rgba(10,13,24,.58);
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","Noto Serif CJK SC",serif;
  --sans:"PingFang SC","HarmonyOS Sans SC","Noto Sans SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--bg)}
body{color:var(--ink);font-family:var(--sans);background:var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block}

#stage{position:fixed;inset:0;z-index:0}
#gl{width:100%;height:100%;display:block;outline:none}
body.hovering #gl{cursor:pointer}

/* loader */
#loader{position:fixed;inset:0;z-index:50;display:grid;place-content:center;justify-items:center;gap:18px;background:var(--bg);transition:opacity .9s ease .1s,visibility 0s 1s}
body:not(.is-loading) #loader{opacity:0;visibility:hidden}
.loader-feather{width:2px;height:64px;background:linear-gradient(var(--gold2),transparent);box-shadow:0 0 18px var(--gold);animation:pulse 1.4s ease-in-out infinite}
.loader-text{font-size:12px;letter-spacing:.5em;color:var(--mute)}
@keyframes pulse{50%{opacity:.35;transform:scaleY(.7)}}

/* topbar */
.topbar{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:22px clamp(18px,4vw,56px);pointer-events:none}
.topbar>*{pointer-events:auto}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);letter-spacing:.3em;font-size:14px}
.brand-mark{width:18px;height:18px;background:radial-gradient(circle at 50% 60%,var(--gold2),var(--gold) 40%,transparent 70%);filter:drop-shadow(0 0 8px var(--gold))}
.topbar nav{display:flex;gap:clamp(14px,2.4vw,34px);font-size:13px;letter-spacing:.2em;color:var(--mute)}
.topbar nav a:hover{color:var(--gold2)}

/* hero overlay */
main{position:relative;z-index:10;pointer-events:none}
main>section,main>footer{pointer-events:auto}
.hero{height:100vh;height:100svh;position:relative;pointer-events:none!important}
.hero>*{pointer-events:auto}
.hero-copy{position:absolute;left:clamp(18px,4.5vw,72px);bottom:clamp(110px,15vh,170px);max-width:min(40vw,520px)}
.eyebrow{font-size:11px;letter-spacing:.42em;color:var(--gold);text-transform:uppercase;margin-bottom:14px;opacity:.9}
.hero h1{font-family:var(--serif);font-weight:700;font-size:clamp(46px,7.2vw,112px);line-height:1;letter-spacing:.08em;
  background:linear-gradient(180deg,#fff 10%,#f6e2b8 55%,#c79a4f 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 6px 30px rgba(0,0,0,.6))}
.hero-title{margin-top:18px;font-size:clamp(14px,1.35vw,19px);letter-spacing:.32em;color:var(--ink)}
.hero-tagline{margin-top:12px;font-family:var(--serif);font-size:clamp(13px,1.1vw,16px);color:var(--mute);letter-spacing:.18em;line-height:1.9}
.hero-stats{position:absolute;right:clamp(18px,4.5vw,72px);bottom:clamp(110px,15vh,170px);text-align:right}
.stats{display:flex;gap:clamp(18px,2.8vw,44px);justify-content:flex-end}
.stat-num{font-family:var(--serif);font-weight:700;font-size:clamp(30px,3.6vw,56px);line-height:1;color:#fff;text-shadow:0 0 28px rgba(243,201,122,.45);font-variant-numeric:tabular-nums;white-space:nowrap}
.stat-num small{font-size:.48em;margin-left:2px;color:var(--gold2)}
.stat-label{margin-top:10px;font-size:12px;letter-spacing:.3em;color:var(--mute)}
.stats-note{margin-top:16px;font-size:11px;letter-spacing:.14em;color:var(--dim)}
.hint{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.24em;color:var(--mute);white-space:nowrap}
.hint-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold);animation:pulse 1.8s infinite}
.scroll-cue{position:absolute;right:clamp(18px,4.5vw,72px);bottom:30px;width:22px;height:36px;border:1px solid var(--line);border-radius:12px}
.scroll-cue span{position:absolute;left:50%;top:8px;width:2px;height:7px;margin-left:-1px;background:var(--gold);border-radius:2px;animation:cue 1.8s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(12px)}}

.reveal{opacity:0;transform:translateY(24px);transition:opacity 1.2s cubic-bezier(.2,.7,.2,1),transform 1.2s cubic-bezier(.2,.7,.2,1)}
body.revealed .reveal{opacity:1;transform:none}
body.revealed .hero-stats{transition-delay:.25s}
body.revealed .hint{transition-delay:.6s}

/* panels */
.panel+.panel{background:rgba(4,6,13,.9)}
.panel{position:relative;padding:clamp(70px,10vw,140px) clamp(18px,5vw,80px);
  background:linear-gradient(180deg,rgba(4,6,13,0) 0,rgba(4,6,13,.82) 140px,rgba(4,6,13,.9) 100%);}
.panel-head{max-width:1280px;margin:0 auto 42px}
.panel h2{font-family:var(--serif);font-size:clamp(30px,3.6vw,52px);letter-spacing:.14em;font-weight:700}
.panel-sub{margin-top:14px;color:var(--mute);letter-spacing:.12em;font-size:14px;line-height:1.8}
.tabs{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
.tab{border:1px solid var(--line);background:rgba(255,255,255,.02);color:var(--mute);padding:9px 18px;border-radius:99px;font-size:13px;letter-spacing:.16em;cursor:pointer;font-family:inherit;transition:.25s}
.tab:hover{color:var(--ink);border-color:rgba(243,201,122,.5)}
.tab[aria-selected="true"]{background:linear-gradient(135deg,#f6dca6,#c99a50);color:#1b1408;border-color:transparent}

.grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:18px}
.card{position:relative;border-radius:14px;overflow:hidden;background:#0b0f1c;aspect-ratio:3/4;isolation:isolate;
  box-shadow:0 0 0 1px rgba(255,255,255,.06);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.card img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(3,4,10,.92));z-index:1}
.card:hover{transform:translateY(-6px);box-shadow:0 0 0 1px rgba(243,201,122,.55),0 18px 50px -10px rgba(243,201,122,.35)}
.card:hover img{transform:scale(1.06)}
.card-rank{position:absolute;top:10px;left:10px;z-index:2;font-family:var(--serif);font-size:12px;letter-spacing:.1em;padding:3px 9px;border-radius:99px;background:rgba(0,0,0,.45);backdrop-filter:blur(6px);color:var(--gold2)}
.card-rank.top{background:linear-gradient(135deg,#f6dca6,#c99a50);color:#1b1408}
.card-info{position:absolute;left:12px;right:12px;bottom:12px;z-index:2}
.card-title{font-size:13px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-meta{display:flex;justify-content:space-between;margin-top:8px;font-size:11px;color:var(--mute);letter-spacing:.06em}
.card-meta b{color:var(--gold2);font-weight:600}

.accounts{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px}
.acc{display:block;padding:32px;border-radius:20px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(243,201,122,.08),rgba(255,255,255,.015));transition:.3s}
.acc:hover{border-color:rgba(243,201,122,.6);transform:translateY(-4px)}
.acc-head{display:flex;justify-content:space-between;align-items:baseline}
.acc-name{font-family:var(--serif);font-size:28px;letter-spacing:.12em}
.acc-plat{font-size:12px;color:var(--gold);letter-spacing:.2em}
.acc-stats{display:flex;gap:28px;margin-top:26px}
.acc-stats div b{display:block;font-family:var(--serif);font-size:26px;color:#fff}
.acc-stats div span{font-size:12px;color:var(--mute);letter-spacing:.2em}
.acc-go{margin-top:24px;font-size:12px;color:var(--gold2);letter-spacing:.2em}

.footer{text-align:center;padding-bottom:60px}
.contact{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:28px}
.contact a,.contact span{border:1px solid var(--line);padding:12px 22px;border-radius:99px;letter-spacing:.12em;font-size:14px}
.contact a:hover{border-color:var(--gold)}
.fine{margin-top:60px;font-size:11px;color:var(--dim);letter-spacing:.14em;line-height:2}

/* tooltip */
#tip{position:fixed;left:0;top:0;z-index:40;display:flex;gap:14px;width:340px;padding:12px;border-radius:16px;pointer-events:none;
  background:rgba(9,12,22,.72);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);
  border:1px solid rgba(243,201,122,.35);box-shadow:0 24px 60px -12px rgba(0,0,0,.7),0 0 40px -10px rgba(243,201,122,.35);
  opacity:0;transform:translate3d(-9999px,0,0) scale(.96);transition:opacity .2s ease}
#tip.show{opacity:1}
.tip-cover{flex:0 0 92px;height:124px;border-radius:10px;overflow:hidden;background:#111}
.tip-cover img{width:100%;height:100%;object-fit:cover}
.tip-body{display:flex;flex-direction:column;min-width:0;flex:1}
.tip-meta{display:flex;gap:8px;align-items:center;font-size:11px;letter-spacing:.12em;color:var(--mute)}
.tip-rank{font-family:var(--serif);color:#1b1408;background:linear-gradient(135deg,#f6dca6,#c99a50);padding:2px 8px;border-radius:99px;font-weight:700}
.tip-title{margin-top:8px;font-size:14px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tip-likes{margin-top:auto;font-family:var(--serif);font-size:20px;color:#fff}
.tip-likes small{font-family:var(--sans);font-size:11px;color:var(--mute);letter-spacing:.14em;margin-left:6px}
.tip-cta{display:none;margin-top:8px;font-size:13px;color:var(--gold2);letter-spacing:.14em}

/* fallback (no webgl) */
#fallback{display:none;position:fixed;inset:0;z-index:0;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#1a1f36 0,#070a14 55%,#04060d 100%)}
body.no-webgl #fallback{display:block}
body.no-webgl #stage{display:none}
.fb-glow{position:absolute;left:50%;top:38%;width:70vmin;height:70vmin;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,220,160,.35),transparent 60%)}
.fb-wing{position:absolute;left:50%;top:44%;width:0;height:0;z-index:1}
.fb-feather{position:absolute;left:0;bottom:0;transform-origin:50% 100%;border-radius:50% 50% 45% 45%/70% 70% 30% 30%;background-size:cover;background-position:center;
  box-shadow:0 0 0 1px rgba(243,201,122,.7),0 0 24px rgba(243,201,122,.25);filter:saturate(.9) brightness(.85)}
.fb-person{position:absolute;z-index:3;left:50%;bottom:0;height:72vh;transform:translateX(-50%);filter:drop-shadow(0 0 30px rgba(243,201,122,.35))}

@media (max-width:820px){
  .topbar nav{display:none}
  .hero-copy{left:20px;right:20px;max-width:none;bottom:auto;top:84px;text-align:center}
  .hero h1{font-size:44px}
  .hero-title{letter-spacing:.2em;margin-top:12px}
  .hero-tagline{display:none}
  .hero-stats{left:16px;right:16px;bottom:74px;text-align:center}
  .stats{justify-content:space-around;gap:8px;background:rgba(6,8,16,.55);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px;padding:16px 8px}
  .stat-num{font-size:24px}.stat-label{font-size:10px;letter-spacing:.16em}
  .stats-note{font-size:10px}
  .hint{bottom:26px;font-size:11px;letter-spacing:.12em}
  .scroll-cue{display:none}
  .grid{grid-template-columns:repeat(2,1fr);gap:12px}
  #tip{pointer-events:auto;left:12px!important;right:12px;top:auto!important;bottom:16px;width:auto;transform:none!important}
  #tip:not(.show){visibility:hidden}
  .tip-cta{display:inline-block}
}
@media (prefers-reduced-motion:reduce){.reveal{transition:none}}
