/* ══════════════════════════════════════════════════════════════
   aaronsnowberger.com — Main Stylesheet
   Tokens → Aurora → Components → Sections → Responsive
   ══════════════════════════════════════════════════════════════ */

/* ══ ROOT SCALING ════════════════════════════════════════════ */
:root { font-size: clamp(14px,1.1vw + 1px,19px); }
@media(max-width:480px){ :root { font-size:14px; } }

/* ══ TOKENS ══════════════════════════════════════════════════ */
[data-theme="dark"] {
  --bg:#0c0f0e; --bg-soft:#101614; --bg-muted:#131a18; --bg-card:#141d1a;
  --t1:#e6efec; --t2:#7ea89e; --t3:#3e5852;
  --brd:#1b2825; --brd2:#243530; --rule:rgba(255,255,255,.06);
  --nav-bg:rgba(12,15,14,.92);
  --teal:#2dd4bf; --blue:#38bdf8; --purple:#a78bfa; --pink:#e879f9;
  --dt:rgba(45,212,191,.11); --db:rgba(56,189,248,.11); --dp:rgba(167,139,250,.10);
  --brd-t:rgba(45,212,191,.28); --brd-b:rgba(56,189,248,.28); --brd-p:rgba(167,139,250,.26);
  --aur-a:rgba(45,212,191,.18); --aur-b:rgba(56,189,248,.14);
  --aur-c:rgba(167,139,250,.11); --aur-d:rgba(232,121,249,.07);
}
[data-theme="light"] {
  --bg:#f8faf9; --bg-soft:#ffffff; --bg-muted:#eef5f2; --bg-card:#ffffff;
  --t1:#101814; --t2:#3e5750; --t3:#8aa29b;
  --brd:#d6e6e0; --brd2:#c2d6d0; --rule:rgba(0,0,0,.07);
  --nav-bg:rgba(248,250,249,.93);
  --teal:#0a8c78; --blue:#0369a1; --purple:#6d28d9; --pink:#a21caf;
  --dt:rgba(10,140,120,.11); --db:rgba(3,105,161,.11); --dp:rgba(109,40,217,.09);
  --brd-t:rgba(10,140,120,.32); --brd-b:rgba(3,105,161,.32); --brd-p:rgba(109,40,217,.28);
  --aur-a:rgba(10,140,120,.15); --aur-b:rgba(3,105,161,.10);
  --aur-c:rgba(109,40,217,.08); --aur-d:rgba(162,28,175,.05);
}

/* ══ AURORA ══════════════════════════════════════════════════ */
section, footer { z-index:0; }
[data-aurora="on"] #hero::before {
  content:''; position:absolute; inset:0; pointer-events:none; z-index:-1;
  background:
    radial-gradient(ellipse 120% 65% at 15% -5%, var(--aur-a) 0%, transparent 55%),
    radial-gradient(ellipse 75% 55% at 82% 10%, var(--aur-b) 0%, transparent 50%),
    radial-gradient(ellipse 55% 40% at 3% 60%, var(--aur-c) 0%, transparent 45%),
    radial-gradient(ellipse 40% 30% at 95% 75%, var(--aur-d) 0%, transparent 40%);
}
[data-aurora="on"] #contact::before {
  content:''; position:absolute; inset:0; pointer-events:none; z-index:-1;
  background:
    radial-gradient(ellipse 110% 70% at 10% 0%, var(--aur-a) 0%, transparent 55%),
    radial-gradient(ellipse 70% 50% at 85% 15%, var(--aur-b) 0%, transparent 50%),
    radial-gradient(ellipse 50% 40% at 5% 70%, var(--aur-c) 0%, transparent 45%),
    radial-gradient(ellipse 40% 35% at 90% 80%, var(--aur-d) 0%, transparent 40%);
}
footer::before {
  content:''; position:absolute; inset:0; pointer-events:none; z-index:-1;
  background:
    radial-gradient(ellipse 100% 80% at 20% 120%, var(--aur-a) 0%, transparent 55%),
    radial-gradient(ellipse 70% 60% at 75% 110%, var(--aur-b) 0%, transparent 50%),
    radial-gradient(ellipse 50% 40% at 50% 90%, var(--aur-c) 0%, transparent 45%),
    radial-gradient(ellipse 40% 30% at 90% 95%, var(--aur-d) 0%, transparent 40%);
  opacity:.85;
}
.aurora-btn[aria-pressed="true"] {
  background:var(--dt) !important;
  border-color:var(--teal) !important;
  color:var(--teal) !important;
}

/* ══ FILL-SLIDE ══════════════════════════════════════════════ */
.fs, .fss { position:relative; overflow:hidden; z-index:0; }
.fs::before, .fss::before {
  content:''; position:absolute; inset:0;
  background:var(--sf,var(--teal));
  transform:translateX(-101%);
  transition:transform .3s cubic-bezier(.4,0,.2,1);
  z-index:-1; border-radius:inherit;
}
.fs:hover::before, .fss:hover::before { transform:translateX(0); }
.fs:hover { color:var(--bg) !important; border-color:var(--sf,var(--teal)) !important; }

/* ══ RESET & BASE ════════════════════════════════════════════ */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:'DM Sans','Noto Sans KR',sans-serif;
  background:var(--bg); color:var(--t1);
  line-height:1.6; -webkit-font-smoothing:antialiased;
  transition:background .3s,color .3s;
}
a { text-decoration:none; color:inherit; }
button { cursor:pointer; font-family:inherit; }
img { display:block; max-width:100%; }
section { position:relative; overflow:hidden; }
footer  { position:relative; overflow:hidden; }

/* ══ BILINGUAL ════════════════════════════════════════════════ */
[data-lang="en"] .ko { display:none !important; }
[data-lang="ko"] .en { display:none !important; }

/* ══ PROGRESS BAR ════════════════════════════════════════════ */
#prog {
  position:fixed; top:0; left:0; height:2px; width:0%;
  background:linear-gradient(90deg,var(--teal),var(--blue),var(--purple),var(--pink));
  z-index:999; transition:width .08s linear;
}

