/* =========================================================
   Linkhub theme (minimal)
   ========================================================= */

/* Tokens */
:root{
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  --bg: #090A0B;
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.62);
  --faint: rgba(255,255,255,.40);

  --border: rgba(255,255,255,.08);

  --orng: #FF8A3D;
  --purple: #A78BFA;

  --ease: cubic-bezier(.2,.8,.2,1);
  --t: 140ms;

  --radius: 14px;
  --maxw: 520px;
}

/* Base */
*{ box-sizing: border-box; }

html, body{
  margin: 0;
  padding: 0;
  min-height: 100%;
}

body{
  font-family: var(--font-sans);
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Safari-safe background layer */
body::before{
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;

  background:
    radial-gradient(900px 600px at 50% -20%, rgba(255,138,61,.08), transparent 60%),
    radial-gradient(800px 600px at 80% 0%, rgba(167,139,250,.06), transparent 58%),
    var(--bg);
}

/* Page layout */
.page{
  min-height: 100vh;
  display: grid;
  place-items: start center;
  padding: 56px 18px 34px;
}

/* Notch safe-area support */
@supports (padding: max(0px)){
  .page{
    padding-left: max(18px, env(safe-area-inset-left));
    padding-right: max(18px, env(safe-area-inset-right));
  }
}

.shell{
  width: 100%;
  max-width: var(--maxw);
}

/* Loading */
.loading{
  text-align: center;
  color: rgba(255,255,255,.55);
  padding: 22px 0;
}

/* Profile */
.profile{
  text-align: center;
  margin-bottom: 18px;
}

.avatar{
  width: 84px;
  height: 84px;
  border-radius: 999px;
  margin: 0 auto 14px;

  box-shadow:
    0 0 0 1px rgba(255,255,255,.07),
    0 12px 38px rgba(0,0,0,.55),
    0 0 42px rgba(255,138,61,.10);

  overflow: hidden;
}

.avatar img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.name{
  font-size: clamp(28px, 4.8vw, 38px);
  letter-spacing: -0.03em;
  line-height: 1.08;
  margin: 0;
  font-weight: 700;
  text-shadow: 0 0 34px rgba(255,138,61,.10);
}

.tagline{
  margin: 10px auto 0;
  max-width: 44ch;
  font-size: 15px;
  line-height: 1.55;
  color: var(--muted);
  font-weight: 450;
}

.meta{
  margin-top: 10px;
  font-size: 13px;
  color: var(--faint);
  font-weight: 450;
}

/* Email row */
.email-row{
  margin-top: 14px;
  display: inline-flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
}

.email{
  font-size: 13px;
  color: rgba(255,255,255,.55);
}

.copy-btn{
  appearance: none;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  color: rgba(255,255,255,.72);
  font-size: 12.5px;
  border-radius: 999px;
  padding: 6px 10px;
  cursor: pointer;

  transition: background var(--t) var(--ease),
              border-color var(--t) var(--ease),
              transform var(--t) var(--ease);
}

.copy-btn:hover{
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.14);
  transform: translateY(-1px);
}

/* Sections */
.section{
  margin-top: 18px;
}

.section:first-of-type{
  margin-top: 0;
}

.section-title{
  text-align: center;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.38);
  margin: 8px 0 10px;
}

/* Links list */
.links{
  margin-top: 10px;
  display: grid;
  gap: 8px;
}

/*
  IMPORTANT:
  Keep `.link` stable and predictable.
  We only add overflow safety and cleaner typography.
*/
.link{
  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 14px 14px;
  border-radius: var(--radius);

  background: rgba(255,255,255,.015);
  border: 1px solid rgba(255,255,255,.06);

  transition:
    transform var(--t) var(--ease),
    border-color var(--t) var(--ease),
    background var(--t) var(--ease);

  /* Prevent weird flex overflow behavior */
  min-width: 0;
}

.link a{
  flex: 1;
  min-width: 0;

  color: rgba(255,255,255,.90);
  text-decoration: none;

  font-size: 15px;
  line-height: 1.25;
  font-weight: 520;
  letter-spacing: -0.01em;

  transition: color var(--t) var(--ease);

  /* Ellipsis safety */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.link .hint{
  flex: 0 0 auto;
  max-width: 45%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;

  color: rgba(255,255,255,.28);
  font-size: 14px;
  margin-left: 12px;

  transition: transform var(--t) var(--ease), color var(--t) var(--ease);
}

.link:hover{
  background: rgba(255,255,255,.022);
  border-color: rgba(255,255,255,.10);
  transform: translateY(-1px);
}

.link:hover a{
  color: rgba(167,139,250,.95);
}

.link:hover .hint{
  color: rgba(167,139,250,.55);
  transform: translateX(2px);
}

.link:active{
  transform: translateY(0px);
}

/* Slight highlight for the primary call-to-action link */
.link.link-primary{
  border-color: rgba(255,138,61,.28);
  background: rgba(255,255,255,.018);
  box-shadow: 0 0 0 1px rgba(255,138,61,.08) inset;
}

.link.link-primary a{
  color: rgba(255,255,255,.94);
}

.link.link-primary:hover{
  border-color: rgba(255,138,61,.40);
}

.link.link-primary:hover a{
  color: rgba(255,138,61,.95);
}

/* Social icon row */
.social-row{
  margin-top: 18px;
  display: flex;
  justify-content: center;
  gap: 10px;
}

.social-icon{
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: rgba(255,255,255,.48);
  text-decoration: none;

  border-radius: 999px;
  border: 1px solid transparent;

  transition:
    color var(--t) var(--ease),
    background var(--t) var(--ease),
    border-color var(--t) var(--ease),
    transform var(--t) var(--ease);
}

.social-icon:hover{
  color: rgba(167,139,250,.90);
  background: rgba(255,255,255,.02);
  border-color: rgba(255,255,255,.06);
  transform: translateY(-1px);
}

.social-icon:active{
  transform: translateY(0px);
}

/* Footer */
.footer{
  margin-top: 26px;
  padding-top: 18px;
  text-align: center;
  border-top: 1px solid rgba(255,255,255,.06);
  color: rgba(255,255,255,.42);
  font-size: 12px;
  line-height: 1.4;
}

.footer a{
  color: rgba(255,255,255,.55);
  text-decoration: none;
}

.footer a:hover{
  color: rgba(167,139,250,.9);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Mobile */
@media (max-width: 420px){
  .page{
    padding-top: 44px;
  }

  .avatar{
    width: 76px;
    height: 76px;
  }

  .tagline{
    font-size: 14.5px;
  }

  .link{
    padding: 13px 12px;
  }

  .link a{
    font-size: 14.5px;
  }

  .link .hint{
    max-width: 42%;
    font-size: 13.5px;
  }
}

/* iOS text sizing */
@supports (-webkit-touch-callout: none){
  body{
    -webkit-text-size-adjust: 100%;
  }
}
