:root {
  --ink: #06111e;
  --navy: #071421;
  --navy-2: #0c1b2b;
  --surface: #f5f8f6;
  --paper: #ffffff;
  --text: #111827;
  --muted: #5d6b7b;
  --line: #d9e2df;
  --line-dark: rgba(148, 182, 190, .16);
  --teal: #13b9aa;
  --teal-dark: #087f78;
  --teal-soft: #e7f9f6;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --container: 1120px;
  --radius: 14px;
  --shadow: 0 14px 34px rgba(13, 31, 36, .06);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 74px; }
body { margin: 0; font-family: var(--sans); background: var(--surface); color: var(--text); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font: inherit; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }

.site-header { position: sticky; top: 0; z-index: 50; height: 74px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.nav { height: 100%; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 11px; justify-self: start; min-width: 0; }
.brand-mark { width: 32px; height: 32px; border: 1px solid #d4ddda; border-radius: 10px; display: grid; place-items: center; font-weight: 800; font-size: 12px; background: #fff; }
.brand-name { font-weight: 720; font-size: 13px; white-space: nowrap; }
.brand-name span { margin-left: 7px; font-family: var(--mono); font-size: 9px; font-weight: 600; color: #81909b; letter-spacing: .12em; }
.nav-links { display: flex; align-items: stretch; height: 100%; gap: 26px; }
.nav-link { position: relative; display: grid; place-items: center; font-size: 12px; font-weight: 600; color: #596777; }
.nav-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 11px; height: 1px; background: var(--teal); transform: scaleX(0); transform-origin: center; transition: transform .2s ease; }
.nav-link:hover, .nav-link.active { color: var(--ink); }
.nav-link.active::after, .nav-link:hover::after { transform: scaleX(1); }
.nav-actions { justify-self: end; display: flex; align-items: center; gap: 12px; }
.icon-link { font-family: var(--mono); font-size: 11px; font-weight: 800; color: #60707d; }
.icon-link:hover { color: var(--teal-dark); }
.nav-cv { background: var(--teal); color: #041715; border-radius: 8px; padding: 11px 15px; font-size: 11px; font-weight: 800; }
.nav-cv:hover { background: #18c8b8; }
.menu-toggle { display: none; justify-self: end; border: 0; background: transparent; width: 38px; height: 38px; padding: 10px; }
.menu-toggle span { display: block; height: 1px; background: var(--ink); margin: 5px 0; }

.hero { position: relative; overflow: hidden; min-height: 720px; background: linear-gradient(115deg, #071320 0%, #071421 62%, #092b31 100%); color: #f7fbfb; }
.hero-grid-bg, .contact-grid-bg { position: absolute; inset: 0; pointer-events: none; opacity: .7; background-image: linear-gradient(var(--line-dark) 1px, transparent 1px), linear-gradient(90deg, var(--line-dark) 1px, transparent 1px); background-size: 30px 30px; mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.85) 65%, transparent 100%); }
.hero::after { content: ""; position: absolute; width: 520px; height: 520px; right: -160px; top: -180px; border-radius: 50%; background: rgba(20, 184, 166, .11); filter: blur(10px); }
.hero-layout { position: relative; z-index: 2; min-height: 720px; display: grid; grid-template-columns: 1.08fr .82fr; gap: 70px; align-items: center; padding: 78px 0; }
.hero-copy { max-width: 620px; }
.eyebrow { width: fit-content; display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(179, 215, 218, .18); background: rgba(9, 27, 39, .58); border-radius: 999px; padding: 7px 11px; font-size: 11px; color: #bed0d8; }
.dot { width: 7px; height: 7px; border-radius: 50%; background: #45dbc9; box-shadow: 0 0 0 4px rgba(69,219,201,.09); }
h1 { margin: 27px 0 18px; font-size: clamp(47px, 5.1vw, 68px); line-height: .99; letter-spacing: -.055em; max-width: 700px; }
h1 span { color: #52dfcf; }
.hero-text { max-width: 590px; margin: 0; font-size: 16px; line-height: 1.62; color: #d7e3ea; }
.hero-text + .hero-text { margin-top: 14px; }
.secondary-copy { color: #afc0cb; font-size: 14px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 42px; padding: 0 16px; border-radius: 7px; border: 1px solid transparent; font-size: 11px; font-weight: 820; transition: transform .15s ease, border-color .15s ease, background .15s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { background: var(--teal); color: #031715; }
.button-primary:hover { background: #1acbba; }
.button-dark { background: rgba(9, 22, 35, .62); border-color: rgba(187, 211, 217, .2); color: #f3f8fa; }
.button-dark:hover { border-color: rgba(82,223,207,.55); }
.button-light { background: #fff; border-color: var(--line); color: var(--ink); }
.button-light:hover { border-color: #9fbbb5; }
.social-row { display: flex; flex-wrap: wrap; gap: 17px; margin-top: 19px; }
.social-row a { color: #b9cbd5; font-size: 11px; }
.social-row a:hover { color: #59e0d1; }
.hero-stack { margin-top: 28px; font-family: var(--mono); font-size: 9px; letter-spacing: .06em; color: #75a8b4; line-height: 1.8; }

.profile-shell { justify-self: end; width: min(100%, 430px); border: 1px solid rgba(147, 190, 194, .2); border-radius: 16px; background: rgba(10, 29, 42, .88); padding: 20px; box-shadow: 0 24px 70px rgba(0,0,0,.16); }
.profile-photo { height: 460px; overflow: hidden; border: 1px solid rgba(190, 215, 220, .18); border-radius: 13px; background: #f8f6f3; }
.profile-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.profile-footer { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding-top: 17px; }
.profile-footer strong { display: block; font-size: 13px; }
.profile-footer span { display: block; margin-top: 5px; font-size: 10px; color: #a7bac5; }
.profile-footer p { margin: 0; font-family: var(--mono); color: #4fd9c9; font-size: 8px; font-weight: 800; letter-spacing: .1em; white-space: nowrap; }

.metrics-band { background: #fff; border-bottom: 1px solid var(--line); }
.metrics-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.metric { min-height: 112px; padding: 25px 24px; display: flex; flex-direction: column; justify-content: center; }
.metric + .metric { border-left: 1px solid var(--line); }
.metric strong { font-size: 29px; line-height: 1; letter-spacing: -.04em; }
.metric span { margin-top: 7px; color: #687784; font-size: 11px; }

.section { padding: 105px 0; }
.soft-section { background: #f2f6f4; }
.section-intro { display: grid; grid-template-columns: 185px minmax(0,760px); gap: 36px; align-items: start; margin-bottom: 46px; }
.section-intro.compact { margin-bottom: 20px; }
.kicker, .micro-label, .visual-label, .citation-card > span { margin: 0; font-family: var(--mono); font-size: 9px; font-weight: 800; letter-spacing: .14em; color: var(--teal-dark); }
.section-intro h2, .spotlight-copy h2, .education-heading h2, .contact-inner h2 { margin: 0 0 14px; font-size: clamp(31px, 3.8vw, 48px); line-height: 1.08; letter-spacing: -.045em; font-weight: 650; }
.section-intro > div > p { margin: 0; max-width: 720px; color: var(--muted); line-height: 1.65; font-size: 14px; }

.projects-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; }
.project-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 1px 0 rgba(255,255,255,.8); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.project-card:hover { transform: translateY(-3px); border-color: #b5cec8; box-shadow: var(--shadow); }
.accent-card { border-color: rgba(19,185,170,.8); }
.project-visual { position: relative; height: 220px; overflow: hidden; border-bottom: 1px solid var(--line); background-color: #fbfdfc; background-image: linear-gradient(#e8efed 1px, transparent 1px), linear-gradient(90deg, #e8efed 1px, transparent 1px); background-size: 30px 30px; }
.visual-label { position: absolute; left: 18px; bottom: 17px; z-index: 4; color: #4e9992; }
.project-body { padding: 27px 28px 28px; }
.project-body h3 { margin: 9px 0 10px; font-size: 24px; line-height: 1.15; letter-spacing: -.035em; }
.project-body > p:not(.micro-label) { margin: 0; color: var(--muted); line-height: 1.6; font-size: 13px; }
.mini-points { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 22px; padding: 0; margin: 17px 0; list-style: none; }
.mini-points li { position: relative; padding-left: 11px; color: #64717d; font-size: 10px; line-height: 1.45; }
.mini-points li::before { content: "•"; position: absolute; left: 0; color: var(--teal); }
.tags { display: flex; flex-wrap: wrap; gap: 5px; }
.tags span { border: 1px solid #dbe4e2; border-radius: 5px; background: #fafcfb; padding: 5px 7px; font-family: var(--mono); font-size: 8px; color: #596b75; }
.case-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 19px; min-height: 36px; padding: 0 14px; border-radius: 7px; background: var(--teal); color: #061615; font-size: 10px; font-weight: 800; }
.case-link:hover { background: #1acbba; }
.case-link.muted { background: #eef4f2; color: #65757d; }

/* CSS research visuals */
.visual-kd .kd-node { position: absolute; top: 79px; width: 82px; height: 54px; display: grid; place-items: center; border: 1px solid #9fcfc8; border-radius: 9px; background: rgba(255,255,255,.9); font-family: var(--mono); font-size: 9px; font-weight: 800; color: #245e59; }
.visual-kd .teacher { left: 62px; }.visual-kd .student { right: 62px; }
.kd-path { position: absolute; left: 145px; right: 54%; top: 106px; border-top: 1px dashed #43b8ac; }
.kd-path.second { left: 54%; right: 145px; }
.kd-gate { position: absolute; left: 50%; top: 86px; transform: translateX(-50%); padding: 7px 9px; border-radius: 999px; background: #e6f8f5; border: 1px solid #a8ded7; font-family: var(--mono); font-size: 8px; color: #27776f; }
.visual-cxr .scan-box, .visual-cxr .report-box { position: absolute; top: 60px; width: 120px; height: 95px; border: 1px solid #bfd8d3; border-radius: 9px; background: rgba(255,255,255,.88); padding: 12px; }
.visual-cxr .scan-box { left: 54px; }.visual-cxr .report-box { right: 54px; }
.visual-cxr span { font-family: var(--mono); font-size: 8px; color: #4c8f89; }
.scan-box i { position: absolute; border-radius: 50%; background: #d7ebe7; }.scan-box i:nth-child(2){width:36px;height:36px;left:18px;bottom:14px}.scan-box i:nth-child(3){width:45px;height:55px;right:16px;bottom:10px;opacity:.7}.scan-box i:nth-child(4){width:20px;height:20px;left:48px;top:36px;background:#b8ddd7}
.report-box b { display:block;height:5px;border-radius:5px;background:#d8e8e5;margin-top:10px}.report-box b:nth-child(3){width:77%}.report-box b:nth-child(4){width:56%}
.match-line { position:absolute;left:175px;right:175px;top:108px;border-top:1px dashed #40b7aa }.score-chip { position:absolute;left:50%;top:90px;transform:translateX(-50%);background:#0c302e;color:#59dfd0;border-radius:999px;padding:7px 8px;font-family:var(--mono);font-size:8px }
.visual-code .code-window { position:absolute;left:62px;top:55px;width:185px;height:110px;border:1px solid #bed3cf;border-radius:9px;background:rgba(255,255,255,.9);padding:20px 17px }.code-window span{display:block;height:5px;width:90%;background:#d8e8e5;border-radius:5px;margin-bottom:10px}.code-window .short{width:55%}.code-window .mid{width:72%}.code-arrow{position:absolute;left:51%;top:96px;color:#3db9ad;font-size:24px}.security-node{position:absolute;right:72px;top:76px;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;text-align:center;border:1px solid #8bcac2;background:#e5f8f5;color:#176f67;font-family:var(--mono);font-size:9px;font-weight:800}
.visual-nlp .token-line{position:absolute;left:55px;right:55px;top:70px;display:flex;align-items:center;justify-content:space-between;gap:8px}.token-line span{padding:8px 10px;border:1px solid #b9d9d4;border-radius:7px;background:rgba(255,255,255,.92);font-family:var(--mono);font-size:9px;color:#2d716a}.token-line span:nth-child(3){border:0;background:transparent;color:#24ab9d;font-size:17px}.token-pills{position:absolute;left:75px;right:75px;top:125px;display:flex;justify-content:center;gap:6px}.token-pills i{font-style:normal;border-radius:999px;background:#e2f6f2;padding:6px 8px;font-family:var(--mono);font-size:8px;color:#327b74}

.research-spotlight { background: #fff; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.spotlight-grid { display: grid; grid-template-columns: 1.06fr .94fr; gap: 48px; align-items: center; }
.spotlight-copy h2 { margin-top: 13px; }
.spotlight-copy > p:not(.kicker) { color: var(--muted); font-size: 14px; line-height: 1.65; max-width: 620px; }
.citation-card { margin-top: 23px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #f4f7f6; }
.citation-card p { margin: 8px 0 10px; font-size: 11px; line-height: 1.6; color: #25333c; }
.citation-card a { font-family: var(--mono); font-size: 9px; color: var(--teal-dark); }
.spotlight-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.research-diagram { border: 1px solid var(--line); border-radius: 14px; background: #fcfefd; padding: 24px; }
.diagram-head h3 { margin: 8px 0 3px; font-size: 13px; font-weight: 650; }
.track-stage { position: relative; height: 280px; margin-top: 8px; overflow: hidden; background-image: linear-gradient(#edf2f1 1px, transparent 1px), linear-gradient(90deg,#edf2f1 1px,transparent 1px); background-size: 42px 42px; }
.track-stage svg { position: absolute; inset: 23px 19px 38px 24px; width: calc(100% - 43px); height: calc(100% - 61px); overflow: visible; }
.track { fill: none; stroke-width: 2; stroke-linecap: round; }.track.observed { stroke: #173943; }.track.forecast { stroke: var(--teal); stroke-dasharray: 5 4; }.track-stage circle { fill: #fff; stroke: #173943; stroke-width: 1.5; }
.axis { position:absolute;background:#b8cac7}.axis-y{left:24px;top:20px;bottom:38px;width:1px}.axis-x{left:24px;right:18px;bottom:38px;height:1px}
.legend { position: absolute; left: 33px; right: 20px; bottom: 11px; display:flex;justify-content:center;gap:18px;font-family:var(--mono);font-size:8px;color:#687c84 }.legend i{display:inline-block;width:14px;height:2px;vertical-align:middle;margin-right:5px}.observed-dot{background:#173943}.forecast-dot{background:var(--teal)}
.diagram-note { margin: 12px 0 0; color: #819098; font-size: 9px; line-height: 1.5; }

.publication-section { background: #fff; }
.publication-list { border-top: 1px solid var(--line); }
.publication-row { display: grid; grid-template-columns: 92px 1fr 70px; gap: 26px; align-items: start; padding: 31px 0; border-bottom: 1px solid var(--line); }
.pub-year { font-family: var(--mono); color: #51636c; font-size: 12px; padding-top: 3px; }
.publication-row h3 { margin: 7px 0; font-size: 20px; line-height: 1.25; letter-spacing: -.025em; font-weight: 650; }
.publication-row p:not(.micro-label) { margin: 6px 0 0; color: #65737e; font-size: 12px; line-height: 1.55; }
.publication-row .authors { color: #35434c !important; }
.publication-row > a { justify-self: end; font-size: 10px; font-weight: 800; color: var(--teal-dark); }

.timeline { max-width: 980px; margin: 28px 0 95px 80px; }
.timeline-item { display: grid; grid-template-columns: 118px 14px 1fr; gap: 18px; min-height: 115px; }
.timeline-date { padding-top: 3px; font-family: var(--mono); font-size: 9px; color: #64757d; line-height: 1.5; }
.timeline-marker { position: relative; width: 14px; }
.timeline-marker::before { content:""; position:absolute; left:6px; top:0; bottom:0; width:1px; background:#c9d9d5; }
.timeline-marker::after { content:""; position:absolute; left:3px; top:2px; width:7px; height:7px; border-radius:50%; background:var(--teal); box-shadow:0 0 0 4px #f2f6f4; }
.timeline-item:last-child .timeline-marker::before { bottom: 78%; }
.timeline-content { padding-bottom: 28px; }
.timeline-content h3 { margin: 0; font-size: 14px; font-weight: 680; }
.timeline-content h3 span { font-weight: 450; color: #5f6e77; }
.timeline-content p { margin: 8px 0 0; color: #64727d; line-height: 1.65; font-size: 11px; max-width: 760px; }

.education-heading { max-width: 720px; margin-bottom: 28px; }
.education-heading h2 { margin-top: 8px; }
.education-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.education-card { border: 1px solid var(--line); border-radius: var(--radius); background: #fff; padding: 26px; }
.education-card h3 { margin: 9px 0 5px; font-size: 18px; font-weight: 650; letter-spacing: -.02em; }
.institution { margin: 0 0 11px; color: #5f7078; font-size: 11px; }
.merit { display: inline-block; margin-bottom: 13px; padding: 5px 8px; background: var(--teal-soft); border: 1px solid #c7ebe6; border-radius: 5px; font-size: 9px; color: var(--teal-dark); }
.education-card > p:last-child { margin: 14px 0 0; color: #66757e; font-size: 11px; line-height: 1.6; }
.interest-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 17px; }
.interest-list span { border: 1px solid #d9e3e0; border-radius: 6px; padding: 7px 8px; font-family: var(--mono); font-size: 8px; color: #546a72; background: #fbfcfc; }
.tools-line { margin-top: 18px !important; }

.coding-strip { margin-top: 20px; display: grid; grid-template-columns: 1fr 210px 210px; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: #fff; }
.coding-strip > div, .coding-strip > a { padding: 22px 24px; min-height: 100px; }
.coding-strip > a { border-left: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; }
.coding-strip h3 { margin: 7px 0 0; font-size: 17px; }
.coding-strip a strong { font-size: 14px; }.coding-strip a span { margin-top: 6px; color: var(--teal-dark); font-size: 9px; font-family: var(--mono); }

.contact-section { position: relative; overflow: hidden; background: linear-gradient(120deg, #071320 0%, #071421 58%, #08282e 100%); color: #f3f8fa; padding: 83px 0 88px; }
.contact-grid-bg { mask-image: linear-gradient(to top, #000 0%, rgba(0,0,0,.9) 100%); }
.contact-inner { position: relative; z-index: 2; max-width: 790px; text-align: center; }
.contact-inner .kicker { color: #50d9ca; }
.contact-inner h2 { margin: 14px auto 15px; font-size: clamp(32px,4.2vw,50px); }
.contact-inner > p:not(.kicker) { margin: 0 auto; max-width: 700px; color: #bbccd5; line-height: 1.65; font-size: 13px; }
.contact-actions { margin-top: 25px; display: flex; justify-content: center; flex-wrap: wrap; gap: 9px; }

.footer { background: #06111d; border-top: 1px solid rgba(173, 203, 207, .12); color: #8498a4; }
.footer-inner { min-height: 70px; display: flex; align-items: center; justify-content: space-between; font-size: 9px; font-family: var(--mono); }
.footer-inner p { margin: 0; }.footer-inner div{display:flex;gap:18px}.footer a:hover{color:#4fdaca}

.reveal { opacity: 0; transform: translateY(12px); transition: opacity .55s ease, transform .55s ease; }
.reveal.visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .project-card, .button { transition: none; }
}

@media (max-width: 980px) {
  .nav { grid-template-columns: 1fr auto; }
  .nav-links { display: none; }
  .hero-layout { grid-template-columns: 1fr 390px; gap: 38px; }
  .profile-photo { height: 410px; }
  .spotlight-grid { grid-template-columns: 1fr; }
  .research-diagram { max-width: 650px; }
  .coding-strip { grid-template-columns: 1fr 180px 180px; }
}

@media (max-width: 760px) {
  .container { width: min(calc(100% - 28px), var(--container)); }
  .site-header { height: 68px; }
  html { scroll-padding-top: 68px; }
  .nav-actions .icon-link { display: none; }
  .nav-cv { display: none; }
  .menu-toggle { display: block; }
  .nav-links { position: absolute; display: none; top: 68px; left: 14px; right: 14px; height: auto; padding: 8px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 14px 30px rgba(5,22,30,.12); flex-direction: column; gap: 0; }
  .nav-links.open { display: flex; }
  .nav-link { display: block; padding: 12px 10px; }
  .nav-link::after { display: none; }
  .brand-name span { display: none; }

  .hero { min-height: 0; }
  .hero-layout { min-height: 0; grid-template-columns: 1fr; gap: 48px; padding: 70px 0; }
  h1 { font-size: clamp(44px, 14vw, 60px); }
  .profile-shell { justify-self: start; width: 100%; max-width: 430px; }
  .profile-photo { height: min(100vw, 420px); }
  .metrics-grid { grid-template-columns: 1fr 1fr; }
  .metric:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .metric:nth-child(4) { border-top: 1px solid var(--line); }

  .section { padding: 78px 0; }
  .section-intro { grid-template-columns: 1fr; gap: 12px; margin-bottom: 30px; }
  .projects-grid, .education-grid { grid-template-columns: 1fr; }
  .project-visual { height: 205px; }
  .mini-points { grid-template-columns: 1fr; }

  .publication-row { grid-template-columns: 62px 1fr; gap: 16px; }
  .publication-row > a { grid-column: 2; justify-self: start; }
  .timeline { margin-left: 0; }
  .timeline-item { grid-template-columns: 90px 14px 1fr; gap: 12px; }
  .coding-strip { grid-template-columns: 1fr; }
  .coding-strip > a { border-left: 0; border-top: 1px solid var(--line); }
  .footer-inner { padding: 20px 0; align-items: flex-start; flex-direction: column; gap: 10px; }
}

@media (max-width: 470px) {
  .brand-name { display: none; }
  .metrics-grid { grid-template-columns: 1fr; }
  .metric + .metric { border-left: 0; border-top: 1px solid var(--line); }
  .hero-actions .button, .spotlight-actions .button { width: 100%; }
  .profile-footer { align-items: flex-start; flex-direction: column; }
  .profile-footer p { white-space: normal; }
  .publication-row { grid-template-columns: 1fr; }
  .publication-row > a { grid-column: 1; }
  .timeline-item { grid-template-columns: 1fr; gap: 6px; border-bottom: 1px solid var(--line); padding: 18px 0; }
  .timeline-marker { display: none; }
  .contact-actions .button { width: 100%; }
}
