/* ═══════════════ TOKENS ═══════════════ */
:root {
  --bg:#050507; --bg1:#0c0c10; --bg2:#111118; --bg3:#18181f; --bg4:#1e1e28;
  --fg:#f0f0f5; --fg2:#c0c0cc; --fg3:#808090; --fg4:#484858; --fg5:#282835;
  --accent:#7c6aff; --acc2:#a66cff; --acc3:#5eead4;
  --green:#34d399; --yellow:#fbbf24; --red:#f87171; --off:#383848;
  --border:rgba(255,255,255,.065); --bhi:rgba(255,255,255,.115);
  --glass:rgba(10,10,16,.72);
  --r:12px; --rsm:8px;
  --sans:'Inter',system-ui,sans-serif; --mono:'JetBrains Mono',monospace;
  --spring:cubic-bezier(.34,1.56,.64,1); --out:cubic-bezier(.16,1,.3,1);
}

/* ═══════════════ RESET + SECURITY ═══════════════ */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body {
  background:var(--bg); color:var(--fg);
  font-family:var(--sans); font-size:14px; line-height:1.7; font-weight:400;
  -webkit-font-smoothing:antialiased; min-height:100vh; overflow-x:hidden;
  cursor:none;
  /* disable text selection */
  -webkit-user-select:none; -moz-user-select:none; -ms-user-select:none; user-select:none;
  /* disable callout / magnifier on iOS */
  -webkit-touch-callout:none;
  /* disable tap highlight */
  -webkit-tap-highlight-color:transparent;
}
/* allow selection only on readable text blocks */
.about-body, .intro-bio, .card-ds, .contact-text, .presence-note {
  -webkit-user-select:text; -moz-user-select:text; user-select:text;
}
a, button { cursor:none; }
img { max-width:100%; display:block; pointer-events:none; -webkit-user-drag:none; user-drag:none; }

/* disable right-click context menu hint via pointer-events on background layer */
.bg-canvas, .bg-grid, .bg-noise, #particleCanvas { pointer-events:none; }

/* ═══════════════ PAGE LOADER ═══════════════ */
#page-loader {
  position:fixed; inset:0; z-index:99999;
  background:var(--bg);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .6s var(--out), transform .6s var(--out);
}
#page-loader.done {
  opacity:0; pointer-events:none;
  transform:scale(1.02);
}
.loader-inner {
  display:flex; flex-direction:column; align-items:center; gap:14px;
  animation:loaderIn .4s var(--out) both;
}
@keyframes loaderIn { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
.loader-name {
  font-family:var(--mono); font-size:22px; font-weight:500; color:var(--fg);
  letter-spacing:.08em;
  background:linear-gradient(135deg, var(--fg) 0%, var(--accent) 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.loader-cursor {
  display:inline-block; -webkit-text-fill-color:var(--accent);
  animation:blink 1s step-end infinite;
}
.loader-bar-wrap {
  width:160px; height:2px; background:var(--fg5); border-radius:2px; overflow:hidden;
}
.loader-bar {
  height:100%; width:0%;
  background:linear-gradient(90deg, var(--accent), var(--acc2), var(--acc3));
  border-radius:2px;
  box-shadow:0 0 8px rgba(124,106,255,.7);
  transition:width .05s linear;
}
.loader-sub {
  font-family:var(--mono); font-size:10px; color:var(--fg4);
  letter-spacing:.2em; text-transform:uppercase;
}

/* ═══════════════ TOAST ═══════════════ */
#toast-container {
  position:fixed; bottom:80px; left:50%; transform:translateX(-50%);
  z-index:9000; display:flex; flex-direction:column; align-items:center; gap:8px;
  pointer-events:none;
}
.toast {
  font-family:var(--mono); font-size:12px; color:var(--fg2);
  background:var(--bg2); border:1px solid var(--bhi);
  padding:9px 18px; border-radius:99px;
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  box-shadow:0 8px 24px rgba(0,0,0,.5);
  opacity:0; transform:translateY(10px) scale(.96);
  animation:toastIn .3s var(--out) forwards;
  white-space:nowrap;
  display:flex; align-items:center; gap:7px;
}
.toast.out { animation:toastOut .3s var(--out) forwards; }
.toast-icon { font-size:13px; }
@keyframes toastIn  { to { opacity:1; transform:none; } }
@keyframes toastOut { to { opacity:0; transform:translateY(10px) scale(.96); } }

/* ═══════════════ KB HINT ═══════════════ */
#kb-hint {
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px);
  z-index:700; font-family:var(--mono); font-size:11px; color:var(--fg4);
  background:var(--glass); border:1px solid var(--border);
  padding:7px 16px; border-radius:99px;
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  opacity:0; pointer-events:none;
  transition:opacity .4s, transform .4s var(--out);
  white-space:nowrap;
}
#kb-hint.show { opacity:1; transform:translateX(-50%) translateY(0); }
.kb-key {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:20px; height:18px;
  background:var(--bg3); border:1px solid var(--border);
  border-radius:4px; padding:0 5px;
  font-family:var(--mono); font-size:10px; color:var(--fg2);
  line-height:1;
}

