:root {
  --bg: #07111d;
  --bg-deep: #040b13;
  --surface: #0c1928;
  --surface-2: #102236;
  --surface-glass: rgba(14, 29, 46, .72);
  --text: #f4f7fb;
  --muted: #9aabbd;
  --muted-2: #6f8195;
  --line: rgba(255,255,255,.10);
  --line-strong: rgba(255,255,255,.18);
  --blue: #7aa7ff;
  --green: #58e3ad;
  --yellow: #f0c84b;
  --danger: #ff667a;
  --header-bg: rgba(7,17,29,.72);
  --shadow: 0 24px 80px rgba(0,0,0,.32);
  --radius: 28px;
  --max: 1240px;
  --ease: cubic-bezier(.2,.75,.25,1);
}

html[data-theme="light"] {
  --bg: #f4f7fb;
  --bg-deep: #eaf0f7;
  --surface: #ffffff;
  --surface-2: #edf3f9;
  --surface-glass: rgba(255,255,255,.78);
  --text: #0c1725;
  --muted: #536375;
  --muted-2: #7a8999;
  --line: rgba(12,23,37,.10);
  --line-strong: rgba(12,23,37,.18);
  --blue: #315fcb;
  --green: #0e9870;
  --yellow: #a47900;
  --header-bg: rgba(244,247,251,.78);
  --shadow: 0 24px 70px rgba(36,50,70,.10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body {
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(900px 520px at 14% -8%, color-mix(in srgb, var(--blue) 12%, transparent), transparent 64%),
    radial-gradient(860px 600px at 94% 12%, color-mix(in srgb, var(--green) 9%, transparent), transparent 65%),
    var(--bg);
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
  transition: background-color .35s ease, color .35s ease;
}
body::before {
  content: "";
  position: fixed; inset: 0; pointer-events: none; z-index: 9998; opacity: .16;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}
::selection { background: color-mix(in srgb, var(--blue) 38%, transparent); color: var(--text); }
a { color: inherit; text-decoration: none; }
img { display:block; max-width:100%; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }

.skip-link { position: fixed; top: 10px; left: 10px; transform: translateY(-180%); padding: 10px 14px; background: var(--text); color: var(--bg); z-index: 10000; border-radius: 10px; }
.skip-link:focus { transform: translateY(0); }

.scroll-progress { position: fixed; left: 0; top: 0; width: 100%; height: 2px; z-index: 10001; background: transparent; }
.scroll-progress span { display:block; width:100%; height:100%; transform:scaleX(0); transform-origin:left; background: linear-gradient(90deg,var(--blue),var(--green),var(--yellow)); }
.pointer-glow { position: fixed; width: 520px; height: 520px; border-radius:50%; pointer-events:none; z-index:0; opacity:.12; filter:blur(80px); transform:translate(-50%,-50%); background:radial-gradient(circle,var(--blue),transparent 65%); transition:opacity .3s; }

.preloader { position: fixed; inset:0; z-index:10000; display:grid; place-items:center; background:var(--bg-deep); transition: opacity .55s var(--ease), visibility .55s; }
.preloader.is-hidden { opacity:0; visibility:hidden; }
.preloader-inner { width:min(280px,70vw); text-align:center; }
.preloader-mark { display:block; font-size:clamp(2.4rem,8vw,5rem); font-weight:800; letter-spacing:-.08em; margin-bottom:16px; }
.preloader-line { height:2px; overflow:hidden; background:var(--line); }
.preloader-line span { display:block; height:100%; width:100%; transform:translateX(-100%); background:linear-gradient(90deg,var(--blue),var(--green)); animation:loadLine .9s var(--ease) forwards; }
@keyframes loadLine { to { transform:translateX(0); } }

.cursor-dot, .cursor-ring { position:fixed; left:0; top:0; pointer-events:none; z-index:9999; border-radius:50%; opacity:0; }
.cursor-dot { width:6px; height:6px; background:var(--text); }
.cursor-ring { width:36px; height:36px; border:1px solid color-mix(in srgb,var(--text) 55%,transparent); transition:width .2s,height .2s,background .2s,border-color .2s; }
.cursor-ring.is-hover { width:54px; height:54px; border-color:color-mix(in srgb,var(--blue) 65%,transparent); background:color-mix(in srgb,var(--blue) 8%,transparent); }

.site-header { position: fixed; left: 50%; top: 18px; transform: translateX(-50%); width:min(var(--max),calc(100% - 32px)); height:64px; z-index:100; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 18px; border:1px solid transparent; border-radius:20px; transition:background .3s,border .3s,box-shadow .3s,transform .3s; }
.site-header.scrolled { background:var(--header-bg); border-color:var(--line); backdrop-filter:blur(18px) saturate(130%); box-shadow:0 12px 40px rgba(0,0,0,.12); }
.wordmark { justify-self:start; display:inline-flex; align-items:baseline; font-weight:800; letter-spacing:-.04em; font-size:1rem; }
.wordmark-dot { color:var(--green); font-size:1.25rem; }
.desktop-nav { display:flex; align-items:center; gap:24px; }
.desktop-nav a { color:var(--muted); font-size:.89rem; font-weight:600; position:relative; transition:color .25s; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:1px; background:var(--text); transition:right .3s var(--ease); }
.desktop-nav a:hover,.desktop-nav a.active { color:var(--text); }
.desktop-nav a:hover::after,.desktop-nav a.active::after { right:0; }
.header-actions { justify-self:end; display:flex; align-items:center; gap:10px; }
.cv-link { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:.88rem; font-weight:600; }
.cv-link:hover { color:var(--text); }
.theme-button,.menu-button { width:40px; height:40px; border-radius:50%; border:1px solid var(--line); color:var(--text); background:var(--surface-glass); cursor:pointer; display:grid; place-items:center; }
.theme-icon { width:14px; height:14px; border-radius:50%; border:1px solid currentColor; position:relative; overflow:hidden; }
.theme-icon::after { content:""; position:absolute; inset:-2px -2px -2px 50%; background:currentColor; }
.menu-button { display:none; position:relative; }
.menu-button span { width:16px; height:1px; background:currentColor; position:absolute; transition:.3s var(--ease); }
.menu-button span:first-child { transform:translateY(-3px); }
.menu-button span:last-child { transform:translateY(3px); }
.menu-button.open span:first-child { transform:rotate(45deg); }
.menu-button.open span:last-child { transform:rotate(-45deg); }

.mobile-menu { position:fixed; inset:0; z-index:90; background:color-mix(in srgb,var(--bg) 96%,transparent); backdrop-filter:blur(20px); display:flex; flex-direction:column; justify-content:center; padding:96px 32px 40px; opacity:0; visibility:hidden; transform:translateY(-16px); transition:.4s var(--ease); }
.mobile-menu.open { opacity:1; visibility:visible; transform:translateY(0); }
.mobile-menu nav { display:grid; gap:12px; }
.mobile-menu nav a { font-size:clamp(2.3rem,10vw,4.6rem); line-height:1.1; letter-spacing:-.05em; font-weight:700; }
.mobile-menu-meta { margin-top:34px; padding-top:24px; border-top:1px solid var(--line); display:flex; gap:20px; flex-wrap:wrap; color:var(--muted); }

main, .site-footer { position:relative; z-index:1; }
.hero { min-height:100svh; position:relative; display:flex; align-items:center; padding:126px max(24px,calc((100vw - var(--max))/2)) 72px; overflow:hidden; }
.hero-grid { width:100%; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr); gap:clamp(36px,6vw,86px); align-items:center; }
.hero-copy { position:relative; z-index:3; }
.status-pill { width:max-content; display:flex; align-items:center; gap:10px; padding:8px 12px; border-radius:999px; border:1px solid var(--line); background:var(--surface-glass); color:var(--muted); font-size:.82rem; margin-bottom:24px; backdrop-filter:blur(12px); }
.status-dot { width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 0 6px color-mix(in srgb,var(--green) 12%,transparent); animation:pulse 2.4s ease-in-out infinite; }
@keyframes pulse { 50% { box-shadow:0 0 0 10px color-mix(in srgb,var(--green) 0%,transparent); } }
.kicker { margin:0 0 12px; text-transform:uppercase; letter-spacing:.19em; color:var(--muted); font-size:.76rem; font-weight:700; }
.hero-title { margin:0; font-size:clamp(4rem,8vw,8.2rem); line-height:.82; letter-spacing:-.075em; font-weight:800; max-width:8.5ch; }
.hero-line { display:block; overflow:hidden; padding-bottom:.08em; }
.hero-line > span { display:block; transform:translateY(110%); animation:titleIn 1s .3s var(--ease) forwards; }
.hero-line:nth-child(2)>span { animation-delay:.42s; }
.accent-line { color:transparent; -webkit-text-stroke:1px color-mix(in srgb,var(--text) 65%,transparent); }
@keyframes titleIn { to { transform:translateY(0); } }
.hero-lead { color:var(--muted); font-size:clamp(1.02rem,1.5vw,1.25rem); line-height:1.8; max-width:60ch; margin:28px 0 26px; }
.hero-lead strong { color:var(--text); font-weight:650; }
.hero-actions,.hero-footnotes { display:flex; gap:12px; flex-wrap:wrap; }
.hero-footnotes { margin-top:22px; gap:20px; }
.hero-footnotes a { color:var(--muted); font-size:.87rem; border-bottom:1px solid transparent; }
.hero-footnotes a:hover { color:var(--text); border-color:var(--line-strong); }
.button { min-height:50px; padding:0 18px; display:inline-flex; align-items:center; justify-content:center; gap:20px; border-radius:999px; font-size:.91rem; font-weight:700; transition:transform .3s var(--ease),background .3s,border-color .3s,color .3s; }
.button i,.text-link i,.email-link i { font-style:normal; transition:transform .3s var(--ease); }
.button:hover i,.text-link:hover i,.email-link:hover i { transform:translate(3px,-3px); }
.button-primary { background:var(--text); color:var(--bg); }
.button-primary:hover { background:var(--green); color:#03140d; }
.button-ghost,.button-outline { border:1px solid var(--line-strong); background:var(--surface-glass); backdrop-filter:blur(10px); }
.button-outline:hover,.button-ghost:hover { border-color:var(--text); }
.hero-visual { position:relative; min-height:650px; display:grid; place-items:center; }
.portrait-frame { width:min(100%,500px); aspect-ratio:.82; border-radius:42px; overflow:hidden; position:relative; box-shadow:var(--shadow); border:1px solid var(--line); transform-style:preserve-3d; will-change:transform; background:var(--surface); }
.portrait-frame img { width:100%; height:100%; object-fit:cover; object-position:center 38%; transform:scale(1.02); transition:transform .8s var(--ease); }
.portrait-frame:hover img { transform:scale(1.055); }
.portrait-overlay { position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(3,10,17,.75)); }
.portrait-caption { position:absolute; left:24px; right:24px; bottom:24px; display:grid; gap:3px; color:#fff; }
.portrait-caption span { font-size:.76rem; text-transform:uppercase; letter-spacing:.15em; opacity:.7; }
.portrait-caption strong { font-size:1rem; }
.floating-note { position:absolute; z-index:4; width:max-content; max-width:230px; border:1px solid var(--line); background:var(--surface-glass); backdrop-filter:blur(18px); box-shadow:var(--shadow); padding:15px 17px; border-radius:18px; display:grid; gap:2px; animation:float 5.5s ease-in-out infinite; }
.floating-note-top { left:-18px; top:18%; }
.floating-note-bottom { right:-8px; bottom:16%; animation-delay:-2.6s; }
.note-label { color:var(--muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; }
.floating-note strong { font-size:.86rem; }
@keyframes float { 50% { transform:translateY(-8px); } }
.hero-orb { position:absolute; border-radius:50%; filter:blur(70px); pointer-events:none; opacity:.18; }
.orb-one { width:360px; height:360px; right:4%; top:8%; background:var(--blue); }
.orb-two { width:300px; height:300px; left:4%; bottom:-6%; background:var(--green); }
.scroll-cue { position:absolute; left:max(24px,calc((100vw - var(--max))/2)); bottom:24px; display:flex; align-items:center; gap:12px; color:var(--muted); font-size:.75rem; text-transform:uppercase; letter-spacing:.14em; }
.scroll-cue i { width:42px; height:1px; background:var(--line-strong); position:relative; overflow:hidden; }
.scroll-cue i::after { content:""; position:absolute; inset:0; background:var(--text); transform:translateX(-100%); animation:scrollLine 2.2s infinite; }
@keyframes scrollLine { 50%,100% { transform:translateX(100%); } }

.signal-rail { border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden; padding:17px 0; }
.signal-track { width:max-content; display:flex; align-items:center; gap:28px; color:var(--muted); text-transform:uppercase; letter-spacing:.14em; font-size:.75rem; font-weight:650; animation:marquee 38s linear infinite; }
.signal-track i { width:5px; height:5px; border-radius:50%; background:var(--green); opacity:.7; }
@keyframes marquee { to { transform:translateX(-50%); } }

.section { width:min(var(--max),calc(100% - 48px)); margin:0 auto; padding:140px 0 40px; }
.section-index { display:flex; align-items:center; gap:12px; color:var(--muted-2); font-size:.76rem; text-transform:uppercase; letter-spacing:.16em; margin-bottom:34px; }
.section-index span:first-child { width:32px; color:var(--green); }
.section-title { margin:0; max-width:16ch; font-size:clamp(2.8rem,6vw,5.5rem); line-height:.95; letter-spacing:-.065em; font-weight:760; }
.section-note { margin:0; max-width:40ch; color:var(--muted); line-height:1.8; }

.about-layout { display:grid; grid-template-columns:1fr .78fr; gap:clamp(38px,7vw,100px); align-items:start; }
.prose { margin-top:40px; display:grid; gap:18px; max-width:68ch; }
.prose p { margin:0; color:var(--muted); font-size:1.05rem; line-height:1.9; }
.prose a { color:var(--text); border-bottom:1px solid var(--line-strong); }
.facts { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:38px; padding-top:26px; border-top:1px solid var(--line); }
.facts div { display:grid; gap:6px; }
.facts span { color:var(--muted-2); font-size:.75rem; text-transform:uppercase; letter-spacing:.12em; }
.facts strong { font-size:.9rem; font-weight:650; }
.editorial-photo { position:sticky; top:110px; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:var(--surface); box-shadow:var(--shadow); }
.editorial-photo img { width:100%; height:570px; object-fit:cover; object-position:center; transform:scale(1.03); }
.photo-index { padding:14px 16px; color:var(--muted); font-size:.75rem; letter-spacing:.08em; border-top:1px solid var(--line); }

.work-heading-row,.research-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:50px; }
.feature-project { position:relative; display:grid; grid-template-columns:.84fr 1.16fr; gap:28px; padding:26px; border:1px solid var(--line); border-radius:36px; background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 94%,transparent),color-mix(in srgb,var(--surface-2) 88%,transparent)); overflow:hidden; box-shadow:var(--shadow); }
.feature-project::before,.project-card::before,.research-topic::before,.publication::before { content:""; position:absolute; width:360px; height:360px; left:var(--spot-x,50%); top:var(--spot-y,50%); transform:translate(-50%,-50%); background:radial-gradient(circle,color-mix(in srgb,var(--blue) 15%,transparent),transparent 68%); opacity:0; transition:opacity .35s; pointer-events:none; }
.feature-project:hover::before,.project-card:hover::before,.research-topic:hover::before,.publication:hover::before { opacity:1; }
.feature-project-copy { padding:20px 10px 16px 8px; display:flex; flex-direction:column; align-items:flex-start; position:relative; z-index:2; }
.project-meta { display:flex; gap:13px; flex-wrap:wrap; color:var(--muted-2); text-transform:uppercase; letter-spacing:.12em; font-size:.68rem; }
.project-meta span:first-child { color:var(--green); }
.feature-project h3 { font-size:clamp(2.7rem,5vw,5rem); letter-spacing:-.06em; margin:42px 0 2px; line-height:.92; }
.project-lead { color:var(--text)!important; font-size:1.12rem!important; font-weight:650; }
.feature-project p,.project-card p { color:var(--muted); line-height:1.8; }
.project-tags { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 24px; }
.project-tags span,.skills-list span { padding:7px 10px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:.76rem; }
.project-links { margin-top:auto; }
.text-link { display:inline-flex; align-items:center; gap:10px; font-size:.9rem; font-weight:700; padding-bottom:3px; border-bottom:1px solid var(--line-strong); }
.feature-project-media { min-height:500px; display:flex; flex-direction:column; border-radius:24px; overflow:hidden; background:#071018; border:1px solid var(--line); position:relative; z-index:2; transform:translateZ(0); }
.browser-chrome { height:44px; flex:0 0 44px; display:flex; align-items:center; gap:7px; padding:0 14px; background:#101925; color:#728094; font-size:.71rem; }
.browser-chrome i { width:8px; height:8px; border-radius:50%; background:#334155; }
.browser-chrome i:first-child { background:#ff6b6b; }.browser-chrome i:nth-child(2){background:#f0c84b}.browser-chrome i:nth-child(3){background:#58e3ad}.browser-chrome span{margin-left:8px}
.beshmar-visual { flex:1; position:relative; display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle at 60% 35%,#172a45,#071018 65%); }
.beshmar-visual img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.feature-project-media:hover img { transform:scale(1.025); }
.fallback-copy { position:absolute; inset:0; display:none; place-content:center; padding:40px; background:radial-gradient(circle at 70% 30%,rgba(122,167,255,.22),transparent 42%),linear-gradient(135deg,#0d1724,#0b281e); }
.image-fallback .fallback-copy { display:grid; }
.fallback-copy span { color:var(--green); text-transform:uppercase; letter-spacing:.14em; font-size:.75rem; }
.fallback-copy strong { margin-top:8px; font-size:clamp(2rem,5vw,4rem); line-height:1; letter-spacing:-.05em; }
.project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:20px; }
.project-card { position:relative; border:1px solid var(--line); border-radius:30px; overflow:hidden; background:var(--surface-glass); box-shadow:var(--shadow); transform-style:preserve-3d; transition:border-color .3s; }
.project-card:hover { border-color:var(--line-strong); }
.project-image { display:block; aspect-ratio:1.9; overflow:hidden; background:var(--surface-2); position:relative; z-index:2; }
.project-image img { width:100%; height:100%; object-fit:cover; transition:transform .75s var(--ease),filter .4s; }
.project-card:hover .project-image img { transform:scale(1.04); }
.project-card-body { padding:22px; position:relative; z-index:2; }
.project-card h3 { margin:24px 0 8px; font-size:1.45rem; line-height:1.15; letter-spacing:-.025em; }
.project-card p { min-height:58px; }
.all-work { margin-top:28px; display:flex; justify-content:flex-end; }

.research-intro .section-title { max-width:13ch; }
.research-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.research-topic { position:relative; padding:28px; min-height:300px; border:1px solid var(--line); border-radius:28px; background:var(--surface-glass); overflow:hidden; }
.research-topic>span { color:var(--green); font-size:.76rem; letter-spacing:.12em; }
.research-topic h3 { margin:70px 0 14px; font-size:1.45rem; line-height:1.2; letter-spacing:-.03em; }
.research-topic p { color:var(--muted); line-height:1.8; margin:0; }
.publication { position:relative; margin-top:18px; display:grid; grid-template-columns:170px 1fr; gap:34px; padding:36px; border:1px solid var(--line); border-radius:30px; background:var(--surface); overflow:hidden; }
.publication-year { font-size:4rem; font-weight:750; letter-spacing:-.07em; color:transparent; -webkit-text-stroke:1px var(--line-strong); line-height:1; }
.publication-body { position:relative; z-index:2; }
.publication-body h3 { max-width:32ch; margin:12px 0; font-size:clamp(1.6rem,3vw,2.5rem); line-height:1.18; letter-spacing:-.04em; }
.authors { color:var(--muted); }
.authors strong { color:var(--text); }

.photo-break { width:min(1500px,calc(100% - 24px)); margin:120px auto 0; height:min(78vh,820px); border-radius:36px; overflow:hidden; position:relative; border:1px solid var(--line); }
.photo-break img { width:100%; height:100%; object-fit:cover; object-position:center 26%; transform:none; }
.photo-break-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(3,9,15,.03) 25%,rgba(3,9,15,.72)); }
.photo-break-copy { position:absolute; left:clamp(24px,6vw,80px); bottom:clamp(24px,6vw,64px); display:grid; gap:6px; color:#fff; }
.photo-break-copy span { text-transform:uppercase; letter-spacing:.17em; font-size:.75rem; opacity:.7; }
.photo-break-copy strong { font-size:clamp(2.2rem,5vw,5rem); letter-spacing:-.06em; line-height:.98; max-width:10ch; }

.journey-layout { display:grid; grid-template-columns:1.08fr .72fr; gap:clamp(40px,7vw,100px); align-items:start; }
.timeline { margin-top:48px; border-top:1px solid var(--line); }
.timeline-row { display:grid; grid-template-columns:130px 1fr; gap:24px; padding:24px 0; border-bottom:1px solid var(--line); }
.timeline-date { color:var(--green); font-size:.77rem; text-transform:uppercase; letter-spacing:.12em; padding-top:4px; }
.timeline-body h3 { margin:0 0 5px; font-size:1.2rem; letter-spacing:-.02em; }
.timeline-body p { margin:0; color:var(--muted); }
.journey-photo { position:sticky; top:110px; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:var(--surface); }
.journey-photo img { width:100%; height:620px; object-fit:cover; object-position:center 30%; }
.journey-photo-label { position:absolute; left:22px; right:22px; bottom:20px; display:flex; justify-content:space-between; gap:10px; color:#fff; text-transform:uppercase; letter-spacing:.1em; font-size:.72rem; }
.skills-block { margin-top:66px; padding-top:24px; border-top:1px solid var(--line); display:grid; grid-template-columns:180px 1fr; gap:28px; }
.skills-label { color:var(--muted-2); text-transform:uppercase; letter-spacing:.13em; font-size:.74rem; padding-top:7px; }
.skills-list { display:flex; flex-wrap:wrap; gap:8px; }
.skills-list span { color:var(--text); }

.contact { padding-bottom:120px; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:end; }
.contact-title { margin:0; font-size:clamp(5rem,12vw,10rem); line-height:.8; letter-spacing:-.08em; font-weight:800; }
.contact-panel { border-top:1px solid var(--line); padding-top:24px; }
.contact-panel p { color:var(--muted); line-height:1.8; max-width:48ch; }
.email-link { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-top:34px; padding:18px 0; border-bottom:1px solid var(--line-strong); font-size:clamp(1.1rem,2.2vw,1.65rem); font-weight:650; letter-spacing:-.025em; }
.contact-meta { display:flex; flex-wrap:wrap; gap:18px; margin-top:24px; color:var(--muted); font-size:.87rem; }

.site-footer { width:min(var(--max),calc(100% - 48px)); margin:0 auto; padding:30px 0 46px; border-top:1px solid var(--line); display:grid; grid-template-columns:auto 1fr auto; gap:30px; align-items:center; color:var(--muted); }
.footer-mark { color:var(--text); font-weight:800; font-size:1.4rem; letter-spacing:-.06em; }.footer-mark span{color:var(--green)}
.footer-copy { display:flex; gap:18px; flex-wrap:wrap; font-size:.78rem; }
.back-top { font-size:.82rem; }

[data-reveal] { opacity:0; will-change:transform,opacity,clip-path; }
.reveal-up { transform:translateY(26px); }
.reveal-scale { transform:scale(.965) translateY(18px); }
.reveal-clip { clip-path:inset(12% 0 12% 0 round var(--radius)); transform:scale(.985); }
[data-reveal].is-visible { opacity:1; transform:none; clip-path:inset(0 0 0 0 round var(--radius)); transition:opacity .75s var(--ease),transform .75s var(--ease),clip-path 1s var(--ease); }

@media (max-width:1100px) {
  .hero-grid { grid-template-columns:1fr .8fr; }
  .hero-visual { min-height:560px; }
  .portrait-frame { max-width:430px; }
  .facts { grid-template-columns:1fr; }
  .feature-project { grid-template-columns:1fr; }
  .feature-project-media { min-height:440px; }
  .research-cards { grid-template-columns:1fr; }
  .research-topic { min-height:220px; }
  .research-topic h3 { margin-top:36px; }
}

@media (max-width:860px) {
  .desktop-nav,.cv-link { display:none; }
  .menu-button { display:grid; }
  .site-header { grid-template-columns:1fr auto; }
  .header-actions { grid-column:2; }
  .hero { min-height:auto; padding-top:128px; }
  .hero-grid,.about-layout,.journey-layout,.contact-grid { grid-template-columns:1fr; }
  .hero-title { max-width:9ch; }
  .hero-visual { min-height:auto; margin-top:28px; }
  .portrait-frame { width:100%; max-width:none; height:min(72svh,650px); aspect-ratio:auto; }
  .portrait-frame img { object-position:center 35%; }
  .floating-note-top { left:12px; top:12%; }.floating-note-bottom{right:12px;bottom:12%}
  .scroll-cue { display:none; }
  .about-layout { gap:40px; }
  .editorial-photo,.journey-photo { position:relative; top:auto; }
  .editorial-photo img { height:auto; aspect-ratio:1.35; }
  .journey-photo img { height:auto; max-height:720px; }
  .work-heading-row,.research-intro { align-items:flex-start; flex-direction:column; }
  .project-grid { grid-template-columns:1fr; }
  .publication { grid-template-columns:1fr; }
  .publication-year { font-size:3rem; }
  .photo-break { height:68svh; margin-top:96px; }
  .skills-block { grid-template-columns:1fr; }
  .contact-grid { gap:42px; }
}

@media (max-width:600px) {
  .pointer-glow,.cursor-dot,.cursor-ring { display:none; }
  .site-header { width:calc(100% - 20px); top:10px; height:58px; padding:0 12px; border-radius:17px; }
  .wordmark-name { font-size:.94rem; }
  .hero { padding:104px 18px 58px; }
  .hero-title { font-size:clamp(3.6rem,19vw,5.3rem); }
  .hero-lead { font-size:1rem; margin-top:22px; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .button { width:100%; justify-content:space-between; }
  .hero-footnotes { gap:14px; }
  .portrait-frame { height:530px; border-radius:28px; }
  .floating-note { display:none; }
  .section { width:calc(100% - 36px); padding-top:104px; }
  .section-title { font-size:clamp(2.6rem,13vw,4rem); }
  .feature-project { padding:14px; border-radius:26px; }
  .feature-project-copy { padding:18px 8px; }
  .feature-project h3 { margin-top:30px; }
  .feature-project-media { min-height:310px; border-radius:19px; }
  .project-card { border-radius:24px; }
  .research-topic { padding:22px; border-radius:24px; }
  .publication { padding:24px; }
  .photo-break { width:calc(100% - 20px); height:62svh; border-radius:26px; }
  .timeline-row { grid-template-columns:1fr; gap:7px; }
  .skills-block { margin-top:48px; }
  .contact-title { font-size:clamp(4.4rem,24vw,7rem); }
  .email-link { font-size:1rem; word-break:break-word; }
  .site-footer { width:calc(100% - 36px); grid-template-columns:1fr; gap:12px; }
}

@media (hover:none),(pointer:coarse) {
  .cursor-dot,.cursor-ring { display:none; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; }
  [data-reveal] { opacity:1!important; transform:none!important; clip-path:none!important; }
  .signal-track { animation:none; }
  .pointer-glow,.cursor-dot,.cursor-ring,.preloader { display:none!important; }
}
