/* ============================================================
   ORCHARDMC — premium cherry-orchard identity
   Editorial, layered, intentional. Not a template.
   ============================================================ */

:root {
  /* warm near-black base with depth */
  --bg:       #0c0908;
  --bg-2:     #120d0c;
  --surface:  #18110f;
  --surface-2:#201613;
  --surface-3:#291b17;
  --edge:     #3a241f;
  --edge-hi:  #52302a;

  /* cherry story */
  --cherry:   #e01f3d;
  --cherry-2: #ff4763;
  --cherry-3: #ff7088;
  --cherry-dk:#a01528;
  --wine:     #5e1120;
  --gold:     #f2b64c;
  --cream:    #f6ede0;
  --leaf:     #6cc25f;

  --text:     #f6ece2;
  --text-dim: #c4b3a8;
  --text-mut: #8a7469;

  --r:   16px;
  --r-lg:22px;
  --r-sm:10px;
  --wrap:1200px;

  --display:"Clash Display", system-ui, sans-serif;
  --body:"General Sans", system-ui, sans-serif;
  --mono:"Space Mono", ui-monospace, monospace;

  --shadow: 0 24px 60px -20px rgba(0,0,0,0.6);
  --glow-cherry: 0 0 60px -10px rgba(224,31,61,0.45);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body {
  font-family:var(--body); background:var(--bg); color:var(--text);
  line-height:1.6; overflow-x:hidden; position:relative;
}
/* layered ambient background */
body::before {
  content:""; position:fixed; inset:0; z-index:-2;
  background:
    radial-gradient(70% 50% at 78% -5%, rgba(224,31,61,0.16), transparent 60%),
    radial-gradient(50% 40% at 8% 10%, rgba(242,182,76,0.06), transparent 60%),
    radial-gradient(60% 50% at 50% 108%, rgba(94,17,32,0.35), transparent 65%);
}
body::after {
  content:""; position:fixed; inset:0; z-index:-1; opacity:0.03; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.wrap { max-width:var(--wrap); margin:0 auto; padding:0 24px; }
::selection { background:var(--cherry); color:#fff; }
a { color:inherit; text-decoration:none; }

/* ============ top bar ============ */
.nav {
  position:sticky; top:0; z-index:80;
  background:linear-gradient(to bottom, rgba(12,9,8,0.95), rgba(12,9,8,0.7));
  backdrop-filter:blur(16px) saturate(1.3);
  border-bottom:1px solid rgba(224,31,61,0.14);
}
.nav-in { display:flex; align-items:center; gap:26px; height:72px; }
.brand { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.brand img { width:36px; height:36px; filter:drop-shadow(0 3px 8px rgba(224,31,61,0.4)); transition:transform 0.4s cubic-bezier(.34,1.56,.64,1); }
.brand:hover img { transform:rotate(-10deg) scale(1.08); }
.brand .wm { font-family:var(--display); font-weight:700; font-size:1.34rem; letter-spacing:-0.02em; }
.brand .wm em { font-style:normal; color:var(--cherry-2); }

.links { display:flex; gap:2px; margin-right:auto; }
.links a {
  font-size:0.94rem; font-weight:500; color:var(--text-dim);
  padding:9px 15px; border-radius:var(--r-sm); position:relative; transition:color 0.2s;
}
.links a::after { content:""; position:absolute; left:15px; right:15px; bottom:5px; height:2px; background:var(--cherry-2); border-radius:2px; transform:scaleX(0); transform-origin:left; transition:transform 0.28s cubic-bezier(.2,.8,.3,1); }
.links a:hover { color:var(--text); } .links a:hover::after, .links a.active::after { transform:scaleX(1); }
.links a.active { color:var(--cherry-2); }

.ip-pill {
  display:flex; align-items:center; gap:10px; flex-shrink:0; cursor:pointer;
  font-family:var(--mono); font-size:0.84rem; color:var(--text);
  padding:10px 16px; border-radius:100px;
  background:linear-gradient(135deg, rgba(224,31,61,0.16), rgba(94,17,32,0.2));
  border:1px solid rgba(224,31,61,0.3); transition:box-shadow 0.3s, transform 0.1s;
}
.ip-pill:hover { box-shadow:0 0 0 1px rgba(224,31,61,0.4), 0 10px 26px -8px rgba(224,31,61,0.4); }
.ip-pill:active { transform:scale(0.97); }
.dot { width:8px; height:8px; border-radius:50%; background:var(--text-mut); flex-shrink:0; }
.dot.online { background:var(--leaf); box-shadow:0 0 10px var(--leaf); animation:pulse 2.4s infinite; }
.dot.offline { background:var(--cherry); }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.4} }

/* ============ buttons ============ */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--body); font-weight:600; font-size:0.98rem;
  padding:14px 26px; border-radius:var(--r-sm); cursor:pointer; border:1px solid transparent;
  transition:transform 0.1s, filter 0.2s, box-shadow 0.25s, border-color 0.2s;
}
.btn:active { transform:translateY(1px); }
.btn-cherry { background:linear-gradient(135deg, var(--cherry-2), var(--cherry-dk)); color:#fff; box-shadow:0 10px 30px -10px rgba(224,31,61,0.6), inset 0 1px 0 rgba(255,255,255,0.2); }
.btn-cherry:hover { filter:brightness(1.08); box-shadow:0 16px 40px -10px rgba(224,31,61,0.7), inset 0 1px 0 rgba(255,255,255,0.25); }
.btn-cream { background:var(--cream); color:#2a1512; }
.btn-cream:hover { filter:brightness(0.96); }
.btn-ghost { background:rgba(255,255,255,0.03); color:var(--text); border-color:var(--edge); }
.btn-ghost:hover { border-color:var(--edge-hi); background:rgba(255,255,255,0.06); }
.btn-sm { padding:10px 18px; font-size:0.9rem; }

/* ============ hero ============ */
.hero { padding:70px 0 40px; position:relative; }
.hero-grid { display:grid; grid-template-columns:1.15fr 0.85fr; gap:50px; align-items:center; }

.eyebrow {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:0.76rem; font-weight:700; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--cherry-2); margin-bottom:24px;
  padding:7px 15px; border-radius:100px; background:rgba(224,31,61,0.08); border:1px solid rgba(224,31,61,0.22);
}
.eyebrow img { width:16px; height:16px; }

h1.title {
  font-family:var(--display); font-weight:700; font-size:clamp(2.7rem, 6vw, 4.6rem);
  line-height:0.98; letter-spacing:-0.035em; margin-bottom:22px;
}
h1.title .cherry { background:linear-gradient(120deg, var(--cherry-3), var(--cherry) 60%, var(--wine)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.subtitle { font-size:1.18rem; color:var(--text-dim); max-width:50ch; margin-bottom:32px; }

/* IP copy module — signature element */
.ip-module {
  display:flex; align-items:stretch; gap:0; margin-bottom:18px; max-width:440px;
  border-radius:var(--r); overflow:hidden; border:1px solid rgba(224,31,61,0.3);
  background:linear-gradient(135deg, rgba(224,31,61,0.12), rgba(18,13,12,0.6));
  box-shadow:var(--shadow);
}
.ip-module .ip-left { flex:1; padding:16px 22px; cursor:pointer; position:relative; overflow:hidden; }
.ip-module .ip-left::before { content:""; position:absolute; inset:0; background:linear-gradient(115deg, transparent 35%, rgba(255,90,114,0.14) 50%, transparent 65%); transform:translateX(-120%); transition:transform 0.7s; }
.ip-module .ip-left:hover::before { transform:translateX(120%); }
.ip-module .ip-label { font-family:var(--mono); font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-mut); margin-bottom:4px; }
.ip-module .ip-val { font-family:var(--display); font-weight:700; font-size:clamp(1.3rem,3vw,1.7rem); color:var(--cherry-3); letter-spacing:-0.01em; }
.ip-module .ip-btn { display:flex; align-items:center; padding:0 22px; background:linear-gradient(135deg,var(--cherry-2),var(--cherry-dk)); color:#fff; font-weight:600; cursor:pointer; white-space:nowrap; transition:filter 0.2s; }
.ip-module .ip-btn:hover { filter:brightness(1.08); }
.copy-feedback { font-family:var(--mono); font-size:0.82rem; color:var(--leaf); min-height:1.3em; margin-bottom:26px; }

.hero-cta { display:flex; flex-wrap:wrap; gap:12px; }

/* hero character showcase */
.showcase { position:relative; display:flex; justify-content:center; align-items:flex-end; min-height:360px; }
.showcase .stage {
  position:absolute; bottom:20px; width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle at 50% 40%, rgba(224,31,61,0.28), transparent 65%);
  filter:blur(8px);
}
.showcase .char {
  position:relative; z-index:2; width:380px; max-width:100%; height:auto;
  filter:drop-shadow(0 24px 30px rgba(0,0,0,0.55));
}
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }
/* floating live stat card overlapping character */
.stat-float {
  position:absolute; z-index:3; right:-6px; top:24px;
  background:rgba(24,17,15,0.9); backdrop-filter:blur(10px);
  border:1px solid var(--edge-hi); border-radius:var(--r); padding:14px 18px;
  box-shadow:var(--shadow); min-width:150px;
}
.stat-float .sf-row { display:flex; align-items:center; gap:9px; }
.stat-float .sf-num { font-family:var(--display); font-weight:700; font-size:1.5rem; color:var(--cherry-3); line-height:1; }
.stat-float .sf-label { font-family:var(--mono); font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-mut); margin-top:3px; }
.stat-float .sf-cherry { position:absolute; top:-16px; left:-16px; width:34px; height:34px; }