/* ═══════════════ KB MODAL ═══════════════ */
#kb-modal-bg {
  position:fixed; inset:0; z-index:8000;
  background:rgba(0,0,0,.7); backdrop-filter:blur(4px);
  opacity:0; pointer-events:none;
  transition:opacity .25s ease;
}
#kb-modal-bg.show { opacity:1; pointer-events:all; }
#kb-modal {
  position:fixed; top:50%; left:50%;
  transform:translate(-50%,-50%) scale(.94);
  z-index:8001;
  background:var(--bg2); border:1px solid var(--bhi);
  border-radius:var(--r); padding:24px;
  min-width:280px;
  opacity:0; pointer-events:none;
  transition:opacity .25s var(--out), transform .25s var(--out);
  box-shadow:0 24px 64px rgba(0,0,0,.7);
}
#kb-modal.show { opacity:1; pointer-events:all; transform:translate(-50%,-50%) scale(1); }
.kb-modal-title {
  font-family:var(--mono); font-size:10px; font-weight:500;
  color:var(--fg4); letter-spacing:.18em; text-transform:uppercase;
  margin-bottom:16px;
}
.kb-modal-list { display:flex; flex-direction:column; gap:8px; margin-bottom:20px; }
.kb-row {
  display:flex; align-items:center; gap:12px;
  font-size:13px; color:var(--fg2);
}
.kb-row .kb-key { flex-shrink:0; }
.kb-close {
  width:100%; padding:9px;
  background:var(--bg3); border:1px solid var(--border);
  border-radius:var(--rsm); color:var(--fg3);
  font-family:var(--mono); font-size:11px; letter-spacing:.1em;
  cursor:none; transition:color .2s, border-color .2s, background .2s;
}
.kb-close:hover { color:var(--fg); border-color:var(--bhi); background:var(--bg4); }

/* ═══════════════ PARTICLE CANVAS ═══════════════ */
#particleCanvas {
  position:fixed; inset:0; z-index:0; pointer-events:none;
  opacity:0; animation:gf 2s .5s ease forwards;
}

/* ═══════════════ CURSOR ═══════════════ */
#cur-dot {
  position:fixed; width:8px; height:8px; border-radius:50%;
  background:var(--fg); pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%); mix-blend-mode:difference;
  transition:width .15s,height .15s;
}
#cur-ring {
  position:fixed; width:36px; height:36px; border-radius:50%;
  border:1px solid rgba(124,106,255,.5); pointer-events:none; z-index:9998;
  transform:translate(-50%,-50%);
  transition:width .25s var(--out),height .25s var(--out),border-color .2s;
}
#cur-ring.big { width:56px; height:56px; border-color:rgba(124,106,255,.85); background:rgba(124,106,255,.04); }
#cur-glow {
  position:fixed; width:350px; height:350px; border-radius:50%;
  background:radial-gradient(circle,rgba(124,106,255,.06) 0%,transparent 65%);
  pointer-events:none; z-index:0; transform:translate(-50%,-50%);
}