/* ══ NAV ══════════════════════════════════════════════════════ */
nav {
  position:fixed; top:2px; left:0; right:0; z-index:100;
  height:58px; display:flex; align-items:center;
  justify-content:space-between; padding:0 2rem; gap:1rem;
  background:transparent;
  transition:background .3s,border-color .3s,backdrop-filter .3s;
  border-bottom:1px solid transparent;
}
nav.scrolled,
[data-theme="light"] nav {
  background:var(--nav-bg); border-color:var(--brd);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
}
.nav-logo {
  font-family:'Playfair Display',serif; font-size:1rem; font-weight:700;
  color:var(--t1); letter-spacing:-.01em; white-space:nowrap; flex-shrink:0;
}
.nav-logo span { color:var(--teal); }
.nav-links { display:flex; align-items:center; gap:.1rem; flex:1; justify-content:center; }
.nav-link {
  font-size:.73rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase;
  color:var(--t2); padding:5px 11px; border-radius:6px;
  transition:color .2s,background .2s; white-space:nowrap;
}
.nav-link:hover { color:var(--t1); background:var(--rule); }
.nav-actions { display:flex; align-items:center; gap:.45rem; flex-shrink:0; }
.nbtn {
  font-size:.72rem; font-weight:700; letter-spacing:.03em;
  padding:5px 11px; border-radius:6px; border:1px solid var(--brd2);
  background:transparent; color:var(--t2); transition:all .2s; --sf:var(--teal);
}
.nbtn:hover { border-color:var(--teal); color:var(--teal); }
.hamburger {
  display:none; flex-direction:column; gap:4px;
  padding:6px; border:none; background:transparent;
}
.hamburger span {
  display:block; width:20px; height:2px;
  background:var(--t2); border-radius:2px; transition:all .25s;
}
.mob-menu {
  display:none; position:fixed; top:60px; left:0; right:0; z-index:99;
  background:var(--nav-bg); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--brd);
  flex-direction:column; padding:.75rem 1.5rem 1rem; gap:.2rem;
}
.mob-menu.open { display:flex; }
.mob-menu a {
  font-size:.85rem; font-weight:600; color:var(--t2);
  padding:.45rem 0; border-bottom:1px solid var(--rule); transition:color .2s;
}
.mob-menu a:last-child { border-bottom:none; }
.mob-menu a:hover { color:var(--teal); }