/* ============ trust strip ============ */
.trust { display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; padding:18px 0; border-top:1px solid var(--edge); border-bottom:1px solid var(--edge); }
.trust .ti { display:flex; align-items:center; gap:10px; font-size:0.92rem; color:var(--text-dim); }
.trust .ti b { color:var(--text); }
.trust .ti .tick { width:20px; height:20px; border-radius:6px; background:rgba(224,31,61,0.14); display:flex; align-items:center; justify-content:center; color:var(--cherry-2); font-size:0.7rem; flex-shrink:0; }
.trust .sep { width:1px; align-self:stretch; background:var(--edge); }

/* ============ sections ============ */
section { padding:64px 0; }
.sec-head { max-width:64ch; margin-bottom:40px; }
.sec-eyebrow { font-family:var(--mono); font-size:0.76rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--cherry-2); margin-bottom:12px; display:flex; align-items:center; gap:10px; }
.sec-eyebrow img { width:44px; height:28px; }
h2 { font-family:var(--display); font-weight:700; font-size:clamp(2rem,4vw,2.8rem); letter-spacing:-0.03em; line-height:1.03; margin-bottom:12px; }
.sec-head p { color:var(--text-dim); font-size:1.06rem; }

.reveal { opacity:1; transform:none; }
.reveal.in { opacity:1; transform:none; }