/* ═══════════════ SCROLL BAR ═══════════════ */
#scroll-bar {
  position:fixed; top:0; left:0; height:2px; width:0%; z-index:9997; pointer-events:none;
  background:linear-gradient(90deg,var(--accent),var(--acc2),var(--acc3));
  box-shadow:0 0 10px rgba(124,106,255,.7); transition:width .05s linear;
}

/* ═══════════════ FLOATING NAV ═══════════════ */
#floatnav {
  position:fixed; top:18px; left:50%;
  transform:translateX(-50%) translateY(-80px);
  z-index:800;
  display:flex; align-items:center;
  background:var(--glass); border:1px solid var(--border);
  border-radius:99px; padding:7px 16px;
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  box-shadow:0 8px 32px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.04);
  opacity:0; transition:transform .5s var(--out),opacity .5s var(--out);
  white-space:nowrap;
}
#floatnav.visible { transform:translateX(-50%) translateY(0); opacity:1; }
#floatnav:hover { box-shadow:0 12px 40px rgba(0,0,0,.6),0 0 0 1px rgba(124,106,255,.15); }
.fn-link {
  font-family:var(--mono); font-size:11px; color:var(--fg4);
  text-decoration:none; padding:4px 10px; border-radius:99px;
  letter-spacing:.04em; transition:color .2s,background .2s;
  white-space:nowrap; position:relative;
}
/* key hint badge */
.fn-link::after {
  content:attr(data-key);
  position:absolute; top:-5px; right:2px;
  font-size:8px; color:var(--accent);
  opacity:0; transition:opacity .2s;
  font-family:var(--mono);
}
#floatnav:hover .fn-link::after { opacity:.6; }
.fn-link:hover, .fn-link.active { color:var(--fg); background:rgba(124,106,255,.12); }
.fn-link.active { color:var(--accent); }
.fn-sep { width:1px; height:10px; background:var(--fg5); flex-shrink:0; }

/* ═══════════════ BACK TO TOP ═══════════════ */
#btt {
  position:fixed; bottom:24px; right:20px; z-index:500;
  display:flex; align-items:center; gap:6px; padding:8px 14px;
  background:var(--glass); border:1px solid var(--bhi); border-radius:99px;
  font-family:var(--mono); font-size:11px; color:var(--fg3);
  text-decoration:none;
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  opacity:0; transform:translateY(12px); pointer-events:none;
  transition:opacity .3s var(--out),transform .3s var(--out),color .2s,border-color .2s,box-shadow .2s;
  cursor:none;
}
#btt.show { opacity:1; transform:none; pointer-events:all; }
#btt:hover { color:var(--fg); border-color:var(--accent); box-shadow:0 0 18px rgba(124,106,255,.25); }

/* ═══════════════ BACKGROUND ═══════════════ */
.bg-canvas { position:fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden; }
.gb { position:absolute; border-radius:50%; filter:blur(90px); opacity:0; animation:gf 1.5s var(--out) forwards; }
.g1 { width:800px;height:600px;top:-220px;left:-280px;background:radial-gradient(ellipse,rgba(124,106,255,.09) 0%,transparent 70%);animation-delay:.2s; }
.g2 { width:600px;height:600px;bottom:-200px;right:-200px;background:radial-gradient(ellipse,rgba(94,234,212,.06) 0%,transparent 70%);animation-delay:.5s; }
.g3 { width:400px;height:400px;top:45%;left:55%;background:radial-gradient(ellipse,rgba(166,108,255,.055) 0%,transparent 70%);animation-delay:.8s; }
@keyframes gf { to { opacity:1; } }
.bg-noise { position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.025;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.bg-grid { position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(255,255,255,.032) 1px,transparent 1px);
  background-size:28px 28px;
  mask-image:radial-gradient(ellipse 90% 80% at 50% 40%,black 20%,transparent 100%); }