/* ══ HERO ══════════════════════════════════════════════════════ */
#hero {
  position:relative; min-height:100vh; display:flex; align-items:flex-end;
  overflow:hidden; background:#0c0f0e;
}
.hero-bg {
  position:absolute; inset:0; z-index:0;
  background:linear-gradient(160deg,#0c1f1c 0%,#0a1512 40%,#070e0c 100%);
}
.hero-bg::before {
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(45,212,191,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45,212,191,.04) 1px, transparent 1px);
  background-size:60px 60px;
  mask-image:linear-gradient(to bottom, transparent 0%, black 30%, black 70%, transparent 100%);
}
.hero-bg::after {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 70% 60% at 75% 30%,rgba(45,212,191,.13) 0%,transparent 55%),
    radial-gradient(ellipse 50% 50% at 20% 70%,rgba(56,189,248,.10) 0%,transparent 50%),
    radial-gradient(ellipse 40% 35% at 85% 80%,rgba(167,139,250,.09) 0%,transparent 45%);
}
.hero-portrait {
  position:absolute; right:0; top:0; bottom:0; width:52%;
  clip-path:polygon(12% 0%,100% 0%,100% 100%,0% 100%);
  z-index:1; overflow:hidden; background:#0c1a17;
}
.hero-portrait img {
  width:100%; height:100%; object-fit:cover; object-position:center center;
  opacity:.55; mix-blend-mode:normal; filter:contrast(1.2) saturate(.6);
}
.hero-portrait-overlay {
  position:absolute; inset:0;
  background:
    linear-gradient(to right,#0c0f0e 0%,transparent 25%),
    linear-gradient(to top,rgba(12,15,14,.8) 0%,transparent 40%);
}
.hero-portrait::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(45,212,191,.15) 0%,rgba(56,189,248,.08) 40%,rgba(167,139,250,.10) 100%);
  mix-blend-mode:screen;
}
.hero-content {
  position:relative; z-index:2; width:100%;
  padding:0 2.5rem 7rem; max-width:1200px; margin:0 auto;
}
.hero-eyebrow {
  font-family:'JetBrains Mono',monospace; font-size:.72rem; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; color:#2dd4bf;
  margin-bottom:1.4rem; display:flex; align-items:center; gap:.75rem;
}
.hero-eyebrow::before {
  content:''; display:inline-block; width:32px; height:1.5px; background:#2dd4bf;
}
.hero-h1 {
  font-family:'Playfair Display',serif;
  font-size:clamp(3.2rem,6.5vw,7rem);
  font-weight:900; line-height:.95; letter-spacing:-.03em;
  color:#e6efec; margin-bottom:1.25rem;
}
.hero-h1 em { font-style:italic; color:#2dd4bf; }
.hero-sub {
  font-size:clamp(.88rem,1.4vw,1.1rem); color:#7ea89e;
  max-width:520px; line-height:1.8; margin-bottom:2.5rem;
}
.hero-sub strong { color:#e6efec; font-weight:500; }
.hero-pills { display:flex; flex-wrap:wrap; gap:.55rem; margin-bottom:2.75rem; }
.hero-pill {
  color: #e6efec; border-color: #e6efec;
  font-size:.7rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  padding:5px 14px; border-radius:100px; border:1px solid; opacity: 0.45;
}
.hp-t { color:#2dd4bf; border-color:rgba(45,212,191,.28); background:rgba(45,212,191,.11); }
.hp-b { color:#38bdf8; border-color:rgba(56,189,248,.28); background:rgba(56,189,248,.11); }
.hp-p { color:#a78bfa; border-color:rgba(167,139,250,.26); background:rgba(167,139,250,.10); }
.hp-pink { color:#e879f9; border-color:rgba(232,121,249,.22); background:rgba(232,121,249,.07); }
.hero-actions { display:flex; gap:1rem; align-items:center; flex-wrap:wrap; }
.btn-primary {
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:11px 26px; border-radius:8px; background:transparent;
  color:var(--teal); border:1.5px solid var(--teal); transition:color .2s; --sf:var(--teal);
}
.btn-primary:hover { color:#0c0f0e; }
.btn-secondary {
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:10px 26px; border-radius:8px; background:transparent;
  color:var(--blue); border:1.5px solid var(--blue); transition:color .2s; --sf:var(--blue);
}
.btn-secondary:hover { color:#0c0f0e; }
.btn-cv {
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:10px 26px; border-radius:8px; background:transparent;
  color:var(--purple); border:1.5px solid var(--purple); transition:color .2s; --sf:var(--purple);
}
.btn-cv:hover { color:#0c0f0e; border-color:var(--purple); }
.btn-pink {
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:10px 26px; border-radius:8px; background:transparent;
  color:var(--pink); border:1.5px solid var(--pink); transition:color .2s; --sf:var(--pink);
}
.btn-pink:hover { color:#0c0f0e; border-color:var(--pink); }
.cv-nav-btn { color:var(--teal) !important; border-color:var(--brd-t) !important; --sf:var(--teal) !important; }
.hero-scroll {
  position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
  color:rgba(62,88,82,.9); font-size:.65rem; letter-spacing:.12em; text-transform:uppercase;
  font-family:'JetBrains Mono',monospace;
}
.scroll-line {
  width:1px; height:38px;
  background:linear-gradient(to bottom,#2dd4bf,transparent);
  animation:scrollpulse 2s ease-in-out infinite;
}
@keyframes scrollpulse {
  0%,100% { opacity:.3; transform:scaleY(.7); }
  50%      { opacity:1;  transform:scaleY(1); }
}

/* ══ SECTION COMMON ══════════════════════════════════════════ */
section { padding:5.5rem 0; position:relative; }
.wrap { max-width:1100px; margin:0 auto; padding:0 2.5rem; }
.sec-label {
  font-family:'JetBrains Mono',monospace; font-size:.67rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--teal);
  margin-bottom:.85rem; display:flex; align-items:center; gap:.55rem;
}
.sec-label::before {
  content:''; display:inline-block; width:18px; height:1.5px; background:var(--teal);
}
.sec-title {
  font-family:'Playfair Display',serif;
  font-size:clamp(1.8rem,3.5vw,2.7rem); font-weight:700;
  color:var(--t1); line-height:1.1; letter-spacing:-.02em; margin-bottom:.5rem;
}
.sec-title em { font-style:italic; color:var(--teal); }
.sec-desc {
  font-size:.88rem; color:var(--t2); line-height:1.85;
  max-width:560px; margin-bottom:3rem;
}
.section-rule {
  height:1px; border:none;
  background:linear-gradient(90deg,transparent,var(--teal),var(--blue),var(--purple),transparent);
  opacity:.2; margin:0;
}

/* ══ BIO ══════════════════════════════════════════════════════ */
#bio { background:var(--bg); }
.bio-layout { display:grid; grid-template-columns:1fr 1.65fr; gap:3.5rem; align-items:start; }
.stat-card {
  background:var(--bg-card); border:1px solid var(--brd); border-radius:16px;
  padding:1.75rem; position:sticky; top:78px;
}
.stat-photo-frame {
  width:100%; aspect-ratio:3/4; border-radius:10px; overflow:hidden;
  background:linear-gradient(135deg,var(--bg-muted),var(--bg-soft));
  margin-bottom:1.4rem; position:relative; border:1px solid var(--brd); cursor:pointer;
}
.stat-photo-frame img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:top center; transition:transform .4s ease;
}
.stat-photo-frame:hover img { transform:scale(1.03); }
.stat-photo-expand {
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(12,15,14,.4); opacity:0; transition:opacity .25s;
  font-size:.72rem; font-weight:700; letter-spacing:.08em;
  color:#fff; text-transform:uppercase; font-family:'JetBrains Mono',monospace;
}
.stat-photo-frame:hover .stat-photo-expand { opacity:1; }
.stat-name { font-family:'Playfair Display',serif; font-size:1.25rem; font-weight:700; color:var(--t1); margin-bottom:.15rem; }
.stat-ko   { font-size:.8rem; color:var(--t3); font-family:'Noto Sans KR',sans-serif; margin-bottom:1.2rem; }
.stat-facts { display:flex; flex-direction:column; gap:.65rem; }
.sf-row { display:flex; align-items:baseline; justify-content:space-between; gap:.5rem; padding-bottom:.65rem; border-bottom:1px solid var(--rule); }
.sf-row:last-child { border-bottom:none; padding-bottom:0; }
.sf-key { font-size:.7rem; color:var(--t3); font-weight:700; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; flex-shrink:0; }
.sf-val { font-size:.8rem; color:var(--t2); text-align:right; line-height:1.45; }
.sf-val a { color:var(--blue); transition:color .2s; }
.sf-val a:hover { color:var(--teal); }
.stat-photo-sq {
  aspect-ratio:1/1 !important; max-width:160px;
  margin-left:auto; margin-right:auto;
}
/* Bio language flip — independent of global site language */
[data-lang="en"] .bio-pane.bio-flipped .en { display:none !important; }
[data-lang="en"] .bio-pane.bio-flipped .ko { display:block !important; }
[data-lang="ko"] .bio-pane.bio-flipped .ko { display:none !important; }
[data-lang="ko"] .bio-pane.bio-flipped .en { display:block !important; }
.uni-strip {
  display:flex; flex-wrap:wrap; align-items:center;
  gap:1rem 1.5rem; padding:1.5rem 0; margin-top:1.25rem;
  border-top:1px solid var(--rule);
}
.uni-strip-lbl { font-size:.65rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--t3); flex-basis:100%; }
.uni-name {
  font-family:'Playfair Display',serif; font-size:.78rem; font-weight:600;
  color:var(--t3); font-style:italic; letter-spacing:.02em; opacity:.7;
  transition:opacity .2s,color .2s;
}
.uni-name:hover { opacity:1; color:var(--t2); }
.uni-logo {
  height:22px; width:auto; max-width:90px;
  opacity:.65; transition:opacity .2s; vertical-align:middle; display:inline-block;
}
.uni-name:hover .uni-logo { opacity:1; }
.bio-tabs-nav { display:flex; gap:.35rem; margin-bottom:1.6rem; flex-wrap:wrap; }
.btab {
  font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:6px 15px; border-radius:7px; border:1.5px solid var(--brd2);
  color:var(--t3); background:transparent; transition:all .2s;
}
.btab:hover { border-color:var(--t2); color:var(--t2); }
.btab.active { border-color:var(--teal); color:var(--teal); background:var(--dt); }
.bio-pane { display:none; }
.bio-pane.active { display:block; animation:fadein .25s ease; }
@keyframes fadein {
  from { opacity:0; transform:translateY(6px); }
  to   { opacity:1; transform:translateY(0); }
}
.bio-text {
  font-size:.92rem; color:var(--t2); line-height:1.9; margin-bottom:1.5rem;
  background:var(--bg-card); border:1px solid var(--brd); border-radius:12px; padding:1.6rem;
}
.bio-text p+p { margin-top:.9rem; }
.bio-text strong { color:var(--t1); font-weight:600; }
.bio-text em { color:var(--teal); font-style:italic; }
.bio-meta { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem; font-size:.7rem; color:var(--t3); }
.bio-wc { font-family:'JetBrains Mono',monospace; letter-spacing:.08em; }
.copy-btn {
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:6px 15px; border-radius:6px; border:1.5px solid var(--brd-t);
  color:var(--teal); background:transparent; transition:all .2s;
  position:relative; overflow:hidden; --sf:var(--teal);
}
.copy-btn:hover { color:#0c0f0e; }
.copy-btn.copied { border-color:var(--purple); color:var(--purple); --sf:var(--purple); }

/* ══ PHOTOS ══════════════════════════════════════════════════ */
#photos { background:var(--bg-soft); border-top:1px solid var(--brd); border-bottom:1px solid var(--brd); }
.photos-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-bottom:1.75rem; }
.photo-card {
  border-radius:12px; overflow:hidden; border:1px solid var(--brd);
  background:var(--bg-muted); cursor:pointer;
  transition:transform .25s,border-color .25s,box-shadow .25s;
}
.photo-card:hover { transform:translateY(-4px); border-color:var(--brd-t); box-shadow:0 12px 40px rgba(45,212,191,.12); }
.photo-thumb {
  aspect-ratio:3/4; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--bg-muted),var(--bg-card));
  position:relative; overflow:hidden;
}
.photo-thumb::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(45,212,191,.12),rgba(56,189,248,.08),rgba(167,139,250,.10));
  opacity:.6;
}
.photo-thumb img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.photo-card:hover .photo-thumb img { transform:scale(1.04); }
.photo-thumb-ph { font-family:'Playfair Display',serif; font-style:italic; font-size:.82rem; color:var(--t3); position:relative; z-index:1; text-align:center; padding:1rem; }
.photo-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(12,15,14,.85) 0%,transparent 50%);
  opacity:0; transition:opacity .25s; display:flex; flex-direction:column;
  align-items:center; justify-content:flex-end; padding:1.25rem; gap:.5rem; z-index:2;
}
.photo-card:hover .photo-overlay { opacity:1; }
.photo-actions { display:flex; gap:.5rem; }
.photo-btn {
  display:inline-flex; align-items:center; gap:.35rem;
  font-size:.68rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  padding:6px 14px; border-radius:6px; border:1.5px solid; cursor:pointer;
  transition:all .2s; background:rgba(12,15,14,.6); font-family:inherit;
}
.photo-btn-view  { border-color:rgba(255,255,255,.6); color:rgba(255,255,255,.9); }
.photo-btn-view:hover { background:rgba(255,255,255,.15); }
.photo-btn-dl    { border-color:var(--teal); color:var(--teal); }
.photo-btn-dl:hover { background:var(--teal); color:#0c0f0e; }
.photo-info { padding:.9rem 1rem; }
.photo-name { font-size:.8rem; font-weight:700; color:var(--t1); margin-bottom:.2rem; }
.photo-spec { font-family:'JetBrains Mono',monospace; font-size:.65rem; color:var(--t3); letter-spacing:.05em; }
.photos-note { font-size:.78rem; color:var(--t3); line-height:1.75; text-align:center; max-width:500px; margin:0 auto; }
.photos-note a { color:var(--teal); transition:opacity .2s; }
.photos-note a:hover { opacity:.7; }

/* ══ ASSETS ══════════════════════════════════════════════════ */
#assets { background:var(--bg); }
.assets-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; }
.asset-card {
  background:var(--bg-card); border:1px solid var(--brd); border-radius:14px;
  padding:1.6rem; display:flex; flex-direction:column; gap:1rem;
  transition:border-color .25s,transform .2s;
}
.asset-card:hover { border-color:var(--brd-t); transform:translateY(-2px); }
.asset-header { display:flex; align-items:center; gap:.85rem; }
.asset-icon { width:42px; height:42px; border-radius:10px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:1.2rem; }
.ai-t { background:var(--dt); border:1px solid var(--brd-t); }
.ai-b { background:var(--db); border:1px solid var(--brd-b); }
.ai-p { background:var(--dp); border:1px solid var(--brd-p); }
.asset-title { font-weight:700; color:var(--t1); font-size:.88rem; }
.asset-desc { font-size:.78rem; color:var(--t2); line-height:1.7; }
.color-swatches { display:flex; gap:.5rem; flex-wrap:wrap; }
.swatch-wrap { display:flex; flex-direction:column; align-items:center; gap:.35rem; cursor:pointer; }
.swatch { width:38px; height:38px; border-radius:8px; border:2px solid rgba(255,255,255,.1); transition:transform .2s; box-shadow:0 2px 8px rgba(0,0,0,.2); }
.swatch:hover { transform:scale(1.1); }
.swatch-hex { font-family:'JetBrains Mono',monospace; font-size:.58rem; color:var(--t3); letter-spacing:.04em; }
.qr-preview-wrap { display:flex; gap:1rem; flex-wrap:wrap; }
.qr-preview { display:flex; flex-direction:column; align-items:center; gap:.4rem; }
.qr-box-sm { width:90px; height:90px; background:#fff; padding:5px; border-radius:8px; overflow:hidden; box-shadow:0 2px 10px rgba(0,0,0,.12); }
.qr-box-sm canvas, .qr-box-sm img { width:100% !important; height:100% !important; }
.qr-label { font-family:'JetBrains Mono',monospace; font-size:.62rem; color:var(--t3); letter-spacing:.06em; }
.asset-dl-row { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.25rem; }
.asset-dl {
  display:inline-flex; align-items:center; gap:.35rem;
  font-size:.68rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  padding:5px 13px; border-radius:6px; border:1.5px solid var(--brd-t);
  color:var(--teal); background:transparent; transition:all .2s; --sf:var(--teal);
  position:relative; overflow:hidden; z-index:0;
}
.asset-dl:hover { color:#0c0f0e; }
.sig-preview {
  padding:1rem 1.25rem; background:var(--bg-muted); border-radius:8px;
  border:1px solid var(--brd); font-family:'Playfair Display',serif;
  font-style:italic; font-size:1.3rem; color:var(--t2);
  letter-spacing:.02em; text-align:center;
}

/* ══ LINKS ════════════════════════════════════════════════════ */
#links { background:var(--bg-soft); border-top:1px solid var(--brd); }
.links-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; }
.lnk-card {
  background:var(--bg-card); border:1px solid var(--brd); border-radius:12px;
  padding:1.2rem; display:flex; flex-direction:column; gap:.55rem;
  transition:all .25s; position:relative; overflow:hidden;
}
.lnk-card::before {
  content:''; position:absolute; inset:0; opacity:0; transition:opacity .25s;
  background:linear-gradient(135deg,rgba(45,212,191,.06),rgba(56,189,248,.04));
}
.lnk-card:hover::before { opacity:1; }
.lnk-card:hover { border-color:var(--brd-t); transform:translateY(-3px); box-shadow:0 8px 28px rgba(45,212,191,.1); }
.lnk-logo { width:28px; height:28px; position:relative; z-index:1; flex-shrink:0; }
.lnk-logo svg, .lnk-logo img { width:28px; height:28px; display:block; }
.lnk-name  { font-size:.8rem; font-weight:700; color:var(--t1); position:relative; z-index:1; line-height:1.2; }
.lnk-handle { font-family:'JetBrains Mono',monospace; font-size:.65rem; color:var(--t3); letter-spacing:.03em; position:relative; z-index:1; }
.lnk-arrow {
  margin-top:auto; font-size:.68rem; color:var(--teal);
  display:flex; align-items:center; gap:.3rem; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; position:relative; z-index:1;
  opacity:0; transform:translateX(-4px); transition:all .2s;
}
.lnk-card:hover .lnk-arrow { opacity:1; transform:translateX(0); }

/* ══ SERVICES ════════════════════════════════════════════════ */
#services { background:var(--bg-soft); border-top:1px solid var(--brd); }
.svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-bottom:2rem; }
.svc-card {
  background:var(--bg-card); border:1px solid var(--brd); border-radius:14px;
  padding:1.6rem; display:flex; flex-direction:column; gap:.85rem;
  transition:border-color .25s,transform .2s,box-shadow .2s;
}
.svc-card:hover { transform:translateY(-4px); box-shadow:0 10px 35px rgba(45,212,191,.08); }
.svc-primary { border-color:var(--brd-t); }
.svc-primary:hover { border-color:var(--teal); box-shadow:0 10px 35px rgba(45,212,191,.12); }
/* Icon + title in a flex row */
.svc-header { display:flex; align-items:flex-start; gap:.65rem; }
.svc-icon-svg { width:20px; height:20px; flex-shrink:0; margin-top:.15rem; opacity:.75; }
.svc-title { font-family:'Playfair Display',serif; font-size:1rem; font-weight:700; color:var(--t1); line-height:1.25; }
.svc-desc { font-size:.82rem; color:var(--t2); line-height:1.75; flex:1; }
.svc-img { width:100%; border-radius:8px; overflow:hidden; border:1px solid var(--brd); background:var(--bg-muted); max-height:110px; }
.svc-img img { width:100%; height:130px; object-fit:cover; display:block; }
.svc-img.big {margin: -1.6rem -1.6rem 0.6rem; max-height: 130px; border-radius: 14px 14px 0 0 ; border: none; width: calc(100% + 3.2rem); }
.svc-tags { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.65rem; }
.svc-tag {
  font-size:.62rem; font-weight:500; letter-spacing:.02em;
  padding:2px 7px; border-radius:3px;
  border:1px solid rgba(45,212,191,.18); color:var(--t3); background:transparent;
}
.svc-tag-b { border-color:rgba(56,189,248,.18); }
.svc-tag-p { border-color:rgba(167,139,250,.18); }
.svc-cta {
  display:inline-flex; align-items:center;
  font-size:.75rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  color:var(--teal); margin-top:auto; transition:opacity .2s;
}
.svc-cta:hover { opacity:.7; }
.svc-cta-b { color:var(--blue); }
.svc-cta-p { color:var(--purple); }
.svc-note {
  font-size:.8rem; color:var(--t3); line-height:1.75;
  text-align:center; max-width:560px; margin:0 auto;
}
.svc-note a { color:var(--teal); transition:opacity .2s; }
.svc-note a:hover { opacity:.7; }

/* ══ TESTIMONIALS ════════════════════════════════════════════ */
#testimonials { background:var(--bg-soft); border-top:1px solid var(--brd); }
.tsm-stage {
  position:relative; overflow:hidden; border-radius:18px;
  border:1px solid var(--brd); background:var(--bg-card);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 24px 60px rgba(0,0,0,.12);
}
.tsm-track { display:flex; transition:transform .55s cubic-bezier(.65,0,.35,1); will-change:transform; }
.tsm-slide { min-width:100%; display:grid; grid-template-columns:240px 1fr; align-items:center; gap:0; }
.tsm-person {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:1.1rem; padding:2.75rem 2rem 2.75rem 2.5rem;
  border-right:1px solid var(--brd);
  background:linear-gradient(160deg,var(--bg-muted) 0%,var(--bg-card) 100%);
  position:relative; height:100%; min-height:240px;
}
.tsm-person::before {
  content:''; position:absolute; top:0; left:0;
  width:3px; height:100%;
  background:linear-gradient(to bottom,var(--teal),var(--blue));
  border-radius:18px 0 0 18px; opacity:.6;
}
.tsm-avatar-wrap { position:relative; width:90px; height:90px; }
.tsm-avatar-ring {
  position:absolute; inset:-4px; border-radius:50%;
  background:conic-gradient(var(--teal),var(--blue),var(--purple),var(--teal));
  opacity:.55; animation:ring-spin 8s linear infinite;
}
@keyframes ring-spin { to { transform:rotate(360deg); } }
.tsm-avatar {
  position:relative; width:90px; height:90px;
  border-radius:50%; overflow:hidden; background:var(--bg-muted);
  border:3px solid var(--bg-card); display:flex; align-items:center;
  justify-content:center; z-index:1;
}
.tsm-avatar img { width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
.tsm-avatar-initial {
  font-family:'Playfair Display',serif; font-size:1.8rem; font-weight:700;
  font-style:italic; color:var(--teal); line-height:1;
}
.tsm-name-block { text-align:center; }
.tsm-pname { font-family:'Playfair Display',serif; font-size:.95rem; font-weight:700; color:var(--t1); line-height:1.25; margin-bottom:.25rem; }
.tsm-prole { font-size:.72rem; color:var(--t3); line-height:1.55; text-align:center; }
.tsm-badge {
  font-family:'JetBrains Mono',monospace; font-size:.6rem; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase; padding:3px 9px;
  border-radius:4px; display:inline-block; margin-top:.35rem;
}
.tsm-badge-ac { color:var(--teal); background:var(--dt); border:1px solid var(--brd-t); }
.tsm-badge-sv { color:var(--blue); background:var(--db); border:1px solid var(--brd-b); }
.tsm-linkedin {
  display:inline-flex; align-items:center; gap:.3rem;
  font-size:.65rem; font-weight:600; color:var(--t3);
  transition:color .2s; margin-top:.2rem;
  font-family:'JetBrains Mono',monospace; letter-spacing:.04em; text-decoration:none;
}
.tsm-linkedin:hover { color:#0A66C2; }
.tsm-linkedin svg { flex-shrink:0; }
.tsm-body { padding:2.75rem 3rem 2.75rem 2.75rem; position:relative; }
.tsm-body::before {
  content:'\201C'; position:absolute; top:1.25rem; left:2.2rem;
  font-family:'Playfair Display',serif; font-size:6rem; font-weight:900;
  font-style:italic; color:var(--teal); opacity:.1; line-height:1;
  pointer-events:none; z-index:0;
}
.tsm-quote-text {
  font-family:'Playfair Display',serif;
  font-size:clamp(.9rem,1.4vw,1.05rem); font-style:italic;
  color:var(--t2); line-height:1.9; position:relative; z-index:1;
}
.tsm-quote-text .en, .tsm-quote-text .ko { display:block; }
.tsm-nav { display:flex; align-items:center; justify-content:center; gap:1.5rem; margin-top:1.75rem; }
.tsm-arrow {
  width:36px; height:36px; border-radius:50%; border:1.5px solid var(--brd2);
  background:transparent; color:var(--t2); display:flex; align-items:center;
  justify-content:center; cursor:pointer; transition:all .2s;
  flex-shrink:0; position:relative; overflow:hidden;
}
.tsm-arrow::before {
  content:''; position:absolute; inset:0; background:var(--teal);
  border-radius:50%; transform:scale(0);
  transition:transform .25s cubic-bezier(.4,0,.2,1);
}
.tsm-arrow:hover::before { transform:scale(1); }
.tsm-arrow:hover { border-color:var(--teal); color:#0c0f0e; }
.tsm-arrow svg { position:relative; z-index:1; }
.tsm-dots { display:flex; align-items:center; gap:.55rem; }
.tsm-dot {
  width:8px; height:8px; border-radius:50%; border:1.5px solid var(--brd2);
  background:transparent; cursor:pointer; transition:all .3s; padding:0; flex-shrink:0;
}
.tsm-dot.active { background:var(--teal); border-color:var(--teal); transform:scale(1.25); }
.tsm-dot:hover:not(.active) { border-color:var(--t2); background:var(--t2); transform:scale(1.1); }
.tsm-progress-wrap { width:80px; height:2px; background:var(--brd2); border-radius:2px; overflow:hidden; }
.tsm-progress-bar {
  height:100%; background:linear-gradient(90deg,var(--teal),var(--blue));
  border-radius:2px; transform-origin:left; transform:scaleX(0);
  transition:transform linear;
}

/* ══ MEDIA ════════════════════════════════════════════════════ */
#media { background:var(--bg); border-top:1px solid var(--brd); }
.media-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-bottom:2.5rem; }
a.media-card, .media-card {
  background:var(--bg-card); border:1px solid var(--brd); border-radius:14px;
  overflow:hidden; display:flex; flex-direction:column;
  transition:border-color .25s,transform .2s;
  color:inherit; text-decoration:none;
}
a.media-card:hover, .media-card:hover { border-color:var(--brd-b); transform:translateY(-4px); box-shadow:0 10px 35px rgba(56,189,248,.1); }
.media-thumb {
  aspect-ratio:16/9; background:linear-gradient(135deg,var(--bg-muted),var(--bg-card));
  position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center;
}
.media-thumb img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
a.media-card:hover .media-thumb img { transform:scale(1.04); }
.media-thumb-ph { font-family:'Playfair Display',serif; font-style:italic; font-size:.8rem; color:var(--t3); text-align:center; padding:.75rem; position:relative; z-index:1; }
.media-thumb::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(12,15,14,.35) 0%,transparent 60%); transition:background .3s; z-index:1; }
a.media-card:hover .media-thumb::after { background:linear-gradient(to top,rgba(12,15,14,.65) 0%,rgba(12,15,14,.35) 60%); }
/* Hover label */
.media-hover-label {
  position:absolute; bottom:.9rem; left:0; right:0; text-align:center; z-index:2;
  opacity:0; transform:translateY(5px); transition:opacity .28s,transform .28s;
  font-family:'JetBrains Mono',monospace; font-size:.65rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.9);
}
a.media-card:hover .media-hover-label { opacity:1; transform:translateY(0); }
.media-body { padding:1.3rem; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.media-type {
  font-family:'JetBrains Mono',monospace; font-size:.62rem; font-weight:500;
  letter-spacing:.12em; text-transform:uppercase; padding:3px 9px;
  border-radius:4px; display:inline-block; width:fit-content;
}
.mt-pod   { color:var(--blue);   background:var(--db); border:1px solid var(--brd-b); }
.mt-talk  { color:var(--purple); background:var(--dp); border:1px solid var(--brd-p); }
.mt-press { color:var(--teal);   background:var(--dt); border:1px solid var(--brd-t); }
.media-title { font-family:'Playfair Display',serif; font-size:.93rem; font-weight:600; color:var(--t1); line-height:1.35; }
.media-host  { font-size:.76rem; color:var(--t2); }
.media-date  { font-size:.68rem; color:var(--t3); font-family:'JetBrains Mono',monospace; margin-top:auto; padding-top:.6rem; border-top:1px solid var(--rule); }
.media-cta-row { display:flex; justify-content:center; margin-top:.5rem; }
.media-see-all {
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:10px 24px; border-radius:8px; border:1.5px solid var(--brd2);
  color:var(--t2); background:transparent; transition:all .2s; --sf:var(--teal);
  position:relative; overflow:hidden; z-index:0;
}
.media-see-all:hover { color:#0c0f0e; border-color:var(--teal); }

/* ══ CONTACT ══════════════════════════════════════════════════ */
#contact {
  background:linear-gradient(135deg,rgba(45,212,191,.05) 0%,rgba(56,189,248,.03) 50%,rgba(167,139,250,.05) 100%);
  border-top:1px solid var(--brd); padding:5.5rem 0; text-align:center;
}
.contact-h {
  font-family:'Playfair Display',serif;
  font-size:clamp(2rem,4vw,3.2rem); font-weight:700;
  color:var(--t1); margin-bottom:.7rem; letter-spacing:-.02em;
}
.contact-h em { font-style:italic; color:var(--teal); }
.contact-sub  { font-size:.88rem; color:var(--t2); margin-bottom:2.25rem; line-height:1.8; }
.contact-actions { display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }
.contact-email {
  font-family:'JetBrains Mono',monospace; font-size:.78rem;
  color:var(--t2); margin-top:1.5rem; letter-spacing:.06em;
}
.contact-email a { color:var(--teal); transition:opacity .2s; }
.contact-email a:hover { opacity:.7; }

/* ══ FOOTER ══════════════════════════════════════════════════ */
footer { background:var(--bg-soft); border-top:1px solid var(--brd); padding:2.75rem 0; }
.ms {
    position: relative;
    isolation: isolate;
}
.ms:before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-image: url('/assets/img/hangul-papers.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0.08;
    mix-blend-mode: multiply;
}
.foot-inner {
  max-width:1100px; margin:0 auto; padding:0 2.5rem;
  display:grid; grid-template-columns:1fr auto 1fr; gap:2rem; align-items:center;
}
.foot-name { font-family:'Playfair Display',serif; font-size:.93rem; font-weight:700; color:var(--t1); margin-bottom:.35rem; }
.foot-name span { color:var(--teal); }
.foot-info { font-size:.75rem; color:var(--t3); line-height:1.9; }
.foot-info a { color:var(--blue); transition:color .2s; }
.foot-info a:hover { color:var(--teal); }
.kakao-link { color:var(--teal) !important; transition:opacity .2s !important; }
.kakao-link:hover { opacity:.7; }
.foot-center { display:flex; flex-direction:column; align-items:center; gap:.5rem; }
.wy-logo { display:block; color:var(--t3); opacity:.35; transition:opacity .3s,color .3s; line-height:0; }
.wy-logo-img {max-height: 60px; margin: 0 auto; display: block;}
.wy-logo:hover { opacity:.75; color:var(--teal); }
.wy-logo svg { width:52px; height:52px; }
.wy-sub { font-family:'Playfair Display',serif; font-size:.62rem; font-style:italic; color:var(--t3); opacity:.5; letter-spacing:.08em; text-align:center; transition:opacity .3s; }
.foot-center:hover .wy-sub { opacity:.85; }
.foot-right { display:flex; flex-direction:column; align-items:flex-end; gap:.4rem; }
.fl-row { display:flex; gap:.9rem; }
.fl { font-size:.74rem; font-weight:600; transition:opacity .2s; }
.fl:hover { opacity:.65; }
.fl.t { color:var(--teal); }
.fl.b { color:var(--blue); }
.fl.p { color:var(--purple); }

/* ══ LIGHTBOX ════════════════════════════════════════════════ */
.modal-bg {
  display:none; position:fixed; inset:0; z-index:500;
  background:rgba(6,10,9,.93); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  align-items:center; justify-content:center; padding:1.5rem; cursor:zoom-out;
}
.modal-bg.open { display:flex; }
.modal-img-wrap { position:relative; max-width:800px; max-height:90vh; width:100%; cursor:default; }
.modal-img-wrap img { width:100%; height:100%; object-fit:contain; border-radius:10px; box-shadow:0 24px 80px rgba(0,0,0,.6); }
.modal-close-btn {
  position:absolute; top:-1rem; right:-1rem; width:36px; height:36px;
  border-radius:50%; border:1.5px solid var(--brd2); background:var(--bg-soft);
  color:var(--t2); font-size:1rem; display:flex; align-items:center;
  justify-content:center; cursor:pointer; transition:all .2s; z-index:10; --sf:var(--teal);
}
.modal-close-btn:hover { border-color:var(--teal); color:var(--teal); }
.modal-dl-btn {
  display:inline-flex; align-items:center; gap:.4rem; margin-top:1rem;
  font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:7px 18px; border-radius:6px; border:1.5px solid var(--teal);
  color:var(--teal); background:transparent; transition:all .2s; --sf:var(--teal);
  position:relative; overflow:hidden; z-index:0;
}
.modal-dl-btn:hover { color:#0c0f0e; }
.modal-caption { text-align:center; margin-top:.75rem; font-size:.78rem; color:var(--t3); font-family:'JetBrains Mono',monospace; letter-spacing:.06em; }

/* ══ TOOLTIP SYSTEM ══════════════════════════════════════════ */
[data-tip] { position: relative; }
[data-tip]::before {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: var(--t1, #e6efec);
  color: var(--bg, #0c0f0e);
  font-family: 'DM Sans', sans-serif;
  font-size: .72rem; font-weight: 600; font-style: normal; letter-spacing: .03em;
  white-space: nowrap;
  padding: 5px 10px; border-radius: 6px;
  pointer-events: none; opacity: 0;
  transition: opacity .18s ease, transform .18s ease;
  z-index: 999; box-shadow: 0 2px 10px rgba(0,0,0,.18);
}
[data-tip]::after {
  content: ''; position: absolute;
  bottom: calc(100% + 2px); left: 50%;
  transform: translateX(-50%) translateY(4px);
  border: 5px solid transparent;
  border-top-color: var(--t1, #e6efec);
  pointer-events: none; opacity: 0;
  transition: opacity .18s ease, transform .18s ease; z-index: 999;
}
[data-tip]:hover::before, [data-tip]:hover::after {
  opacity: 1; transform: translateX(-50%) translateY(0);
}
.tip-below::before {
  bottom: auto; top: calc(100% + 8px);
  transform: translateX(-50%) translateY(-4px);
}
.tip-below::after {
  bottom: auto; top: calc(100% + 2px);
  transform: translateX(-50%) translateY(-4px);
  border-top-color: transparent;
  border-bottom-color: var(--t1, #e6efec);
}
.tip-below:hover::before { transform: translateX(-50%) translateY(0); }
.tip-below:hover::after  { transform: translateX(-50%) translateY(0); }

/* ══ RISE ANIMATION ══════════════════════════════════════════ */
.rise { opacity:0; transform:translateY(22px); transition:opacity .6s ease,transform .6s ease; }
.rise.in { opacity:1; transform:translateY(0); }
.rise-d1 { transition-delay:.1s; }
.rise-d2 { transition-delay:.2s; }
.rise-d3 { transition-delay:.3s; }

/* ══ RESPONSIVE ══════════════════════════════════════════════ */
@media(max-width:960px) {
  .nav-links { display:none; }
  .hamburger { display:flex; }
  .bio-layout { grid-template-columns:1fr; }
  .stat-card { position:static; }
  .links-grid { grid-template-columns:repeat(3,1fr); }
  .media-grid { grid-template-columns:repeat(2,1fr); }
  .svc-grid   { grid-template-columns:repeat(2,1fr); }
  .assets-grid { grid-template-columns:1fr; }
  .foot-inner { grid-template-columns:1fr; text-align:center; }
  .foot-right { align-items:center; }
  .foot-center { padding:1rem 0; }
}
@media(max-width:760px) {
  .tsm-slide { grid-template-columns:1fr; }
  .tsm-person {
    flex-direction:row; justify-content:flex-start; gap:1.25rem;
    padding:1.5rem; border-right:none; border-bottom:1px solid var(--brd);
    min-height:unset; background:var(--bg-muted);
  }
  .tsm-person::before {
    width:100%; height:3px; top:0; left:0;
    background:linear-gradient(to right,var(--teal),var(--blue));
    border-radius:18px 18px 0 0;
  }
  .tsm-avatar-wrap { width:60px; height:60px; flex-shrink:0; }
  .tsm-avatar { width:60px; height:60px; }
  .tsm-avatar-initial { font-size:1.3rem; }
  .tsm-name-block { text-align:left; }
  .tsm-body { padding:1.75rem 1.5rem; }
  .tsm-body::before { top:.75rem; left:1.2rem; font-size:4rem; }
  .tsm-quote-text { font-size:.88rem; }
}
@media(max-width:640px) {
  nav { padding:0 1.25rem; }
  .wrap { padding:0 1.25rem; }
  .hero-content { padding:0 1.25rem 6rem; }
  .hero-portrait { opacity:.35; }
  .photos-grid { grid-template-columns:1fr 1fr; }
  .links-grid { grid-template-columns:repeat(2,1fr); }
  .svc-grid   { grid-template-columns:1fr; }
  .media-grid { grid-template-columns:1fr; }
  .hero-h1 { font-size:clamp(2.8rem,12vw,4rem); }
  .tsm-progress-wrap { display:none; }
}