/* ============ gamemode showcase (large, asymmetric) ============ */
.worlds { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.world {
  position:relative; border-radius:var(--r-lg); overflow:hidden; text-decoration:none;
  border:1px solid var(--edge); background:var(--surface);
  display:flex; flex-direction:column; min-height:420px;
  transition:transform 0.3s cubic-bezier(.2,.7,.3,1), border-color 0.3s, box-shadow 0.3s;
}
.world:hover { transform:translateY(-6px); box-shadow:var(--shadow); }
.world.smp:hover { border-color:rgba(108,194,95,0.5); }
.world.sky:hover { border-color:rgba(224,31,61,0.5); }
.world-img { position:relative; height:210px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.world.smp .world-img { background:linear-gradient(135deg, #1e2e18, #14110f); }
.world.sky .world-img { background:linear-gradient(135deg, #2e1418, #14110f); }
.world-img .ph { display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--text-mut); font-family:var(--mono); font-size:0.74rem; }
.world-img .ph svg { width:46px; height:46px; opacity:0.5; }
.world-img img { width:100%; height:100%; object-fit:cover; }
.world-img .world-tag { position:absolute; top:16px; left:16px; font-family:var(--mono); font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; padding:6px 13px; border-radius:100px; backdrop-filter:blur(8px); }
.world.smp .world-tag { background:rgba(108,194,95,0.18); color:#a7e89c; border:1px solid rgba(108,194,95,0.4); }
.world.sky .world-tag { background:rgba(224,31,61,0.18); color:var(--cherry-3); border:1px solid rgba(224,31,61,0.4); }
.world-body { padding:26px 28px; flex:1; display:flex; flex-direction:column; }
.world-body h3 { font-family:var(--display); font-weight:700; font-size:1.9rem; letter-spacing:-0.02em; margin-bottom:10px; }
.world.smp h3 { color:#a7e89c; } .world.sky h3 { color:var(--cherry-3); }
.world-body p { color:var(--text-dim); font-size:0.98rem; margin-bottom:18px; flex:1; }
.world-feats { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.world-feats span { font-family:var(--mono); font-size:0.74rem; padding:5px 11px; border-radius:100px; background:var(--surface-3); color:var(--text-dim); }
.world-go { display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:0.96rem; }
.world.smp .world-go { color:#a7e89c; } .world.sky .world-go { color:var(--cherry-3); }
.world-go .arr { transition:transform 0.2s; } .world:hover .world-go .arr { transform:translateX(5px); }

/* ============ features (editorial 2-col) ============ */
.feat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:2px; background:var(--edge); border:1px solid var(--edge); border-radius:var(--r-lg); overflow:hidden; }
.feat { background:var(--surface); padding:30px 28px; transition:background 0.25s; }
.feat:hover { background:var(--surface-2); }
.feat .fi { width:44px; height:44px; border-radius:12px; background:linear-gradient(135deg, rgba(224,31,61,0.18), rgba(94,17,32,0.2)); border:1px solid rgba(224,31,61,0.3); display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.feat .fi svg { width:22px; height:22px; }
.feat h4 { font-family:var(--display); font-weight:700; font-size:1.18rem; margin-bottom:7px; }
.feat p { color:var(--text-dim); font-size:0.93rem; }

/* ============ community (status + discord) ============ */
.community { display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:start; }
.panel { background:var(--surface); border:1px solid var(--edge); border-radius:var(--r-lg); overflow:hidden; }
.panel-head { display:flex; align-items:center; justify-content:space-between; padding:18px 22px; border-bottom:1px solid var(--edge); }
.panel-head h3 { font-family:var(--display); font-weight:700; font-size:1.2rem; display:flex; align-items:center; gap:10px; }
.panel-head h3 .tick { width:5px; height:18px; border-radius:2px; background:var(--cherry); }
.panel-head .hl { font-family:var(--mono); font-size:0.74rem; color:var(--text-mut); }
.panel-body { padding:22px; }
.status-rows { display:flex; flex-direction:column; gap:16px; }
.status-rows .sr { display:flex; align-items:center; justify-content:space-between; padding-bottom:14px; border-bottom:1px solid var(--edge); }
.status-rows .sr:last-child { border-bottom:none; padding-bottom:0; }
.status-rows .sr .k { font-family:var(--mono); font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-mut); }
.status-rows .sr .v { font-family:var(--display); font-weight:700; font-size:1.3rem; }
.status-rows .sr .v.on { color:var(--leaf); } .status-rows .sr .v.off { color:var(--text-mut); } .status-rows .sr .v.count { color:var(--cherry-3); }
.discord-widget iframe { display:block; width:100%; border:none; }
.discord-fallback { padding:22px; text-align:center; }
.discord-fallback p { color:var(--text-dim); font-size:0.94rem; margin-bottom:16px; }

/* ============ how to join ============ */
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.step { background:var(--surface); border:1px solid var(--edge); border-radius:var(--r); padding:26px; position:relative; }
.step .num { font-family:var(--display); font-weight:700; font-size:2.4rem; color:rgba(224,31,61,0.25); line-height:1; margin-bottom:12px; }
.step h4 { font-family:var(--display); font-weight:700; font-size:1.15rem; margin-bottom:7px; }
.step p { color:var(--text-dim); font-size:0.93rem; }
.step p b { color:var(--cherry-3); font-family:var(--mono); font-size:0.86rem; }

/* ============ reward / quicklinks ============ */
.reward-list { list-style:none; display:flex; flex-direction:column; gap:11px; }
.reward-list li { position:relative; padding-left:26px; font-size:0.94rem; color:var(--text-dim); line-height:1.5; }
.reward-list li::before { content:""; position:absolute; left:0; top:6px; width:12px; height:12px; border-radius:4px; background:linear-gradient(135deg,var(--cherry-2),var(--cherry-dk)); }
.qlinks { display:flex; flex-direction:column; }
.qlink { display:flex; justify-content:space-between; padding:13px 0; border-bottom:1px solid var(--edge); font-weight:500; transition:color 0.15s, padding-left 0.15s; }
.qlink:last-child { border-bottom:none; }
.qlink:hover { color:var(--cherry-2); padding-left:5px; }
.qlink .a { color:var(--text-mut); } .qlink:hover .a { color:var(--cherry-2); }

/* ============ subpages ============ */
.subhero { padding:56px 0 10px; position:relative; }
.subhero .eyebrow { margin-bottom:18px; }
.subhero h1 { font-family:var(--display); font-weight:700; font-size:clamp(2.2rem,5vw,3.4rem); letter-spacing:-0.03em; line-height:1.02; margin-bottom:14px; }
.subhero h1 .ac-smp { color:#a7e89c; } .subhero h1 .ac-sky { color:var(--cherry-3); }
.subhero p { color:var(--text-dim); font-size:1.1rem; max-width:62ch; margin-bottom:24px; }
.subhero .hero-cta { display:flex; flex-wrap:wrap; gap:12px; }

.gm-banner-img { height:280px; border-radius:var(--r-lg); overflow:hidden; margin-top:26px; border:1px solid var(--edge); display:flex; align-items:center; justify-content:center; position:relative; }
.gm-banner-img.smp { background:linear-gradient(135deg,#1e2e18,#14110f); }
.gm-banner-img.sky { background:linear-gradient(135deg,#2e1418,#14110f); }
.gm-banner-img img { width:100%; height:100%; object-fit:cover; }
.gm-banner-img .ph { display:flex; flex-direction:column; align-items:center; gap:10px; color:var(--text-mut); font-family:var(--mono); font-size:0.8rem; }
.gm-banner-img .ph svg { width:56px; height:56px; opacity:0.5; }

.content-cols { display:grid; grid-template-columns:1fr 330px; gap:24px; align-items:start; margin-top:20px; }
.content-cols .side { display:flex; flex-direction:column; gap:20px; }

.prose { color:var(--text-dim); }
.prose h2 { font-family:var(--display); font-weight:700; font-size:1.6rem; letter-spacing:-0.02em; color:var(--text); margin:28px 0 12px; }
.prose h2:first-child { margin-top:0; }
.prose h3 { font-family:var(--display); font-weight:700; font-size:1.2rem; color:var(--text); margin:22px 0 8px; }
.prose p { margin-bottom:13px; line-height:1.7; }
.prose ul { list-style:none; display:flex; flex-direction:column; gap:10px; margin:14px 0; }
.prose ul li { position:relative; padding-left:24px; line-height:1.55; }
.prose ul li::before { content:""; position:absolute; left:0; top:8px; width:10px; height:10px; border-radius:3px; background:var(--cherry); }
.prose strong { color:var(--text); }

.faq-list { display:flex; flex-direction:column; }
.faq-item { border-bottom:1px solid var(--edge); padding:18px 0; }
.faq-item:last-child { border-bottom:none; }
.faq-item summary { font-family:var(--display); font-weight:700; font-size:1.08rem; color:var(--text); cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:12px; align-items:center; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"+"; font-family:var(--mono); color:var(--cherry-2); font-size:1.3rem; }
.faq-item[open] summary::after { content:"\2212"; }
.faq-item .faq-a { color:var(--text-dim); font-size:0.96rem; line-height:1.65; margin-top:11px; }

/* vote */
.vote-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:18px; margin-top:26px; }
.vote-card { position:relative; background:var(--surface); border:1px solid var(--edge); border-radius:var(--r); padding:24px; display:flex; flex-direction:column; gap:8px; overflow:hidden; transition:transform 0.25s, border-color 0.25s; }
.vote-card::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:linear-gradient(var(--cherry-2),var(--cherry-dk)); transform:scaleY(0); transform-origin:top; transition:transform 0.3s; }
.vote-card:hover { transform:translateY(-4px); border-color:var(--edge-hi); }
.vote-card:hover::before { transform:scaleY(1); }
.vote-card .num { position:absolute; top:20px; right:24px; font-family:var(--display); font-weight:700; font-size:1.7rem; color:rgba(224,31,61,0.2); }
.vote-card h3 { font-family:var(--display); font-weight:700; font-size:1.12rem; }
.vote-card p { color:var(--text-dim); font-size:0.9rem; flex:1; }
.vote-card small { font-family:var(--mono); font-size:0.8rem; color:var(--cherry-2); }

/* rules */
.rules-list { display:flex; flex-direction:column; gap:12px; margin-top:26px; }
.rule-item { display:flex; gap:18px; align-items:flex-start; background:var(--surface); border:1px solid var(--edge); border-radius:var(--r); padding:22px 24px; transition:transform 0.2s, border-color 0.2s; }
.rule-item:hover { transform:translateX(4px); border-color:var(--edge-hi); }
.rule-item .rn { font-family:var(--display); font-weight:700; font-size:1.1rem; color:#fff; background:linear-gradient(135deg,var(--cherry-2),var(--cherry-dk)); min-width:44px; height:44px; border-radius:var(--r-sm); display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:inset 0 1px 0 rgba(255,255,255,0.2); }
.rule-item strong { display:block; font-weight:700; font-size:1.08rem; margin-bottom:5px; }
.rule-item span { color:var(--text-dim); font-size:0.95rem; }

.note { margin-top:24px; background:var(--surface); border:1px solid var(--edge); border-left:3px solid var(--gold); border-radius:var(--r); padding:20px 24px; font-size:0.96rem; color:var(--text-dim); }
.note strong { color:var(--gold); } .note a { color:var(--gold); }

/* tip with mascot */
.tip { display:flex; gap:16px; align-items:center; }
.tip img { width:64px; height:auto; image-rendering:pixelated; flex-shrink:0; filter:drop-shadow(0 6px 10px rgba(0,0,0,0.5)); }
.tip .tt { font-size:0.96rem; color:var(--text-dim); } .tip .tt b { color:var(--gold); }

/* ============ footer ============ */
footer { border-top:1px solid rgba(224,31,61,0.14); padding:44px 0 30px; margin-top:50px; }
.foot-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:34px; margin-bottom:30px; }
.foot-brand { display:flex; align-items:center; gap:11px; margin-bottom:14px; }
.foot-brand img { width:32px; height:32px; }
.foot-brand .wm { font-family:var(--display); font-weight:700; font-size:1.2rem; }
.foot-brand .wm em { font-style:normal; color:var(--cherry-2); }
.foot-col p { color:var(--text-mut); font-size:0.9rem; line-height:1.6; }
.foot-col h5 { font-family:var(--mono); font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-mut); margin-bottom:14px; }
.foot-col a { display:block; color:var(--text-dim); font-size:0.94rem; padding:5px 0; transition:color 0.15s; }
.foot-col a:hover { color:var(--cherry-2); }
.foot-bottom { padding-top:22px; border-top:1px solid var(--edge); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; color:var(--text-mut); font-size:0.84rem; }
.foot-ip { font-family:var(--mono); }
.foot-ip b { color:var(--cherry-3); }

a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline:2px solid var(--cherry-2); outline-offset:3px; }
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{animation:none!important;transition:none!important} .reveal{opacity:1;transform:none} html{scroll-behavior:auto} }

/* ============ responsive ============ */
@media (max-width:920px){
  .hero-grid { grid-template-columns:1fr; gap:30px; }
  .showcase { min-height:300px; order:-1; }
  .worlds { grid-template-columns:1fr; }
  .community { grid-template-columns:1fr; }
  .content-cols { grid-template-columns:1fr; }
  .content-cols .side { order:2; }
  .steps { grid-template-columns:1fr; }
  .foot-grid { grid-template-columns:1fr 1fr; }
  .links { display:none; }
}
@media (max-width:560px){
  .foot-grid { grid-template-columns:1fr; }
  .trust .sep { display:none; }
  .stat-float { display:none; }
}

/* ---- online player search (live status panel) ---- */
.player-search { margin-top:18px; border-top:1px solid var(--edge); padding-top:16px; }
.ps-head-row { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:10px; }
.ps-title { font:700 .78rem var(--mono); letter-spacing:.09em; text-transform:uppercase; color:var(--text-dim); }
.ps-hint { font:500 .74rem var(--body); color:var(--text-mut); text-align:right; }
.ps-search { position:relative; margin-bottom:10px; }
.ps-search svg { position:absolute; left:12px; top:50%; transform:translateY(-50%); width:16px; height:16px; color:var(--text-mut); }
.ps-search input { width:100%; padding:10px 12px 10px 36px; font:500 .9rem var(--body); color:var(--text); background:var(--surface-2); border:1px solid var(--edge); border-radius:var(--r-sm); outline:none; transition:border-color .2s, box-shadow .2s; }
.ps-search input:focus { border-color:var(--cherry); box-shadow:0 0 0 3px rgba(224,31,61,.18); }
.ps-results { display:flex; flex-direction:column; gap:2px; max-height:220px; overflow-y:auto; }
.ps-row { display:flex; align-items:center; gap:9px; padding:7px 9px; border-radius:var(--r-sm); font:500 .9rem var(--body); color:var(--text-dim); }
.ps-row:hover { background:var(--surface-2); color:var(--text); }
.ps-head { width:22px; height:22px; border-radius:5px; flex:0 0 auto; image-rendering:pixelated; background:var(--surface-3); }
.ps-row mark { background:rgba(242,182,76,.28); color:var(--cream); border-radius:3px; padding:0 2px; }
.ps-empty { color:var(--text-mut); font:500 .86rem var(--body); padding:14px 6px; text-align:center; }