/* ═══════════════ LAYOUT ═══════════════ */
.page { position:relative;z-index:2;max-width:680px;margin:0 auto;padding:88px 24px 120px; }
section { margin-bottom:68px; }

/* ═══════════════ SCROLL REVEAL ═══════════════ */
.r { opacity:0;transform:translateY(22px);transition:opacity .7s var(--out),transform .7s var(--out); }
.r.in { opacity:1;transform:none; }
.d1 { transition-delay:.05s; }

/* ═══════════════ SECTION HEADER ═══════════════ */
.sh { display:flex;align-items:center;gap:12px;margin-bottom:22px; }
.sh-lbl { font-family:var(--mono);font-size:10px;font-weight:500;color:var(--fg4);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap; }
.sh-lbl .ch { display:inline-block;opacity:0;transform:translateY(5px);transition:opacity .3s,transform .3s; }
.sh-lbl .ch.in { opacity:1;transform:none; }
.sh-line { flex:1;height:1px;background:linear-gradient(90deg,var(--fg5) 0%,transparent 100%); }

/* ═══════════════ INTRO ═══════════════ */
.intro { margin-bottom:56px; }
.intro-head { display:flex;align-items:center;gap:16px;margin-bottom:20px; }
.av-wrap { position:relative;flex-shrink:0;width:56px;height:56px; }
.av-orbit { position:absolute;inset:-7px;border-radius:50%;border:1.5px dashed rgba(124,106,255,.28);animation:orbit 12s linear infinite; }
.av-orbit::after { content:'';position:absolute;top:2px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent); }
@keyframes orbit { to { transform:rotate(360deg); } }
.av-glow { position:absolute;inset:-3px;border-radius:50%;background:conic-gradient(from 0deg,var(--accent) 0%,var(--acc2) 30%,transparent 55%,transparent 72%,var(--accent) 100%);animation:rotGlow 4s linear infinite;opacity:.7;filter:blur(1px); }
@keyframes rotGlow { to { transform:rotate(360deg); } }
.av-inner { position:absolute;inset:3px;border-radius:50%;background:var(--bg);overflow:hidden; }
#introAvatar { width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;transition:transform .4s var(--spring),opacity .4s; }
.av-wrap:hover #introAvatar { transform:scale(1.1) rotate(3deg); }
.av-status { position:absolute;bottom:2px;right:2px;z-index:3;width:13px;height:13px;border-radius:50%;background:var(--off);border:2.5px solid var(--bg);transition:background .4s,box-shadow .4s; }
.intro-name { font-size:22px;font-weight:600;letter-spacing:-.03em;line-height:1.1;overflow:hidden; }
.intro-name-inner { display:block;transform:translateY(100%);opacity:0;animation:slideUp .7s .1s var(--out) forwards;background:linear-gradient(135deg,var(--fg) 0%,var(--fg2) 55%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
@keyframes slideUp { to { transform:translateY(0);opacity:1; } }
.intro-sub { font-family:var(--mono);font-size:11px;color:var(--fg4);margin-top:5px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;opacity:0;animation:fadeIn .5s .6s ease forwards; }
.intro-sub span { width:3px;height:3px;border-radius:50%;background:var(--fg5);flex-shrink:0; }
@keyframes fadeIn { to { opacity:1; } }
.intro-bio { font-size:14.5px;color:var(--fg2);line-height:1.9;font-weight:400;margin-bottom:24px; }
.intro-bio a { color:var(--fg);font-weight:500;text-decoration:underline;text-decoration-color:var(--fg4);text-underline-offset:3px;transition:text-decoration-color .2s; }
.intro-bio a:hover { text-decoration-color:var(--accent); }
.tcursor { display:inline-block;width:2px;height:.9em;background:var(--accent);margin-left:2px;vertical-align:middle;animation:blink 1s step-end infinite; }
@keyframes blink { 0%,100%{opacity:1}50%{opacity:0} }

/* ═══════════════ STATS ═══════════════ */
.stats-row { display:flex;align-items:stretch;background:var(--bg1);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;opacity:0;animation:fadeIn .6s .85s ease forwards; }
.stat-item { flex:1;padding:14px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;transition:background .2s;cursor:default;min-width:0; }
.stat-item:hover { background:var(--bg2); }
.stat-val { display:flex;align-items:baseline;gap:1px;line-height:1; }
.stat-num { font-family:var(--mono);font-size:22px;font-weight:500;background:linear-gradient(135deg,var(--fg) 0%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.stat-unit { font-family:var(--mono);font-size:13px;font-weight:400;color:var(--fg3);-webkit-text-fill-color:var(--fg3); }
.stat-lbl { font-family:var(--mono);font-size:9.5px;color:var(--fg4);letter-spacing:.06em;text-transform:uppercase;text-align:center;white-space:nowrap; }
.stat-sep { width:1px;background:var(--fg5);flex-shrink:0; }
.stat-caffeine .stat-num { background:linear-gradient(135deg,var(--yellow) 0%,var(--acc2) 100%);-webkit-background-clip:text;background-clip:text; }
.stat-caffeine .stat-unit { color:var(--yellow);-webkit-text-fill-color:var(--yellow); }

/* ═══════════════ ABOUT ═══════════════ */
.about-body { font-size:14px;color:var(--fg2);line-height:1.95; }

/* ═══════════════ SKILLS ═══════════════ */
.skills-wrap { display:flex;flex-wrap:wrap;gap:7px; }
.sk { display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:12px;font-weight:400;color:var(--fg2);background:var(--bg1);border:1px solid var(--border);padding:6px 13px;border-radius:var(--rsm);cursor:default;position:relative;overflow:hidden;opacity:0;transform:translateY(10px) scale(.95);transition:color .2s,background .2s,border-color .2s,transform .3s var(--spring),box-shadow .2s,opacity .4s; }
.sk.wave-in { opacity:1;transform:none; }
.sk::before { content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(124,106,255,.13) 0%,transparent 60%);opacity:0;transition:opacity .2s; }
.sk:hover::before { opacity:1; }
.sk:hover { color:var(--fg);background:var(--bg2);border-color:var(--bhi);transform:translateY(-3px) scale(1.03);box-shadow:0 8px 24px rgba(0,0,0,.45),0 0 0 1px rgba(124,106,255,.18); }
.sk-dot { width:5px;height:5px;border-radius:50%;background:var(--fg5);flex-shrink:0;transition:background .2s,box-shadow .2s; }
.sk:hover .sk-dot { background:var(--accent);box-shadow:0 0 6px var(--accent); }

/* ═══════════════ PROJECT CARDS ═══════════════ */
.cards { display:flex;flex-direction:column;gap:4px; }
.card-tilt-wrap { border-radius:var(--r);perspective:900px; }
.card { display:flex;align-items:flex-start;gap:14px;padding:17px 15px;border-radius:var(--r);border:1px solid transparent;text-decoration:none;color:inherit;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:relative;overflow:hidden;transform-style:preserve-3d;transition:background .25s var(--out),border-color .25s,box-shadow .25s,transform .3s var(--out);will-change:transform; }
.card::before { content:'';position:absolute;top:0;left:-120%;bottom:0;width:60%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.04),transparent);transition:left .65s ease;pointer-events:none; }
.card:hover::before { left:160%; }
.card::after { content:'';position:absolute;top:16px;left:0;width:2px;height:0;background:linear-gradient(180deg,var(--accent) 0%,var(--acc2) 100%);border-radius:2px;transition:height .35s var(--out); }
.card:hover::after { height:calc(100% - 32px); }
.card-shine { position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.04) 0%,transparent 60%);opacity:0;transition:opacity .2s; }
.card:hover .card-shine { opacity:1; }
.card:hover { background:rgba(18,18,28,.9);border-color:var(--bhi);box-shadow:0 8px 40px rgba(0,0,0,.55),0 0 0 1px rgba(124,106,255,.07); }
.card-ico { width:42px;height:42px;flex-shrink:0;border-radius:10px;background:var(--bg2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--fg3);position:relative;z-index:1;transition:color .22s,border-color .22s,background .22s,transform .3s var(--spring),box-shadow .22s; }
.card:hover .card-ico { color:var(--accent);border-color:rgba(124,106,255,.35);background:rgba(124,106,255,.1);transform:rotate(-6deg) scale(1.07);box-shadow:0 4px 16px rgba(124,106,255,.22); }
.card-bd { flex:1;min-width:0;position:relative;z-index:1; }
.card-r1 { display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:5px; }
.card-nm { font-size:15px;font-weight:500;color:var(--fg);letter-spacing:-.01em; }
.card-dt { font-family:var(--mono);font-size:10px;color:var(--fg4);flex-shrink:0;transition:color .2s; }
.card:hover .card-dt { color:var(--fg3); }
.card-ds { font-size:13px;color:var(--fg3);line-height:1.65;transition:color .2s; }
.card:hover .card-ds { color:var(--fg2); }
.card-tags { display:flex;flex-wrap:wrap;gap:5px;margin-top:9px; }
.ct { font-family:var(--mono);font-size:10px;color:var(--fg4);background:var(--bg2);border:1px solid var(--fg5);padding:2px 8px;border-radius:4px;transition:color .2s,border-color .2s; }
.card:hover .ct { color:var(--fg3);border-color:var(--border); }
.card-arr { flex-shrink:0;color:var(--fg5);position:relative;z-index:1;padding-top:4px;transition:color .22s,transform .3s var(--spring); }
.card:hover .card-arr { color:var(--accent);transform:translate(3px,-3px); }

