/* ── EVENTS — editorial list ───────────────────── */
.ev-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line-soft)}
.ev-row-wrap{list-style:none;margin:0;padding:0}
.ev-row{position:relative;display:grid;grid-template-columns:120px 1fr;column-gap:48px;padding:24px 8px;border:0;border-bottom:1px solid var(--line-soft);background:transparent;color:inherit;font:inherit;width:100%;text-align:left;cursor:pointer;align-items:start;overflow:hidden;--mx:50%;--my:50%}
/* Cursor-following radial spotlight only. No content shift, no side bar. */
.ev-row::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(167,139,250,.12) 0%,rgba(167,139,250,.04) 30%,transparent 60%);opacity:0;transition:opacity .35s var(--ease);pointer-events:none}
.ev-row:hover::before{opacity:1}
.ev-row:focus-visible{outline:2px solid rgba(167,139,250,.6);outline-offset:-2px;border-radius:6px}
.ev-row > *{position:relative;z-index:1}
.ev-row:hover .ev-row-date{color:var(--text)}
.ev-row:hover .ev-row-title{color:var(--text-white)}
.ev-row-date,.ev-row-title{transition:color .3s var(--ease)}
.ev-row-date{font-family:'JetBrains Mono',monospace;font-size:var(--fs-base);color:var(--text-dim);letter-spacing:.06em;padding-top:6px}
.ev-row-body{min-width:0;display:flex;flex-direction:column;gap:6px}
.ev-row-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:'JetBrains Mono',monospace;font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;line-height:1.4;margin-bottom:2px}
.ev-row-dot{width:7px;height:7px;min-width:7px;min-height:7px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 3px rgba(255,255,255,.02)}
.ev-row-cat{color:var(--text-mute)}
.ev-row-sep{color:var(--text-dim);font-weight:300}
.ev-row-role{color:var(--accent)}
.ev-row-title{font-size:18px;font-weight:600;color:var(--text);line-height:1.35;letter-spacing:-.01em}
.ev-row-desc{font-size:var(--fs-lg);color:var(--text-mute);line-height:1.7;max-width:680px}

/* ── CONTACT ───────────────────────────────────── */
.contact-grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
.contact-left{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.contact-heading{font-size:clamp(36px,5vw,68px);font-weight:700;line-height:1.02;letter-spacing:-.035em;margin-bottom:20px;background:linear-gradient(135deg,#f5f5ff 0%,var(--accent) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.contact-sub{font-size:16px;color:var(--text-mute);line-height:1.75;margin-bottom:36px;max-width:480px}
/* Contact email — minimal text + a hand-drawn tapered underline (thick → thin, like a brush stroke) */
.contact-email{position:relative;font-size:var(--fs-2xl);font-weight:600;color:var(--accent);display:inline-flex;align-items:center;gap:10px;padding:0 22px 10px 0;background:none;border:0;border-radius:0;text-decoration:none;cursor:pointer;line-height:1.4;transition:color .3s var(--ease)}
/* Underline — solid on left, fades to transparent on right via linear gradient (clean, natural) */
.contact-email::after{content:"";position:absolute;left:0;right:18px;bottom:0;height:1.5px;background:linear-gradient(to right,currentColor 0%,currentColor 55%,transparent 100%);opacity:.7;transition:opacity .3s var(--ease),right .4s cubic-bezier(.22,1,.36,1)}
.contact-email .contact-email-arrow{position:absolute;right:0;bottom:0;width:14px;height:14px;color:currentColor;transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .3s var(--ease);opacity:.65}
.contact-email:hover{color:#c4b5fd}
.contact-email:hover::after{opacity:1;right:6px}
.contact-email:hover .contact-email-arrow{transform:translate(4px,-4px);opacity:1}
.contact-socials{display:flex;flex-direction:column;gap:12px;width:100%;min-width:0}
/* Social card — 3D tilt + diagonal sheen sweep + specular highlight + content parallax. Zero color/border change. */
.social-card{position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr auto;column-gap:18px;align-items:center;padding:18px 22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-align:left;will-change:transform}
/* Diagonal light beam — sits off-screen, slides across the card surface on hover */
.social-card::before{content:"";position:absolute;top:-50%;bottom:-50%;left:-30%;width:40%;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.07) 35%,rgba(255,255,255,.18) 50%,rgba(255,255,255,.07) 65%,transparent 100%);transform:translateX(0) skewX(-12deg);opacity:0;transition:transform 1.1s cubic-bezier(.22,1,.36,1),opacity .25s var(--ease);pointer-events:none;z-index:2}
.social-card:hover::before{transform:translateX(330%) skewX(-12deg);opacity:1;transition-delay:0s,.05s}
.social-card > *{position:relative;z-index:1;transform:translateZ(0);transition:transform .55s cubic-bezier(.22,1,.36,1)}
/* On hover: icon and arrow lift forward in 3D space (parallax above the card surface) */
.social-card:hover .social-icon{transform:translateZ(28px)}
.social-card:hover .social-arrow{transform:translateZ(20px) translate(2px,-2px)}
.social-card:hover .social-text{transform:translateZ(14px)}
/* Override the default purple .tilt halo with a sharper, glass-like white specular */
.social-card.tilt::after{background:radial-gradient(circle 180px at var(--spot-x,50%) var(--spot-y,50%),rgba(255,255,255,.18) 0%,rgba(255,255,255,.04) 30%,transparent 55%);mix-blend-mode:screen}
.social-icon{color:var(--text-white);display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:0;transition:color .3s var(--ease)}
.social-icon svg{width:24px;height:24px}
.social-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.social-name{font-size:var(--fs-lg);font-weight:600;color:var(--text)}
.social-handle{font-family:'JetBrains Mono',monospace;font-size:var(--fs-base);color:var(--text-dim)}
.social-arrow{color:var(--text-dim);transition:transform .55s cubic-bezier(.22,1,.36,1);flex-shrink:0}

/* Contact switches to two columns at desktop widths, mirroring the
   960px tablet→desktop pivot used everywhere else. */
@media(min-width:961px){
  .contact-grid{grid-template-columns:1.05fr 1fr;column-gap:clamp(56px,8vw,120px);row-gap:48px}
}

