/* ============================================================
   YAAASS — Yet Another ARK Ascended Server Suite
   Theme: black canvas, neon paint, brush-stroke display type.
   ============================================================ */

:root{
  --pink:#ff2d9b;
  --pink-lt:#ff6ec7;
  --cyan:#23d5ff;
  --lime:#9dff28;
  --purple:#a855f7;
  --amber:#ff8a1e;

  --bg:#07060b;
  --bg-2:#0b0a12;
  --panel:#100e1a;
  --panel-2:#15121f;
  --line:rgba(255,255,255,.10);
  --line-2:rgba(255,255,255,.06);
  --txt:#f3eef7;
  --dim:#9c93ad;

  --display:'Anton','Archivo Black','Arial Narrow',Impact,sans-serif;
  --body:'Archivo','Segoe UI',system-ui,sans-serif;
  --mono:'Share Tech Mono','JetBrains Mono',Consolas,monospace;

  --max:1200px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:86px}
body{
  margin:0;background:var(--bg);color:var(--txt);
  font-family:var(--body);font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
/* height:auto is required — the width/height attrs on <img> reserve layout space
   (no CLS) but would otherwise pin the rendered height and squash the ratio */
img{max-width:100%;height:auto;display:block}
picture{display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--display);font-weight:400;letter-spacing:.01em;line-height:.95;margin:0}
h1{font-size:clamp(2.6rem,6.2vw,5rem);text-transform:uppercase;font-style:italic}
h2{font-size:clamp(2rem,4.6vw,3.6rem);text-transform:uppercase;font-style:italic}
h3{font-size:1.35rem;text-transform:uppercase}
p{margin:0 0 1rem}

/* film grain / scanline over everything */
.grain{
  position:fixed;inset:0;pointer-events:none;z-index:9;opacity:.5;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.028) 0 1px,transparent 1px 3px);
  mix-blend-mode:overlay;
}