/* ═══════════════ PRESENCE ═══════════════ */
.presence-note { font-size:13px;color:var(--fg3);margin-bottom:14px;line-height:1.7; }
.clock-pill { display:flex;align-items:center;justify-content:space-between;padding:13px 16px;background:var(--glass);border:1px solid var(--border);border-radius:var(--r);margin-bottom:4px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:border-color .2s; }
.clock-pill:hover { border-color:var(--bhi); }
.clock-l { display:flex;align-items:center;gap:8px;font-size:13px;color:var(--fg3); }
#clockDisplay { font-family:var(--mono);font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:.06em;background:linear-gradient(90deg,var(--fg),var(--acc3));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.dc-wrap { background:var(--glass);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;position:relative;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:border-color .25s,box-shadow .25s; }
.dc-wrap:hover { border-color:var(--bhi);box-shadow:0 8px 40px rgba(0,0,0,.4); }
.dc-wrap::before { content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--accent) 30%,var(--acc2) 55%,var(--acc3) 75%,transparent 100%);opacity:.6; }
.dc-wrap.tinted::after { content:'';position:absolute;inset:0;pointer-events:none;background:var(--tint-color,transparent);opacity:.05;transition:background .8s ease; }
.dc-head { display:flex;align-items:center;gap:13px;padding:14px 14px 12px;border-bottom:1px solid var(--border);flex-wrap:wrap; }
.dc-av-wrap { position:relative;width:44px;height:44px;flex-shrink:0; }
#presenceAvatar { width:44px;height:44px;border-radius:50%;object-fit:cover;background:var(--bg2);display:block;border:2px solid var(--fg5);transition:transform .3s var(--spring),border-color .3s; }
.dc-wrap:hover #presenceAvatar { transform:scale(1.06);border-color:var(--accent); }
#dcDot { position:absolute;bottom:0;right:0;width:13px;height:13px;border-radius:50%;background:var(--off);border:2.5px solid var(--bg1);transition:background .4s,box-shadow .4s;z-index:1; }
#dcDot.online::after { content:'';position:absolute;inset:-4px;border-radius:50%;border:1.5px solid var(--green);animation:ping 2s ease-out infinite; }
@keyframes ping { 0%{transform:scale(1);opacity:.8}100%{transform:scale(2.5);opacity:0} }
.dc-info { flex:1;min-width:0; }
#dcUsername { font-size:15px;font-weight:500;color:var(--fg);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.dc-st-row { display:flex;align-items:center;gap:7px;margin-top:4px; }
.dc-st-dot { width:6px;height:6px;border-radius:50%;background:var(--off);flex-shrink:0;transition:background .4s,box-shadow .4s; }
#dcStatusText { font-family:var(--mono);font-size:11px;color:var(--fg3); }
.plat-row { display:flex;gap:5px;margin-left:auto; }
.plat-row img { width:16px;height:16px;border-radius:3px;opacity:.7;transition:opacity .2s,transform .2s var(--spring); }
.plat-row img:hover { opacity:1;transform:scale(1.2) rotate(-5deg); }
.dc-body { padding:14px; }
.act-hd { font-family:var(--mono);font-size:10px;color:var(--fg4);letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:7px;margin-bottom:12px; }
.live-dot { width:6px;height:6px;border-radius:50%;background:var(--green);animation:livePulse 1.8s ease-in-out infinite; }
@keyframes livePulse { 0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.6)} }
#presenceActivity { min-height:50px;transition:opacity .35s ease,transform .35s var(--out); }
.act-row { display:flex;align-items:flex-start;gap:12px; }
.act-thumb { width:52px;height:52px;border-radius:8px;object-fit:cover;background:var(--bg2);border:1px solid var(--border);flex-shrink:0;transition:transform .3s var(--spring),box-shadow .3s; }
.act-row:hover .act-thumb { transform:scale(1.07) rotate(-2deg);box-shadow:0 8px 24px rgba(0,0,0,.5); }
.act-info { flex:1;min-width:0; }
.act-type { font-family:var(--mono);font-size:10px;color:var(--fg4);letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px; }
.act-title { font-size:14px;font-weight:500;color:var(--fg);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.act-sub { font-size:12px;color:var(--fg3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5; }
.act-sub2 { font-size:11px;color:var(--fg4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.no-act { font-size:13px;color:var(--fg4);font-style:italic; }
.prog-wrap { margin-top:10px; }
.prog-track { width:100%;height:3px;background:var(--bg3);border-radius:3px;overflow:visible;margin-bottom:6px;position:relative; }
.prog-fill { height:100%;background:linear-gradient(90deg,var(--accent) 0%,var(--acc2) 100%);border-radius:3px;transition:width 1s linear;position:relative; }
.prog-fill::after { content:'';position:absolute;right:-3px;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;background:white;box-shadow:0 0 10px rgba(124,106,255,1),0 0 3px white; }
.prog-times { display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--fg4); }

/* ═══════════════ CONTACT ═══════════════ */
.contact-text { font-size:14px;color:var(--fg2);line-height:1.9;margin-bottom:20px; }
.contact-text a { color:var(--fg);font-weight:500;text-decoration:underline;text-decoration-color:var(--fg4);text-underline-offset:3px;transition:text-decoration-color .2s; }
.contact-text a:hover { text-decoration-color:var(--accent); }
.soc-grid { display:flex;flex-wrap:wrap;gap:6px; }
.soc { display:inline-flex;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:400;color:var(--fg2);background:var(--glass);border:1px solid var(--border);border-radius:9px;text-decoration:none;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:relative;overflow:hidden;transition:color .22s,background .22s,border-color .22s,transform .3s var(--spring),box-shadow .22s; }
.soc::before { content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(124,106,255,.13) 0%,transparent 60%);opacity:0;transition:opacity .22s; }
.soc:hover::before { opacity:1; }
.soc:hover { color:var(--fg);background:rgba(20,20,30,.9);border-color:var(--bhi);transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.45),0 0 0 1px rgba(124,106,255,.12); }
.soc svg { opacity:.55;transition:opacity .22s,transform .3s var(--spring);flex-shrink:0; }
.soc:hover svg { opacity:1;transform:scale(1.1) rotate(-5deg); }

/* ═══════════════ RIPPLE ═══════════════ */
.ripple { position:absolute;border-radius:50%;transform:scale(0);background:rgba(124,106,255,.2);pointer-events:none;animation:rippleAnim .6s linear forwards; }
@keyframes rippleAnim { to { transform:scale(4);opacity:0; } }

/* ═══════════════ FOOTER ═══════════════ */
footer { margin-top:64px;padding-top:22px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px; }
.foot-left { display:flex;flex-direction:column;gap:4px; }
.foot-l { font-family:var(--mono);font-size:11px;color:var(--fg4); }
.foot-by { font-family:var(--mono);font-size:11px;color:var(--fg5); }
.foot-name { background:linear-gradient(90deg,var(--accent),var(--acc2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:500; }
.foot-r { display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;color:var(--fg4); }
.foot-live { display:flex;align-items:center;gap:5px;font-size:10px;color:var(--green);background:rgba(52,211,153,.08);border:1px solid rgba(52,211,153,.2);padding:3px 9px;border-radius:99px; }
.foot-live-dot { width:5px;height:5px;border-radius:50%;background:var(--green);animation:livePulse 1.8s ease-in-out infinite; }

/* ═══════════════ TOOLTIP ═══════════════ */
[data-tip] { position:relative; }
[data-tip]::after { content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(6px);background:var(--bg3);border:1px solid var(--bhi);color:var(--fg2);font-family:var(--mono);font-size:10px;padding:5px 9px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;z-index:300;transition:opacity .15s,transform .15s;box-shadow:0 4px 16px rgba(0,0,0,.5); }
[data-tip]:hover::after { opacity:1;transform:translateX(-50%) translateY(0); }

/* ═══════════════ SMOOTH SCROLL ENHANCEMENT ═══════════════ */
html { scroll-padding-top:72px; }

/* ═══════════════ RESPONSIVE ═══════════════ */
@media (min-width:1280px) { .page { max-width:760px;padding:96px 32px 140px; } }
@media (max-width:900px) { #floatnav { padding:6px 12px; } .fn-link { padding:4px 8px;font-size:10.5px; } }
@media (max-width:768px) {
  .page { padding:76px 22px 100px; } section { margin-bottom:56px; }
  .fn-link[data-section="intro"] { display:none; }
  .fn-sep:first-of-type { display:none; }
  .stats-row { flex-wrap:wrap; }
  .stat-item { min-width:calc(50% - 0.5px); }
  .stat-sep:nth-child(6) { display:none; }
}
@media (max-width:600px) {
  body { cursor:auto; }
  #cur-dot,#cur-ring,#cur-glow { display:none; }
  a,button { cursor:auto; }
  #floatnav { display:none; }
  #btt { right:14px;bottom:16px;padding:7px 12px; }
  .page { padding:48px 16px 80px; } section { margin-bottom:48px; }
  .intro { margin-bottom:40px; } .intro-name { font-size:18px; } .intro-bio { font-size:14px; }
  .av-wrap { width:48px;height:48px; }
  .stats-row { flex-wrap:wrap; }
  .stat-item { min-width:calc(50% - 0.5px);padding:12px 8px; } .stat-num { font-size:18px; }
  .stat-sep:nth-child(6) { display:none; }
  .card { padding:13px 12px;gap:11px; } .card-ico { width:36px;height:36px;border-radius:8px; }
  .card-nm { font-size:14px; } .card-ds { font-size:12px; }
  .card { transform:none !important; }
  .sk { font-size:11.5px;padding:5px 11px; }
  .dc-head { flex-wrap:nowrap; } .plat-row { display:none; }
  .soc-grid { display:grid;grid-template-columns:1fr 1fr;gap:6px; }
  .soc { justify-content:center;padding:10px 12px; }
  footer { flex-direction:column;align-items:flex-start;gap:10px; }
  [data-tip]::after { display:none; }
  .clock-l span { display:none; }
  #kb-hint { display:none; }
}
@media (max-width:380px) {
  .page { padding:44px 14px 72px; } .intro-name { font-size:16px; } .stat-num { font-size:16px; }
  .soc-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important; }
  html { scroll-behavior:auto; }
}