/* =========================================================
   Martin Verduzco — Link-in-bio page
   ========================================================= */

:root{
  --navy-950:#05070f;
  --navy-900:#080b18;
  --navy-850:#0b0f21;
  --navy-800:#0f1428;
  --navy-700:#161c38;

  --ink-000:#ffffff;
  --ink-100:#f4f5fb;
  --ink-300:#c7cbe0;
  --ink-500:#8c92b3;
  --ink-700:#5c6285;

  --font-sans:'Inter', system-ui, -apple-system, "Segoe UI", sans-serif;

  --column-w:560px;
  --radius-lg:22px;
  --radius-md:16px;
  --ease:cubic-bezier(.22,.61,.36,1);

  color-scheme: dark;
}

/* =================== RESET =================== */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--navy-950);
  color:var(--ink-100);
  font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,p{ margin:0; }
svg{ display:block; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{
    animation-duration:0.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.001ms !important;
    scroll-behavior:auto !important;
  }
}

.skip-link{
  position:absolute;
  left:16px; top:-60px;
  background:var(--ink-000); color:var(--navy-950);
  padding:12px 18px; border-radius:8px; font-weight:600;
  z-index:999; transition:top .2s var(--ease);
}
.skip-link:focus{ top:16px; }

:focus-visible{ outline:2px solid #7089ff; outline-offset:3px; border-radius:4px; }

/* =================== PAGE BACKGROUND =================== */
/* A rich, varied atmosphere instead of a flat navy fill — the color
   stops are sampled from Martin's own portrait (its dusk sky runs
   navy -> indigo -> violet -> warm mauve), so it reads as "his"
   background without using the photo itself. */
.page-bg{
  position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none;
  background:linear-gradient(160deg,
    #05070f 0%,
    #0a0e22 22%,
    #161c40 48%,
    #241f42 72%,
    #2c2038 88%,
    #332536 100%);
}
.glow{ position:absolute; border-radius:50%; filter:blur(110px); opacity:.5; }
.glow-a{ width:560px; height:560px; left:-180px; top:-160px; background:radial-gradient(circle, rgba(77,107,255,.5), transparent 70%); }
.glow-b{ width:620px; height:620px; right:-200px; bottom:-220px; background:radial-gradient(circle, rgba(139,108,255,.38), transparent 70%); }
.glow-c{ width:480px; height:480px; right:-120px; top:20%; background:radial-gradient(circle, rgba(222,159,176,.22), transparent 70%); }
.grain{
  position:absolute; inset:0;
  opacity:.045; mix-blend-mode:overlay;
  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.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* =================== LAYOUT =================== */
.link-page{
  position:relative; z-index:1;
  max-width:var(--column-w);
  margin-inline:auto;
  padding:20px 24px 64px;
}

.lang-row{ display:flex; justify-content:flex-end; margin-bottom:8px; }
.lang-switch{
  display:flex; align-items:center; gap:6px;
  font-size:.8rem; font-weight:700; letter-spacing:.03em;
  color:var(--ink-500);
  padding:10px 6px;
}
.lang-switch .is-current{ color:var(--ink-000); }
.lang-switch .lang-sep{ color:var(--ink-700); font-weight:400; }
.lang-switch:hover span{ color:var(--ink-100); }
.lang-switch:hover .is-current{ color:var(--ink-000); }

/* =================== IDENTITY =================== */
.identity{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  padding-block:28px 40px;
}
.avatar{
  width:132px; height:132px; border-radius:50%;
  object-fit:cover;
  border:2px solid rgba(255,255,255,.16);
  box-shadow:0 0 0 6px rgba(139,108,255,.08), 0 20px 40px -16px rgba(0,0,0,.6);
  margin-bottom:20px;
}
.identity-name{
  font-size:1.7rem; font-weight:800; letter-spacing:-.01em;
  color:var(--ink-000);
}
.identity-tagline{
  margin-top:10px;
  font-size:.78rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:#8b9bff;
}
.identity-bio{
  margin-top:14px;
  font-size:.98rem; line-height:1.55; font-style:italic;
  color:var(--ink-300);
  max-width:420px;
}

/* =================== LINK GROUPS =================== */
.link-group{ margin-top:34px; }
.link-group-label{
  font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-500);
  margin-bottom:12px;
  padding-left:2px;
}

.link-list{ display:flex; flex-direction:column; gap:12px; }

.link-item{
  display:flex; align-items:center; gap:14px;
  width:100%;
  padding:14px 18px;
  border-radius:39px;
  background:var(--navy-800);
  border:1px solid rgba(255,255,255,.07);
  transition:transform .25s var(--ease), border-color .25s var(--ease), background-color .25s var(--ease);
}
.link-item:hover{ transform:translateY(-3px); border-color:rgba(255,255,255,.18); background:var(--navy-700); }
.link-item:active{ transform:translateY(-1px); }

.link-badge{
  width:46px; height:46px; border-radius:13px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:#fff;
  overflow:hidden;
}
.link-badge svg{ width:22px; height:22px; }
.link-badge-logo picture, .link-badge-logo img{ width:100%; height:100%; display:block; }
.link-badge-logo img{ object-fit:cover; }

.link-text{ display:flex; flex-direction:column; min-width:0; flex:1; }
.link-name{ font-weight:700; font-size:.96rem; color:var(--ink-000); }
.link-desc{ font-size:.78rem; color:var(--ink-500); margin-top:2px; line-height:1.35; }

.link-item .social-arrow{
  width:18px; height:18px; flex-shrink:0; color:var(--ink-500);
  opacity:0; transform:translateX(-4px); transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.link-item:hover .social-arrow{ opacity:1; transform:translateX(0); }
@media (hover:none){ .link-item .social-arrow{ opacity:1; transform:translateX(0); } }

.link-item.is-disabled{ opacity:.45; cursor:default; pointer-events:none; }
.link-item.is-disabled .link-desc{ font-style:italic; }

/* Social platforms: a compact icon-only row, not full rows — platform
   icons are self-explanatory and this is the universal link-in-bio
   convention (a row of bare icon buttons below the main content links). */
.icon-row{
  display:flex; flex-wrap:wrap; justify-content:center; gap:14px;
}
.icon-btn{
  width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#fff;
  border:1px solid rgba(255,255,255,.08);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.icon-btn svg{ width:24px; height:24px; }
.icon-btn:hover{ transform:translateY(-3px) scale(1.04); box-shadow:0 12px 22px -10px rgba(0,0,0,.55); }
.icon-btn:active{ transform:translateY(-1px) scale(1.02); }
.icon-btn.is-disabled{ opacity:.4; cursor:default; pointer-events:none; }

/* Social badges */
.badge-instagram{ background:linear-gradient(135deg,#f6a03c,#e8407a 55%,#8b4cd8); }
.badge-linkedin{ background:#0a66c2; }
.badge-facebook{ background:#1877f2; }
.badge-email{ background:linear-gradient(135deg,#14b8a6,#0891b2); }
.badge-tiktok{ background:#0d0d0d; border:1px solid rgba(255,255,255,.15); }
.badge-youtube{ background:#ff2d2d; }

/* =================== FOOTER =================== */
.mini-footer{
  position:relative; z-index:1;
  display:flex; flex-direction:column; align-items:center; gap:12px;
  padding:36px 24px 48px;
  text-align:center;
}
.mini-footer .brand-mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:9px;
  border:1px solid rgba(255,255,255,.2);
  background:linear-gradient(160deg, rgba(139,108,255,.16), rgba(77,107,255,.07));
  color:var(--ink-300);
}
.mini-footer .brand-mark svg{ width:18px; height:18px; }
.mini-footer p{ font-size:.78rem; color:var(--ink-500); }

/* =================== REVEAL ANIMATION =================== */
.reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* =================== RESPONSIVE =================== */
@media (min-width:640px){
  .link-page{ padding-top:32px; }
  .avatar{ width:156px; height:156px; }
  .identity-name{ font-size:1.95rem; }
  .identity{ padding-block:36px 48px; }
  .link-item{ padding:16px 18px; }
}

@media (max-width:360px){
  .link-page{ padding-inline:18px; }
  .avatar{ width:116px; height:116px; }
  .identity-name{ font-size:1.5rem; }
}