/* ---------- gradient text ---------- */
.grad-pink,.grad-cyan,.grad-lime{-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-pink{background-image:linear-gradient(100deg,#fff 0%,var(--pink-lt) 30%,var(--pink) 70%)}
.grad-cyan{background-image:linear-gradient(100deg,#fff 0%,#8ee9ff 30%,var(--cyan) 75%)}
.grad-lime{background-image:linear-gradient(100deg,#fff 0%,#d4ff8c 30%,var(--lime) 75%)}
.script{font-style:italic}

.c-lime{color:var(--lime)}.c-cyan{color:var(--cyan)}.c-pink{color:var(--pink)}
.c-purple{color:var(--purple)}.c-amber{color:var(--amber)}.c-dim{color:var(--dim)}
.heart{color:var(--pink)}

/* ---------- glow blobs (paint splatter) ---------- */
.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.34;pointer-events:none}
.blob-pink{width:640px;height:540px;background:var(--pink);top:-140px;left:-160px}
.blob-cyan{width:520px;height:460px;background:var(--cyan);top:120px;right:-180px;opacity:.22}
.blob-lime{width:420px;height:380px;background:var(--lime);bottom:-160px;left:38%;opacity:.15}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:2rem;
  padding:.9rem clamp(1rem,4vw,2.5rem);
  border-bottom:1px solid transparent;transition:.25s;
}
.nav.stuck{
  background:rgba(7,6,11,.86);backdrop-filter:blur(14px);
  border-bottom-color:var(--line);box-shadow:0 10px 40px rgba(0,0,0,.6);
}
.brand{display:flex;align-items:center;gap:.7rem;margin-right:auto}
.brand-mark{
  display:grid;place-items:center;width:38px;height:38px;border-radius:9px;
  font-family:var(--display);font-size:1.5rem;font-style:italic;color:#0b0410;
  background:linear-gradient(140deg,var(--pink-lt),var(--pink));
  box-shadow:0 0 22px rgba(255,45,155,.6);
}
.brand-text{font-family:var(--display);font-size:1.35rem;font-style:italic;letter-spacing:.04em;line-height:1}
.brand-text em{
  display:block;font-family:var(--body);font-style:normal;font-size:.6rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--dim);margin-top:3px;
}
.nav-links{display:flex;gap:1.6rem}
.nav-links a{
  font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--dim);transition:.2s;
}
.nav-links a:hover{color:#fff;text-shadow:0 0 14px var(--pink)}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.85rem 1.6rem;border:0;border-radius:9px;cursor:pointer;
  font-family:var(--body);font-size:.86rem;font-weight:800;
  letter-spacing:.11em;text-transform:uppercase;transition:.2s;
}
.btn-sm{padding:.6rem 1.1rem;font-size:.74rem}
.btn-pink{background:linear-gradient(135deg,var(--pink-lt),var(--pink));color:#12000a;box-shadow:0 0 24px rgba(255,45,155,.45)}
.btn-pink:hover{transform:translateY(-2px);box-shadow:0 6px 34px rgba(255,45,155,.75)}
.btn-cyan{background:linear-gradient(135deg,#7fe9ff,var(--cyan));color:#001820;box-shadow:0 0 24px rgba(35,213,255,.4)}
.btn-cyan:hover{transform:translateY(-2px);box-shadow:0 6px 34px rgba(35,213,255,.7)}
.btn-ghost{border:2px solid rgba(255,255,255,.22);color:#fff}
.btn-ghost:hover{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 24px rgba(35,213,255,.3)}
.btn-block{width:100%}

/* the big fat one */
.btn-mega{
  position:relative;display:inline-flex;flex-direction:column;align-items:center;
  padding:1.35rem 3.4rem 1.1rem;border-radius:16px;isolation:isolate;
  background:linear-gradient(135deg,#ff7ccd 0%,var(--pink) 45%,#c8007a 100%);
  color:#170009;transform:skewX(-4deg);
  box-shadow:0 0 0 3px rgba(255,255,255,.16) inset,0 14px 44px rgba(255,45,155,.5),0 0 90px rgba(255,45,155,.28);
  transition:transform .18s,box-shadow .18s;
}
.btn-mega-top{
  font-family:var(--display);font-style:italic;text-transform:uppercase;
  font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1;letter-spacing:.02em;
  text-shadow:0 2px 0 rgba(255,255,255,.35);
}
.btn-mega-sub{
  margin-top:.45rem;font-size:.7rem;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(23,0,9,.72);
}
.btn-mega:hover{transform:skewX(-4deg) translateY(-3px) scale(1.02);box-shadow:0 0 0 3px rgba(255,255,255,.25) inset,0 20px 60px rgba(255,45,155,.7),0 0 130px rgba(255,45,155,.4)}
.btn-mega-glow{
  position:absolute;inset:-3px;border-radius:18px;z-index:-1;
  background:linear-gradient(120deg,var(--cyan),var(--pink),var(--lime),var(--pink));
  background-size:300% 300%;filter:blur(9px);opacity:.75;
  animation:shift 6s linear infinite;
}
@keyframes shift{to{background-position:300% 50%}}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;padding:1rem clamp(1rem,4vw,2.5rem) 4.5rem;overflow:hidden}
.hero-banner{position:relative;max-width:var(--max);margin:0 auto}
.hero-banner img{
  width:100%;border-radius:14px;
  box-shadow:0 0 0 1px rgba(255,255,255,.09),0 30px 90px rgba(0,0,0,.85),0 0 120px rgba(255,45,155,.18);
}
.banner-fade{
  position:absolute;inset:auto 0 0 0;height:38%;border-radius:0 0 14px 14px;pointer-events:none;
  background:linear-gradient(to top,var(--bg) 2%,rgba(7,6,11,0) 100%);
}
.hero-copy{position:relative;max-width:860px;margin:-1.5rem auto 0;text-align:center;z-index:2}
.eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1.1rem;
  padding:.42rem 1.05rem;border:1px solid var(--line);border-radius:999px;
  background:rgba(255,255,255,.03);
  font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);
}
.dot{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 12px var(--lime);animation:blink 2.2s infinite}
@keyframes blink{50%{opacity:.35}}
.lede{max-width:660px;margin:1.4rem auto 2.2rem;color:#c9c1d6;font-size:1.08rem}
.cta-wrap{display:flex;flex-wrap:wrap;gap:1.4rem;align-items:center;justify-content:center}
.trust{
  display:flex;flex-wrap:wrap;gap:2.4rem;justify-content:center;
  list-style:none;margin:2.6rem 0 0;padding:0;
  font-size:.76rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--dim);
}
.trust b{
  display:block;font-family:var(--display);font-size:2.1rem;font-style:italic;letter-spacing:0;
  color:#fff;text-shadow:0 0 22px rgba(255,45,155,.7);
}
.fineprint{margin-top:.9rem;font-size:.72rem;color:#6d6479;font-style:italic}

/* ============================================================
   MARGINALIA — speech bubbles + sticky notes
   Lifted from the poster art. Two placement modes:
     .deco-head  flows into the dead space right of a .sec-head (always safe)
     .deco-edge  absolutely pinned near a section edge (wide screens only)
   ============================================================ */

/* ---- speech bubble ---- */
.bubble{
  position:relative;display:inline-block;max-width:230px;
  padding:.85rem 1.25rem;border-radius:16px;
  background:#f6f2ea;color:#12101a;
  font-family:var(--display);font-style:italic;text-transform:uppercase;
  font-size:1rem;line-height:1.1;text-align:center;
  box-shadow:0 10px 30px rgba(0,0,0,.6);transform:rotate(-4deg);
  transition:transform .22s ease;
}
.bubble::after{
  content:'';position:absolute;left:22px;bottom:-13px;
  border:9px solid transparent;border-top:16px solid #f6f2ea;
}
/* tail on the right instead */
.bubble-r::after{left:auto;right:22px}
.bubble:hover{transform:rotate(0deg) scale(1.04)}

/* ---- sticky note ---- */
.note{
  position:relative;display:inline-block;width:178px;
  padding:1.05rem 1.1rem .95rem;
  background:#ffe86b;color:#241005;
  font-family:var(--display);font-size:.84rem;line-height:1.28;text-transform:uppercase;
  box-shadow:0 12px 28px rgba(0,0,0,.55);
  transform:rotate(-5deg);transition:transform .22s ease;
}
/* strip of tape */
.note::before{
  content:'';position:absolute;top:-9px;left:50%;transform:translateX(-50%) rotate(-2deg);
  width:62px;height:19px;background:rgba(255,255,255,.42);
  box-shadow:0 1px 4px rgba(0,0,0,.3);
}
.note:hover{transform:rotate(0deg) scale(1.04)}
.note-pink{background:#ffd6ea;color:#2a0a1c}
.note-lime{background:#dcff8a;color:#16290a}
.note-cyan{background:#b7f0ff;color:#04222b}
.note-tilt-r{transform:rotate(5deg)}
.note small{
  display:block;margin-top:.4rem;font-family:var(--mono);font-size:.62rem;
  text-transform:none;opacity:.62;letter-spacing:.02em;
}

/* ---- placement: beside a section heading ----
   Headings cap at 760px but some content below them is wider (.faq is 840px),
   so this needs a 1200px viewport before the right-hand space is truly free. */
.deco-head{position:absolute;right:clamp(1rem,4vw,2rem);top:4.2rem;z-index:3;display:none}
.deco-head-2{position:absolute;right:clamp(1rem,4vw,2rem);top:15rem;z-index:3;display:none}
@media(min-width:1200px){.deco-head,.deco-head-2{display:block}}

/* ---- placement: pinned outside a section edge ----
   Needs a real gutter. The container is 1200px, the note ~187px wide once
   rotated, so it only clears the content box above ~1600px viewport. */
.deco-edge{position:absolute;z-index:3;display:none}
.edge-l{left:-170px}
.edge-r{right:-170px}
@media(min-width:1600px){.deco-edge{display:block}}

/* hero marginalia */
.bubble-hero{position:absolute;right:5%;top:30%;display:none}
.sticky-hero{position:absolute;left:3%;bottom:20%;display:none}
.sticky-hero-2{position:absolute;right:6%;bottom:12%;display:none}
@media(min-width:1300px){.bubble-hero,.sticky-hero{display:block}}
@media(min-width:1560px){.sticky-hero-2{display:block}}

/* the one under the app mockup stays centred in flow */
.bubble-app{display:block;width:max-content;margin:1.6rem auto 0;transform:rotate(-2deg)}

/* finale pair */
.deco-fin-l{position:absolute;left:4%;top:22%;display:none}
.deco-fin-r{position:absolute;right:4%;top:34%;display:none}
@media(min-width:1240px){.deco-fin-l,.deco-fin-r{display:block}}

/* ---- note board: in-flow, so it survives every breakpoint ---- */
.board-head{display:flex;align-items:center;gap:1.2rem;margin-bottom:2.4rem}
.board-head h3{
  font-size:1rem;letter-spacing:.2em;color:var(--dim);
  white-space:nowrap;font-family:var(--body);font-weight:800;
}
.board-rule{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent)}
.noteboard{display:flex;flex-wrap:wrap;gap:1.7rem 1.9rem;justify-content:center}
.noteboard .note{margin-top:.4rem}
.noteboard .note:nth-child(2n){transform:rotate(4deg)}
.noteboard .note:nth-child(3n){transform:rotate(-2deg)}
.noteboard .note:nth-child(5n){transform:rotate(6deg)}
.noteboard .note:hover{transform:rotate(0deg) scale(1.05)}

@media(prefers-reduced-motion:reduce){
  .note:hover,.bubble:hover{transform:none}
}

/* ============================================================
   ICON STRIP
   ============================================================ */
.strip{border-block:1px solid var(--line);background:linear-gradient(180deg,#0a0912,#06050a)}
.strip-inner{
  max-width:var(--max);margin:0 auto;padding:1.1rem clamp(1rem,4vw,2rem);
  display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;justify-content:center;
}
.strip-item{display:flex;align-items:center;gap:.65rem}
.strip-item span{font-size:.72rem;line-height:1.15;letter-spacing:.11em;text-transform:uppercase;color:#b7aec4}
.strip-item b{display:block;font-size:.94rem;font-weight:900;letter-spacing:.06em}
.ic{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ic-pink{color:var(--pink);filter:drop-shadow(0 0 7px var(--pink))}
.ic-cyan{color:var(--cyan);filter:drop-shadow(0 0 7px var(--cyan))}
.ic-lime{color:var(--lime);filter:drop-shadow(0 0 7px var(--lime))}
.ic-purple{color:var(--purple);filter:drop-shadow(0 0 7px var(--purple))}
.ic-amber{color:var(--amber);filter:drop-shadow(0 0 7px var(--amber))}
.strip-item:nth-child(1) b{color:var(--pink)}
.strip-item:nth-child(2) b{color:var(--cyan)}
.strip-item:nth-child(3) b{color:var(--lime)}
.strip-item:nth-child(4) b{color:var(--purple)}
.strip-item:nth-child(5) b{color:var(--amber)}
.strip-tag{
  font-family:var(--display);font-style:italic;text-transform:uppercase;
  font-size:.9rem;line-height:1.1;color:#fff;padding-left:1.4rem;border-left:1px solid var(--line);
}
.strip-tag i{display:block;color:var(--pink);text-shadow:0 0 16px rgba(255,45,155,.8)}

/* ============================================================
   SECTIONS
   ============================================================ */
.sec{position:relative;max-width:var(--max);margin:0 auto;padding:6rem clamp(1rem,4vw,2rem)}
.sec-tight{padding-block:2rem}
.sec-head{max-width:760px;margin-bottom:3.2rem}
.kicker{
  display:inline-block;margin:0 0 1rem;padding:.3rem .85rem;border-radius:6px;
  font-size:.68rem;font-weight:900;letter-spacing:.2em;text-transform:uppercase;
}
.kicker-pink{color:var(--pink);background:rgba(255,45,155,.12);border:1px solid rgba(255,45,155,.35)}
.kicker-cyan{color:var(--cyan);background:rgba(35,213,255,.1);border:1px solid rgba(35,213,255,.32)}
.kicker-lime{color:var(--lime);background:rgba(157,255,40,.1);border:1px solid rgba(157,255,40,.3)}
.kicker-amber{color:var(--amber);background:rgba(255,138,30,.1);border:1px solid rgba(255,138,30,.32)}
.sub{margin-top:1.2rem;color:#b3aac0;max-width:620px}
.sub code{font-family:var(--mono);color:var(--cyan);font-size:.92em}

/* ---------- steps ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.steps li{
  position:relative;padding:2rem 1.6rem 1.6rem;border-radius:14px;
  background:linear-gradient(180deg,var(--panel),#0a0812);border:1px solid var(--line);
  transition:.25s;
}
.steps li:hover{border-color:rgba(35,213,255,.45);transform:translateY(-4px)}
.step-n{
  font-family:var(--display);font-style:italic;font-size:2.6rem;line-height:1;
  color:transparent;-webkit-text-stroke:1.5px var(--cyan);opacity:.65;display:block;margin-bottom:.6rem;
}
.steps h3{margin-bottom:.6rem}
.steps p{color:#a99fb8;font-size:.95rem}
.step-term{
  font-family:var(--mono);font-size:.82rem;padding:.6rem .8rem;border-radius:7px;
  background:#05040a;border:1px solid var(--line-2);color:#cfc7dc;
}
.step-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.step-chips i{
  font-style:normal;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:.32rem .65rem;border-radius:999px;border:1px solid rgba(157,255,40,.35);
  color:var(--lime);background:rgba(157,255,40,.07);
}

/* ============================================================
   APP MOCKUP
   ============================================================ */
.sec-app{text-align:left}
.sec-app .sec-head{margin-inline:auto;text-align:center}
.sec-app .sub{margin-inline:auto}
.app-shell{
  border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.14);
  background:var(--bg-2);
  box-shadow:0 40px 120px rgba(0,0,0,.9),0 0 70px rgba(255,45,155,.12),0 0 0 1px rgba(255,45,155,.16);
}
.app-chrome{
  display:flex;align-items:center;gap:.5rem;padding:.65rem 1rem;
  background:#15121f;border-bottom:1px solid var(--line);
}
.tl{width:11px;height:11px;border-radius:50%}
.tl-r{background:#ff5f57}.tl-y{background:#ffbd2e}.tl-g{background:#28c840}
.app-url{
  margin-left:.8rem;padding:.28rem .9rem;border-radius:6px;background:#0a0812;
  border:1px solid var(--line-2);font-family:var(--mono);font-size:.76rem;color:#8f86a0;
}
.app-url i{color:var(--pink);font-style:normal}
.app-badge{
  margin-left:auto;font-size:.62rem;font-weight:900;letter-spacing:.18em;
  color:var(--lime);border:1px solid rgba(157,255,40,.4);border-radius:5px;
  padding:.2rem .55rem;background:rgba(157,255,40,.08);
}
.app-body{display:grid;grid-template-columns:190px 1fr}
.app-side{padding:1rem .7rem;border-right:1px solid var(--line);background:#0a0812;display:flex;flex-direction:column;gap:.15rem}
.app-side a{
  display:flex;align-items:center;gap:.6rem;padding:.52rem .7rem;border-radius:7px;
  font-size:.8rem;font-weight:600;color:#8f86a0;cursor:default;
}
.app-side a.on{background:rgba(255,45,155,.13);color:#fff;box-shadow:inset 2px 0 0 var(--pink)}
.sq{width:7px;height:7px;border-radius:2px}
.sq-pink{background:var(--pink)}.sq-cyan{background:var(--cyan)}.sq-lime{background:var(--lime)}
.sq-purple{background:var(--purple)}.sq-amber{background:var(--amber)}
.app-main{padding:1.2rem;display:grid;gap:1.1rem}
.panel-row{display:grid;grid-template-columns:300px 1fr;gap:1.1rem;align-items:start}
.panel-col{display:grid;gap:1.1rem}

/* status panel, rebuilt from the poster art */
.statuspanel{
  border-radius:12px;padding:1rem;background:#04060a;
  border:2px solid rgba(157,255,40,.35);
  box-shadow:0 0 24px rgba(157,255,40,.18),inset 0 0 40px rgba(157,255,40,.05);
}
.sp-head{
  display:flex;align-items:center;gap:.5rem;padding-bottom:.6rem;margin-bottom:.6rem;
  border-bottom:1px solid rgba(255,45,155,.35);
  font-family:var(--display);font-style:italic;font-size:1.15rem;text-transform:uppercase;
  color:var(--pink);text-shadow:0 0 14px rgba(255,45,155,.8);
}
.crown{color:var(--pink)}
.sp-rows{display:grid;gap:.12rem}
.sp-row{
  display:grid;grid-template-columns:1fr auto 20px;align-items:center;gap:.6rem;
  padding:.3rem .1rem;font-family:var(--mono);font-size:.8rem;
}
/* dimmed start is a JS-only enhancement — without JS the panel reads normally */
.js .sp-row{opacity:.18;transform:translateX(-6px);transition:.4s}
.js .sp-row.lit{opacity:1;transform:none}
.sp-k{color:#dfd8ea;letter-spacing:.06em}
.sp-v{color:var(--lime);text-shadow:0 0 10px rgba(157,255,40,.6)}
.sp-c{color:var(--lime);text-align:right;font-size:.95rem;text-shadow:0 0 10px rgba(157,255,40,.8)}
.sp-foot{
  margin-top:.7rem;padding-top:.6rem;border-top:1px solid rgba(255,45,155,.35);
  font-family:var(--display);font-style:italic;font-size:1rem;text-transform:uppercase;
  color:var(--pink);text-shadow:0 0 14px rgba(255,45,155,.7);
}

/* stat tiles */
.statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}
.stat{
  padding:.75rem .8rem;border-radius:10px;background:var(--panel);border:1px solid var(--line);
}
.stat b{display:block;font-family:var(--display);font-size:1.5rem;font-style:italic;line-height:1}
.stat span{font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;color:var(--dim)}

/* server rows */
.servers{display:grid;gap:.6rem}
.srv{
  position:relative;display:grid;gap:.4rem;padding:.85rem 1rem .85rem 1.6rem;
  border-radius:10px;background:var(--panel);border:1px solid var(--line);
  grid-template-columns:1fr 130px auto;align-items:center;
}
.srv .bar{grid-column:1/-1;order:9}
.pulse{position:absolute;left:.7rem;top:1.05rem;width:8px;height:8px;border-radius:50%}
.pulse-lime{background:var(--lime);box-shadow:0 0 10px var(--lime);animation:blink 2s infinite}
.pulse-amber{background:var(--amber);box-shadow:0 0 10px var(--amber);animation:blink 1s infinite}
.srv-name{font-weight:800;font-size:.92rem}
.srv-name em{font-family:var(--mono);font-style:normal;font-weight:400;color:var(--dim);font-size:.8rem;margin-left:.4rem}
.srv-meta{font-family:var(--mono);font-size:.74rem;color:var(--dim);text-align:right}
.srv-act{display:flex;gap:.35rem;justify-self:end}
.srv-act button{
  padding:.32rem .7rem;border-radius:6px;cursor:pointer;
  border:1px solid rgba(255,255,255,.16);background:transparent;color:#cfc7dc;
  font-family:var(--body);font-size:.66rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  transition:.18s;
}
.srv-act button:hover{border-color:var(--pink);color:var(--pink);box-shadow:0 0 14px rgba(255,45,155,.35)}
.bar{height:5px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--lime));box-shadow:0 0 12px rgba(157,255,40,.6)}
.bar-amber i{background:linear-gradient(90deg,var(--amber),#ff4d4d);box-shadow:0 0 12px rgba(255,138,30,.6)}
.srv-warn{border-color:rgba(255,138,30,.4)}

/* log */
.logpanel{border-radius:12px;background:#04030a;border:1px solid var(--line);overflow:hidden}
.log-head{
  display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;
  border-bottom:1px solid var(--line-2);background:#0a0812;
  font-size:.68rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;
}
.log-sub{margin-left:auto;font-family:var(--mono);font-weight:400;letter-spacing:.06em;color:var(--dim);text-transform:none}
.log{padding:.7rem 1rem;font-family:var(--mono);font-size:.78rem;min-height:150px}
/* animates in on insert via CSS, so lines are never stranded at opacity:0
   when rAF is suspended (background tab) */
.log-line{display:flex;gap:.8rem;padding:.16rem 0;color:#b9b0c8;animation:logIn .35s ease}
@keyframes logIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.log-t{color:#5d5570}
.log-tag{min-width:56px;font-weight:700}

/* ============================================================
   FEATURE CARDS
   ============================================================ */
.cards{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(285px,1fr))}
.card{
  position:relative;padding:1.7rem 1.5rem;border-radius:14px;overflow:hidden;
  background:linear-gradient(180deg,var(--panel),#09070f);
  border:1px solid var(--line);transition:.25s;
}
.card::before{content:'';position:absolute;inset:0 0 auto 0;height:2px;opacity:.9}
.card-pink::before{background:linear-gradient(90deg,transparent,var(--pink),transparent)}
.card-cyan::before{background:linear-gradient(90deg,transparent,var(--cyan),transparent)}
.card-lime::before{background:linear-gradient(90deg,transparent,var(--lime),transparent)}
.card-purple::before{background:linear-gradient(90deg,transparent,var(--purple),transparent)}
.card-amber::before{background:linear-gradient(90deg,transparent,var(--amber),transparent)}
.card:hover{transform:translateY(-5px);background:linear-gradient(180deg,var(--panel-2),#0b0913)}
.card-pink:hover{border-color:rgba(255,45,155,.5);box-shadow:0 18px 50px rgba(255,45,155,.16)}
.card-cyan:hover{border-color:rgba(35,213,255,.5);box-shadow:0 18px 50px rgba(35,213,255,.16)}
.card-lime:hover{border-color:rgba(157,255,40,.5);box-shadow:0 18px 50px rgba(157,255,40,.14)}
.card-purple:hover{border-color:rgba(168,85,247,.5);box-shadow:0 18px 50px rgba(168,85,247,.16)}
.card-amber:hover{border-color:rgba(255,138,30,.5);box-shadow:0 18px 50px rgba(255,138,30,.16)}
.card-ic{font-size:1.5rem;margin-bottom:.9rem;line-height:1}
.card-pink .card-ic{color:var(--pink);filter:drop-shadow(0 0 12px var(--pink))}
.card-cyan .card-ic{color:var(--cyan);filter:drop-shadow(0 0 12px var(--cyan))}
.card-lime .card-ic{color:var(--lime);filter:drop-shadow(0 0 12px var(--lime))}
.card-purple .card-ic{color:var(--purple);filter:drop-shadow(0 0 12px var(--purple))}
.card-amber .card-ic{color:var(--amber);filter:drop-shadow(0 0 12px var(--amber))}
.card h3{margin-bottom:.6rem;font-size:1.15rem}
.card p{margin:0;color:#a79db6;font-size:.93rem}

/* ============================================================
   MOODS
   ============================================================ */
.moods{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.moods figure{margin:0}
.moods img{
  border-radius:12px;border:1px solid var(--line);transition:.25s;
  box-shadow:0 18px 50px rgba(0,0,0,.7);
}
.moods figure:hover img{transform:translateY(-5px);box-shadow:0 24px 60px rgba(255,45,155,.25);border-color:rgba(255,45,155,.4)}
.moods figcaption{margin-top:.9rem;font-size:.88rem;color:#a79db6}
.moods figcaption b{display:block;color:#fff;font-size:.95rem}

/* ============================================================
   PRICING
   ============================================================ */
.prices{display:grid;gap:1.3rem;grid-template-columns:1.15fr 1fr;align-items:start}
.price{
  padding:2rem 1.8rem;border-radius:16px;
  background:linear-gradient(180deg,var(--panel),#09070f);border:1px solid var(--line);
}
.price-hero{
  border-color:rgba(255,45,155,.45);
  box-shadow:0 0 50px rgba(255,45,155,.16),inset 0 0 60px rgba(255,45,155,.04);
}
.price-tag{
  display:inline-block;font-size:.68rem;font-weight:900;letter-spacing:.2em;
  text-transform:uppercase;color:var(--dim);margin-bottom:.9rem;
}
.price-amt{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:1.4rem}
.price-amt b{font-family:var(--display);font-style:italic;font-size:3rem;line-height:1;color:#fff;text-shadow:0 0 30px rgba(255,45,155,.55)}
.price-hero .price-amt b{color:var(--pink)}
.price-amt i{color:var(--dim);font-size:.9rem;font-style:normal}
.price ul{list-style:none;margin:0 0 1.6rem;padding:0;display:grid;gap:.55rem}
.price li{position:relative;padding-left:1.7rem;font-size:.93rem;color:#b9b0c8}
.price li::before{content:'\2713';position:absolute;left:0;color:var(--lime);text-shadow:0 0 10px var(--lime);font-weight:900}
.price-note{margin:0;font-size:.82rem;color:#8b8299;border-left:2px solid var(--pink);padding-left:.9rem}
.honest{
  margin-top:1.6rem;padding:1.1rem 1.3rem;border-radius:12px;
  background:rgba(35,213,255,.06);border:1px dashed rgba(35,213,255,.35);
  font-size:.92rem;color:#bfe9f8;
}

/* ============================================================
   FAQ
   ============================================================ */
.faq{display:grid;gap:.7rem;max-width:840px}
.faq details{
  border-radius:12px;border:1px solid var(--line);
  background:linear-gradient(180deg,var(--panel),#09070f);overflow:hidden;
}
.faq summary{
  list-style:none;cursor:pointer;padding:1.1rem 1.4rem;
  font-weight:800;font-size:1rem;display:flex;align-items:center;gap:.8rem;transition:.2s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{
  content:'+';color:var(--pink);font-family:var(--display);font-size:1.4rem;line-height:1;
  transition:.25s;text-shadow:0 0 12px var(--pink);
}
.faq details[open] summary::before{transform:rotate(45deg)}
.faq summary:hover{color:var(--pink)}
.faq p{margin:0;padding:0 1.4rem 1.3rem 3.1rem;color:#a79db6;font-size:.94rem}

/* ============================================================
   FINALE
   ============================================================ */
.finale{position:relative;overflow:hidden;text-align:center;padding:7rem clamp(1rem,4vw,2rem);border-top:1px solid var(--line)}
.blob-fin{top:auto;bottom:-260px;left:50%;transform:translateX(-50%);opacity:.28}
.finale-inner{position:relative;max-width:760px;margin:0 auto}
.finale h2{margin-bottom:2.4rem;font-size:clamp(2.2rem,5.4vw,4rem)}
.notify{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1.8rem}
.notify input{
  width:min(340px,80vw);padding:.85rem 1.1rem;border-radius:9px;
  background:rgba(255,255,255,.05);border:1px solid var(--line);color:#fff;
  font-family:var(--body);font-size:.95rem;
}
.notify input::placeholder{color:#6d6479}
.notify input:focus{outline:0;border-color:var(--cyan);box-shadow:0 0 22px rgba(35,213,255,.3)}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{border-top:1px solid var(--line);background:#040308}
.foot-band{width:100%;opacity:.92}
.foot-row{
  max-width:var(--max);margin:0 auto;padding:1.8rem clamp(1rem,4vw,2rem);
  display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center;
  font-size:.8rem;color:#6d6479;
}
.foot-brand{font-family:var(--display);font-style:italic;font-size:1.3rem;line-height:1;color:var(--pink);text-shadow:0 0 18px rgba(255,45,155,.6)}
.foot-brand i{display:block;font-family:var(--mono);font-style:normal;font-size:.72rem;letter-spacing:.1em;color:#6d6479;text-shadow:none;margin-top:4px}
.foot-note{flex:1;min-width:240px}
.foot-links{display:flex;gap:1.2rem}
.foot-links a{letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.foot-links a:hover{color:var(--pink)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1000px){
  .panel-row{grid-template-columns:1fr}
  .prices{grid-template-columns:1fr}
  .app-body{grid-template-columns:1fr}
  .app-side{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}
  .app-side a{white-space:nowrap}
}
@media(max-width:820px){
  .nav-links{display:none}
  .statgrid{grid-template-columns:repeat(2,1fr)}
  .srv{grid-template-columns:1fr;justify-items:start}
  .srv-meta{text-align:left}
  .srv-act{justify-self:start}
  .strip-tag{border-left:0;padding-left:0;text-align:center;width:100%}
  .sec{padding-block:4rem}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto}
  .js .sp-row{opacity:1;transform:none}
}
