:root {
  color-scheme: dark;
  --bg: #0d161f;
  --panel: rgba(13, 27, 38, .96);
  --line: #405766;
  --line-soft: rgba(88, 112, 126, .38);
  --text: #e7ebed;
  --muted: #9aa6ad;
  --orange: #ff5b18;
  --cyan: #50b9e1;
  font-family: "Inter", Helvetica, Arial, sans-serif;
  scroll-behavior: smooth;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; min-width: 320px; min-height: 100%; }
body { overflow-x: hidden; background: var(--bg); color: var(--text); }
body::before { content: ""; position: fixed; inset: 0; z-index: -2; background: radial-gradient(circle at 65% 25%, rgba(48,85,106,.13), transparent 40%), linear-gradient(135deg,#0e1720 0%,#0c1822 58%,#0d1c27 100%); }
.blueprint { position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .27; background-image: linear-gradient(rgba(68,124,153,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(68,124,153,.12) 1px,transparent 1px),linear-gradient(rgba(68,124,153,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(68,124,153,.055) 1px,transparent 1px); background-size:100px 100px,100px 100px,25px 25px,25px 25px; mask-image:linear-gradient(to bottom,#000 0,transparent 42%); }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }

.topbar { width:calc(100% - clamp(24px,2vw,40px)); max-width:1920px; height:clamp(66px,7.25vh,84px); display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 auto; padding:0 6px; }
.brand { display:flex; align-items:center; min-width:0; text-transform:uppercase; }
.brand i { width:4px; height:40px; margin-right:24px; background:var(--orange); }
.brand strong { font-size:clamp(24px,2.15vw,43px); line-height:1; letter-spacing:.005em; white-space:nowrap; }
.contact-actions { display:flex; align-items:center; gap:12px; }
.contact-kicker { padding-left:12px; border-left:2px solid var(--orange); color:#c9d1d5; text-transform:uppercase; letter-spacing:.04em; font-size:13px; }
.contact-detail { min-width:0; height:38px; display:grid; align-content:center; gap:2px; padding:0 11px; border-left:1px solid var(--line-soft); }
.contact-detail small { color:#778b96; text-transform:uppercase; font-size:8px; font-weight:600; letter-spacing:.09em; }
.contact-detail strong { max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#dce3e6; font-size:11px; font-weight:500; }
.contact-detail.email strong { color:#73bedc; }
.contact-chip { height:38px; display:inline-flex; align-items:center; gap:8px; padding:0 12px; border:1px solid #405867; background:rgba(13,28,39,.88); text-transform:uppercase; font-size:10px; }
.contact-chip b { color:var(--orange); font:600 10px "Inter",sans-serif; }
.menu-button { display:none; width:42px; height:38px; border:1px solid var(--line); background:#102330; }
.menu-button span { display:block; width:18px; height:1px; margin:4px auto; background:#b7c3c9; }

.site-shell { width:calc(100% - clamp(24px,2vw,40px)); max-width:1920px; margin:0 auto; display:grid; grid-template-columns:24fr 22fr 26fr 28fr; grid-template-rows:clamp(460px,63.5vh,730px) clamp(220px,25vh,290px); grid-template-areas:"profile explorer detail detail" "profile skills career education"; gap:clamp(8px,.8vw,16px); }
.site-shell > * { min-width:0; }
.panel { min-width:0; min-height:0; overflow:hidden; border:1px solid var(--line); border-radius:2px; background:linear-gradient(145deg,rgba(16,30,42,.97),rgba(11,24,34,.96)); box-shadow:inset 0 0 70px rgba(54,96,118,.07); }
.panel-heading { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 25px; border-bottom:1px solid var(--line-soft); }
.panel-heading.compact { min-height:52px; padding:0 24px; }
.panel-heading h2 { margin:0; text-transform:uppercase; font-size:clamp(20px,1.25vw,26px); font-weight:600; letter-spacing:.01em; }
.folder-total { min-width:28px; padding:4px 7px; border:1px solid #456071; color:#a4b1b8; text-align:center; font:500 10px "Inter",sans-serif; }

.profile-card { grid-area:profile; padding:clamp(14px,1.56vh,18px) clamp(20px,1.65vw,34px); }
.portrait { width:100%; height:clamp(255px,30.5vh,352px); position:relative; overflow:hidden; display:grid; place-items:center; border:1px solid #3b6178; border-radius:3px; background:radial-gradient(circle at 50% 30%,rgba(112,140,153,.6),transparent 22%),linear-gradient(135deg,#344550,#101e28 74%); background-size:cover; background-position:center top; }
.portrait::before { content:""; width:65%; height:88%; position:absolute; bottom:-18%; border-radius:48% 48% 18% 18%; background:linear-gradient(#8297a1,#172a36 75%); opacity:.7; }
.portrait > span { z-index:1; width:72px; height:72px; display:grid; place-items:center; border-radius:50%; background:rgba(11,25,35,.82); color:#e9edef; font-size:27px; letter-spacing:-.06em; }
.portrait > span[data-length="3"] { font-size:21px; }
.portrait > span[data-length="4"] { font-size:17px; }
.portrait.has-photo::before, .portrait.has-photo > span { display:none; }
.profile-heading { padding-top:22px; }
.profile-heading .eyebrow { display:none; }
.profile-heading h1 { margin:0; overflow-wrap:anywhere; text-transform:uppercase; font-size:clamp(27px,2vw,36px); line-height:1.04; letter-spacing:-.02em; font-weight:700; }
.profile-role { margin:9px 0 0; color:var(--orange); text-transform:uppercase; font-size:clamp(14px,1.05vw,20px); font-weight:600; }
.specialization { margin:8px 0 0; color:#bac5cb; font-size:clamp(16px,1.1vw,22px); }
.specialization b { margin:0 8px; color:#7d919c; }
.about-note { margin-top:16px; padding-top:12px; border-top:1px solid var(--line-soft); }
.profile-label { margin:0 0 10px; color:#edf1f3; text-transform:uppercase; font-size:16px; font-weight:500; letter-spacing:.05em; }
.profile-label::before { content:""; display:inline-block; width:4px; height:18px; margin-right:14px; background:var(--orange); vertical-align:-3px; }
.about-note > p:last-of-type { max-width:390px; margin:0; color:#aab7be; font-size:clamp(13px,.86vw,17px); line-height:1.34; }
.profile-skill-list { display:grid; gap:7px; margin:20px 0 0; padding:0; list-style:none; }
.profile-skill-list li { position:relative; padding-left:27px; color:#9eacb4; font-size:clamp(12px,.78vw,16px); line-height:1.2; }
.profile-skill-list li::before { content:""; width:6px; height:6px; position:absolute; left:1px; top:.42em; border-radius:50%; background:var(--orange); }

.project-explorer { grid-area:explorer; display:flex; flex-direction:column; }
.project-search { height:43px; flex:0 0 auto; display:grid; grid-template-columns:44px minmax(0,1fr); align-items:center; margin:0 19px 12px; border:1px solid #3d596b; background:#0c1c28; }
.project-search span { color:#8799a3; text-align:center; font-size:22px; }
.project-search input { width:100%; height:100%; min-width:0; border:0; outline:0; background:transparent; color:#e1e8eb; font-size:14px; }
.project-search input::placeholder { color:#768995; }
.project-tree { flex:1 1 auto; min-height:0; overflow:auto; padding:0 19px 16px; scrollbar-width:thin; scrollbar-color:#3d6177 transparent; }
.tree-empty { margin:16px 4px; color:#7a909c; font-size:13px; }
.tree-group { margin:0 0 4px; }
.tree-heading { width:100%; min-height:38px; display:grid; grid-template-columns:24px minmax(0,1fr) auto 12px; align-items:center; gap:9px; padding:6px 10px; border:1px solid transparent; background:transparent; color:#e7ecef; text-align:left; cursor:pointer; }
.tree-heading:hover, .tree-group.expanded > .tree-heading { border-color:#426273; background:linear-gradient(90deg,#1a4055,#123044); }
.folder-icon { width:20px; height:14px; position:relative; border-radius:1px; background:var(--cyan); box-shadow:inset 0 -4px 0 rgba(12,73,101,.28); }
.folder-icon::before { content:""; position:absolute; left:1px; top:-4px; width:10px; height:5px; background:var(--cyan); }
.tree-heading strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-transform:uppercase; font-size:14px; font-weight:600; }
.tree-heading em { min-width:25px; padding:2px 5px; border:1px solid #486273; color:#9eabb2; text-align:center; font:400 9px "Inter",sans-serif; }
.chevron { color:#98aab3; transform:rotate(-90deg); }
.expanded .chevron { transform:rotate(0); }
.tree-children { display:none; position:relative; margin-left:15px; padding:2px 0 4px 20px; border-left:1px dotted #42647a; }
.expanded .tree-children { display:block; }
.project-row { width:100%; min-height:33px; position:relative; display:grid; grid-template-columns:18px minmax(0,1fr) auto; align-items:center; gap:8px; margin:1px 0; padding:5px 8px; border:1px solid transparent; background:transparent; color:#9eafb8; text-align:left; cursor:pointer; }
.project-row::before { content:""; position:absolute; left:-21px; top:50%; width:18px; border-top:1px dotted #42647a; }
.file-icon { width:12px; height:16px; position:relative; border:1px solid #8297a2; }
.file-icon::after { content:""; position:absolute; left:2px; right:2px; top:5px; height:1px; background:#8297a2; box-shadow:0 3px 0 #8297a2; }
.project-row > span:nth-child(2) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.project-row small { color:#788a93; font:400 9px "Inter",sans-serif; }
.project-row:hover { background:rgba(29,68,89,.4); color:white; }
.project-row.selected { border-color:rgba(255,91,24,.8); background:linear-gradient(90deg,rgba(255,91,24,.16),rgba(13,43,60,.9)); color:white; }
.project-row.selected .file-icon { border-color:var(--orange); }

.project-detail { grid-area:detail; display:flex; flex-direction:column; padding:17px clamp(16px,1.25vw,25px) clamp(16px,1.25vw,25px); }
.project-top { flex:0 0 auto; display:grid; grid-template-columns:minmax(0,1fr) clamp(235px,18vw,320px); gap:32px; align-items:start; }
.project-detail h3 { margin:4px 0 0; overflow-wrap:anywhere; font-size:clamp(22px,1.6vw,31px); line-height:1.08; font-weight:600; }
.project-actions { display:grid; gap:13px; }
.button { min-height:55px; display:flex; align-items:center; justify-content:center; gap:15px; padding:0 18px; border:1px solid transparent; background:transparent; color:white; text-transform:uppercase; letter-spacing:.02em; font-size:15px; font-weight:600; cursor:pointer; }
.button.primary { border-color:#ff6c31; background:linear-gradient(100deg,#ff641f,#f04b10); }
.button.secondary { border-color:#428caf; background:#0d2230; }
.button:disabled { cursor:default; opacity:.82; }
.project-meta { display:grid; grid-template-columns:.75fr .75fr .7fr 1.35fr 1fr; margin:25px 0 21px; }
.project-meta div { min-width:0; min-height:39px; padding:0 22px; border-right:1px solid var(--line-soft); }
.project-meta div:first-child { padding-left:0; }
.project-meta div:last-child { border:0; }
.project-meta dt { margin:0 0 6px; color:#93a2aa; font-size:13px; }
.project-meta dd { margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#eef2f4; font-size:15px; }
.project-media { flex:1 1 auto; min-height:0; position:relative; overflow:hidden; margin-top:16px; border:1px solid #456779; background:#0c1f2f; }
.project-image { width:100%; height:100%; display:block; background:#0c1f2f; }
.project-empty-preview { width:100%; height:100%; display:grid; place-content:center; justify-items:center; gap:10px; padding:28px; background-color:#0c1e2d; background-image:linear-gradient(rgba(63,104,126,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(63,104,126,.13) 1px,transparent 1px),radial-gradient(circle at 50% 45%,rgba(58,101,123,.18),transparent 42%); background-size:36px 36px,36px 36px,auto; color:#7d9099; text-align:center; }
.project-empty-preview span { padding:6px 9px; border:1px solid #456477; color:#6bb6d5; font:600 10px "Inter",sans-serif; letter-spacing:.12em; }
.project-empty-preview strong { max-width:520px; color:#afbec5; font-size:clamp(19px,1.45vw,28px); font-weight:500; }
.project-empty-preview small { color:#6f8490; font-size:13px; }
.project-format { position:absolute; right:18px; bottom:17px; z-index:2; padding:6px 9px; border:1px solid rgba(80,185,225,.55); background:rgba(12,29,42,.84); color:var(--cyan); text-transform:uppercase; font:600 10px "Inter",sans-serif; letter-spacing:.1em; }
.project-bottom { display:none; }

.skills { grid-area:skills; }
.skill-list { display:grid; gap:9px; padding:17px 24px 20px; }
.skill-item { min-width:0; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.9fr) 38px; gap:8px; align-items:center; }
.skill-item strong { overflow-wrap:anywhere; font-size:clamp(12px,.78vw,15px); font-weight:400; }
.skill-meter { height:6px; overflow:hidden; background:#2c4655; }
.skill-meter i { display:block; height:100%; background:linear-gradient(90deg,#36a6d7,#51b9e2); }
.skill-percent { color:#b7c0c5; text-align:right; font:400 12px "Inter",sans-serif; }

.career { grid-area:career; }
.timeline { padding:17px 24px 18px; }
.timeline-item { position:relative; padding:0 0 19px 29px; border-left:1px solid #31566c; }
.timeline-item:last-child { padding-bottom:0; }
.timeline-item > i { width:10px; height:10px; position:absolute; left:-5px; top:2px; border-radius:50%; background:var(--orange); }
.timeline-item p { display:flex; flex-wrap:wrap; align-items:baseline; gap:5px 18px; margin:0; }
.timeline-item strong { color:#eff3f5; font-size:14px; font-weight:500; }
.timeline-item b { font-size:14px; font-weight:500; }
.timeline-item span { display:block; margin-top:5px; color:#94a5ae; font-size:12px; line-height:1.25; }

.education { grid-area:education; }
.education-body { display:grid; grid-template-columns:22px minmax(0,1fr); gap:11px; padding:31px 24px; }
.education-body > i { width:14px; height:14px; position:relative; margin-top:1px; border-radius:50%; background:var(--orange); }
.education-body > i::after { content:""; position:absolute; left:6px; top:22px; width:1px; height:64px; background:#31556a; }
.education-title-row { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:5px 14px; }
.education-title-row strong { overflow-wrap:anywhere; text-transform:uppercase; font-size:clamp(16px,1.12vw,22px); font-weight:600; }
.education-title-row time { color:#c9d1d5; font-size:13px; }
.education-copy > span { display:block; margin-top:12px; color:#94a5ae; font-size:14px; line-height:1.25; }

/* Fixed desktop dashboard rows must not hide editable, unbounded content. */
.panel-scroll, .profile-card { scrollbar-width:thin; scrollbar-color:#65899d #102431; overflow-wrap:anywhere; }
.panel-scroll:focus-visible, .profile-card:focus-visible { outline:2px solid var(--cyan); outline-offset:-3px; }
@media (min-width:1101px) {
  .skills, .career, .education { display:flex; flex-direction:column; }
  .skills > .panel-heading, .career > .panel-heading, .education > .panel-heading { flex:0 0 auto; }
  .panel-scroll { flex:1 1 auto; min-height:0; min-width:0; overflow-y:auto; overflow-x:hidden; scrollbar-gutter:stable; align-content:start; }
  .profile-card { overflow-y:auto; overflow-x:hidden; scrollbar-gutter:stable; }
}

footer { display:none; }
.eyebrow { margin:0; color:var(--orange); text-transform:uppercase; font:600 9px "Inter",sans-serif; letter-spacing:.1em; }
.loading { position:fixed; inset:0; z-index:99; display:grid; place-content:center; justify-items:center; background:var(--bg); transition:opacity .25s,visibility .25s; }
.loading.hidden { opacity:0; visibility:hidden; }
.loading span { width:36px; height:36px; border:2px solid #304c5c; border-top-color:var(--orange); border-radius:50%; animation:spin .8s linear infinite; }
.loading p { color:var(--muted); font-size:13px; }
@keyframes spin { to { transform:rotate(360deg); } }

.viewer-open { overflow:hidden; }
.model-dialog { width:min(1500px,calc(100% - 28px)); height:min(900px,calc(100% - 28px)); max-width:none; max-height:none; padding:0; color:var(--text); border:1px solid #4a6270; background:#0b1822; box-shadow:0 34px 120px rgba(0,0,0,.62); }
.model-dialog::backdrop { background:rgba(1,5,8,.82); backdrop-filter:blur(7px); }
.model-dialog-shell { height:100%; display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.model-dialog-header { min-height:70px; display:flex; justify-content:space-between; align-items:center; gap:18px; padding:12px 15px 12px 19px; border-bottom:1px solid #3d5665; background:#102533; }
.model-dialog-header h2 { margin:3px 0 0; font-size:20px; }
.model-dialog-actions { display:flex; gap:8px; }
.model-dialog-actions button, .viewer-download { min-height:38px; display:grid; place-items:center; border-radius:2px; }
.model-dialog-actions button { width:38px; border:1px solid #3a596a; background:#102633; color:white; font-size:24px; cursor:pointer; }
.viewer-download { padding:0 13px; background:var(--orange); color:white; font-size:11px; font-weight:700; }
.model-stage { min-height:0; position:relative; overflow:hidden; background:radial-gradient(circle at 50% 40%,#29414d,#0b1822 72%); }
.aps-viewer, .embedded-viewer, .browser-model-viewer { width:100%; height:100%; border:0; display:block; }
.browser-model-viewer { --poster-color:transparent; }
.aps-viewer .adsk-viewing-viewer { inset:0 !important; }
.viewer-message { position:absolute; inset:0; display:grid; place-content:center; justify-items:center; gap:10px; text-align:center; }
.viewer-message span { width:34px; height:34px; border:2px solid #344f5e; border-top-color:var(--orange); border-radius:50%; animation:spin .8s linear infinite; }
.viewer-message strong { font-size:14px; }
.viewer-message p { max-width:420px; margin:0; color:#78909b; font-size:11px; }
.model-dialog-footer { min-height:40px; display:flex; align-items:center; gap:18px; padding:7px 18px; border-top:1px solid #3d5665; background:#0e202c; color:#788a93; font:400 9px "Inter",sans-serif; }
.model-dialog-footer a { margin-left:auto; color:var(--cyan); }

@media (max-width:1440px) and (min-width:1101px) {
  .brand i { height:32px; margin-right:14px; }
  .contact-chip span { display:none; }
  .contact-chip { width:40px; justify-content:center; padding:0; }
  .contact-chip b { min-width:0; }
  .contact-actions { gap:8px; }
  .contact-kicker { font-size:11px; }
  .contact-detail { padding:0 8px; }
  .contact-detail strong { max-width:118px; font-size:10px; }
  .panel-heading { min-height:55px; padding:0 16px; }
  .panel-heading.compact { min-height:50px; padding:0 16px; }
  .panel-heading h2 { font-size:18px; }
  .profile-card { padding:14px; }
  .portrait { height:clamp(240px,30.5vh,320px); }
  .profile-heading { padding-top:15px; }
  .about-note > p:last-of-type { font-size:12px; }
  .profile-skill-list { margin-top:13px; gap:5px; }
  .project-search { height:39px; margin:11px 12px 9px; }
  .project-tree { padding:0 12px 12px; }
  .tree-heading strong { font-size:11px; }
  .project-row > span:nth-child(2) { font-size:10px; }
  .project-detail { padding:14px; }
  .project-top { grid-template-columns:minmax(0,1fr) 205px; gap:14px; }
  .button { min-height:41px; font-size:11px; }
  .project-meta { margin:17px 0 14px; }
  .project-meta div { padding:0 12px; }
  .project-meta dt { font-size:9px; }
  .project-meta dd { font-size:11px; }
  .skill-list { gap:6px; padding:12px 16px; }
  .timeline { padding:13px 16px; }
  .timeline-item { padding:0 0 12px 20px; }
  .timeline-item strong, .timeline-item b { font-size:11px; }
  .timeline-item span { font-size:10px; }
  .education-body { padding:22px 16px; }
}

@media (max-width:1100px) {
  .topbar { height:auto; min-height:64px; flex-wrap:wrap; gap:12px; padding-top:12px; padding-bottom:12px; }
  .brand { max-width:100%; }
  .contact-actions { width:100%; justify-content:flex-start; flex-wrap:wrap; }
  .contact-detail strong { max-width:none; }
  .site-shell { grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:auto; grid-template-areas:"profile explorer" "profile detail" "skills detail" "career education"; }
  .project-detail { min-height:680px; }
  .project-media { min-height:390px; }
  .profile-card { min-height:900px; }
  .project-top { grid-template-columns:1fr; }
  .project-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .project-meta { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .project-meta div { padding:8px; }
  .project-meta div:nth-child(3) { border-right:0; }
}

@media (max-width:820px) {
  .topbar { width:100%; max-width:none; height:62px; padding:0 10px; }
  .brand i { width:3px; height:31px; margin-right:12px; }
  .brand strong { max-width:calc(100vw - 80px); overflow:hidden; text-overflow:ellipsis; font-size:21px; }
  .contact-actions { display:none; width:auto; position:absolute; z-index:20; top:60px; left:8px; right:8px; flex-wrap:wrap; padding:10px; border:1px solid var(--line); background:rgba(13,27,38,.98); box-shadow:0 22px 50px rgba(0,0,0,.42); }
  .contact-open .contact-actions { display:flex; }
  .contact-kicker { width:100%; }
  .contact-detail { flex:1 1 44%; border:1px solid var(--line-soft); }
  .contact-detail strong { max-width:none; }
  .contact-chip { flex:1 1 44%; justify-content:center; }
  .menu-button { display:block; }
  .site-shell { width:calc(100% - 12px); grid-template-columns:minmax(0,1fr); grid-template-rows:auto; grid-template-areas:"profile" "explorer" "detail" "skills" "career" "education"; gap:7px; }
  .profile-card { min-height:0; padding:11px; }
  .portrait { height:auto; min-height:270px; aspect-ratio:4/3; }
  .project-explorer { min-height:480px; }
  .project-detail { min-height:650px; padding:12px; scroll-margin-top:66px; }
  .project-top { grid-template-columns:1fr; gap:16px; }
  .project-actions { grid-template-columns:1fr; }
  .project-meta { grid-template-columns:repeat(2,minmax(0,1fr)); margin:16px 0 12px; }
  .project-meta div, .project-meta div:nth-child(3) { border-right:1px solid var(--line-soft); }
  .project-meta div:nth-child(even) { border-right:0; }
  .project-meta div:last-child { border-right:1px solid var(--line-soft); }
  .project-media { min-height:280px; aspect-ratio:4/3; }
  .skills, .career, .education { min-height:250px; }
  .panel-heading, .panel-heading.compact { min-height:58px; padding:0 17px; }
  .skill-list, .timeline { padding:17px; }
  .education-body { padding:25px 17px; }
  .model-dialog { width:100%; height:100%; border:0; }
  .model-dialog-header { min-height:64px; padding:9px 10px; }
  .model-dialog-header h2 { max-width:170px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; }
  .viewer-download { padding:0 9px; font-size:9px; }
  .model-dialog-footer span:nth-child(2), .model-dialog-footer a { display:none; }
}

@media (max-width:420px) {
  .profile-heading h1 { font-size:28px; }
  .project-meta { grid-template-columns:1fr; }
  .project-meta div, .project-meta div:nth-child(3), .project-meta div:nth-child(even), .project-meta div:last-child { border-right:0; border-bottom:1px solid var(--line-soft); }
  .project-meta div:last-child { border-bottom:0; }
  .skill-item { grid-template-columns:minmax(100px,1fr) minmax(70px,.8fr) 38px; gap:8px; }
}

@media (prefers-reduced-motion:reduce) { :root { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; } }

/* Experimental recruiter lab. It is enabled only with ?lab=1 and does not alter the fixed public view. */
.lab-toolbar { width:calc(100% - clamp(24px,2vw,40px)); max-width:1920px; min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 auto 10px; padding:6px 8px 6px 14px; border:1px solid #3f5968; background:linear-gradient(90deg,rgba(14,31,43,.98),rgba(12,25,35,.98)); box-shadow:0 12px 30px rgba(0,0,0,.12); }
.lab-toolbar-brand { display:flex; align-items:center; gap:10px; color:#a9b6bd; text-transform:uppercase; font-size:9px; letter-spacing:.1em; }
.lab-toolbar-brand b { padding:5px 7px; background:var(--orange); color:white; font-size:9px; letter-spacing:.12em; }
.lab-toolbar-actions, .lab-theme-picker { display:flex; align-items:center; gap:6px; }
.lab-toolbar button { min-height:32px; padding:0 11px; border:1px solid #3e5c6d; background:#102531; color:#c6d0d5; text-transform:uppercase; font-size:9px; font-weight:600; letter-spacing:.04em; cursor:pointer; }
.lab-toolbar button:hover, .lab-toolbar button.active { border-color:#52b9df; background:#17384a; color:white; }
.lab-theme-picker { margin-left:auto; }
.lab-theme-picker > span { margin-right:3px; color:#6f8490; text-transform:uppercase; font-size:8px; letter-spacing:.08em; }
.lab-theme-picker button.active { border-color:var(--orange); color:#ffc2a8; }

.lab-drawer { width:min(430px,calc(100vw - 18px)); position:fixed; z-index:81; top:9px; right:9px; bottom:9px; overflow:hidden; border:1px solid #527083; background:linear-gradient(160deg,#132b3a,#0b1822 76%); box-shadow:-30px 0 80px rgba(0,0,0,.46); transform:translateX(calc(100% + 28px)); transition:transform .26s ease; }
.lab-drawer-open .lab-drawer { transform:translateX(0); }
.lab-backdrop { position:fixed; z-index:80; inset:0; display:block; border:0; background:rgba(2,7,10,.65); opacity:0; pointer-events:none; transition:opacity .26s ease; }
.lab-drawer-open .lab-backdrop { opacity:1; pointer-events:auto; }
.lab-drawer-head { min-height:126px; display:flex; justify-content:space-between; gap:20px; padding:24px 24px 20px; border-bottom:1px solid #3e5868; background:linear-gradient(120deg,rgba(39,78,98,.42),transparent); }
.lab-drawer-head span { color:var(--orange); font-size:9px; font-weight:700; letter-spacing:.14em; }
.lab-drawer-head h2 { margin:10px 0 3px; text-transform:uppercase; font-size:25px; line-height:1; }
.lab-drawer-head p { margin:0; color:#92a5af; font-size:13px; }
.lab-drawer-head button { width:34px; height:34px; flex:0 0 auto; border:1px solid #466577; background:#102734; color:#e6ecef; font-size:24px; cursor:pointer; }
.lab-drawer-scroll { height:calc(100% - 126px); overflow:auto; padding:22px 24px 30px; }
.lab-drawer-scroll section { padding:0 0 22px; margin:0 0 22px; border-bottom:1px solid rgba(79,104,118,.34); }
.lab-drawer-scroll h3 { margin:0 0 13px; color:#e9edef; text-transform:uppercase; font-size:12px; letter-spacing:.05em; }
.lab-hero-summary > p { margin:0; color:#a7b5bc; font-size:13px; line-height:1.48; }
.lab-facts { display:grid; grid-template-columns:repeat(3,1fr); margin-top:20px; border:1px solid #405e70; }
.lab-facts div { padding:13px 10px; border-right:1px solid #405e70; }
.lab-facts div:last-child { border-right:0; }
.lab-facts strong, .lab-facts span { display:block; }
.lab-facts strong { color:#f1f4f5; font-size:22px; }
.lab-facts span { margin-top:3px; color:#738894; text-transform:uppercase; font-size:8px; letter-spacing:.07em; }
.lab-tags { display:flex; flex-wrap:wrap; gap:7px; }
.lab-tags span { padding:7px 8px; border:1px solid #3e5c6d; background:#102430; color:#aebbc1; font-size:10px; }
.lab-tags b { margin-left:5px; color:#56bce2; font-weight:600; }
.lab-featured-projects { display:grid; gap:7px; }
.lab-featured-projects button { width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 10px; padding:10px 11px; border:1px solid #3c5868; background:#0e202b; color:#dce4e8; text-align:left; cursor:pointer; }
.lab-featured-projects button:hover { border-color:#55bce2; background:#153242; }
.lab-featured-projects span { grid-column:1/-1; color:#64889a; text-transform:uppercase; font-size:7px; letter-spacing:.09em; }
.lab-featured-projects strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; font-weight:500; }
.lab-featured-projects small { color:#8fa2ac; font-size:9px; }
.lab-muted { margin:0; color:#8fa1aa; font-size:12px; line-height:1.45; }
.lab-contact-list { margin:0; }
.lab-contact-list div { display:grid; grid-template-columns:72px minmax(0,1fr); gap:10px; padding:7px 0; }
.lab-contact-list dt { color:#718792; text-transform:uppercase; font-size:8px; letter-spacing:.08em; }
.lab-contact-list dd { margin:0; color:#d8e0e4; font-size:12px; }
.lab-socials { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.lab-socials a, .lab-socials span { padding:6px 8px; border:1px solid #3d6073; color:#70c1df; font-size:9px; }
.lab-drawer-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.lab-drawer-actions button, .lab-drawer-actions a { min-height:39px; display:grid; place-items:center; padding:0 10px; border:1px solid #43718a; background:#102a39; color:#dce5e9; text-align:center; text-transform:uppercase; font-size:9px; font-weight:600; cursor:pointer; }
.lab-drawer-actions button:first-child { border-color:#ff6a2d; background:linear-gradient(100deg,#ff641f,#ed4a10); color:white; }

.lab-case-open .site-shell { grid-template-rows:clamp(620px,78vh,900px) clamp(220px,25vh,290px); }
.lab-case-open .project-detail { overflow:auto; }
.lab-case-open .project-media { min-height:330px; }
.lab-case-open .project-bottom { display:grid; grid-template-columns:1.25fr .75fr; gap:24px; padding-top:19px; }
.lab-case-open .project-summary { margin:0 0 13px; color:#aab8bf; font-size:13px; line-height:1.45; }
.lab-case-open .task-list { display:flex; flex-wrap:wrap; gap:7px; }
.lab-case-open .task-list span, .lab-case-open .software span { display:inline-flex; padding:6px 8px; border:1px solid #3d596a; color:#9dadb5; font-size:9px; }
.lab-case-open .compact-meta { margin:0 0 13px; }
.lab-case-open .compact-meta div { padding:0 12px; }
.lab-case-open .software small { display:block; margin-bottom:8px; color:#708590; text-transform:uppercase; font-size:8px; }
.lab-case-open .software div { display:flex; flex-wrap:wrap; gap:6px; }
.lab-case-open .demo-note { grid-column:1/-1; margin:0; color:#748893; font-size:10px; }

.lab-mode[data-lab-theme="steel"] { --line:#526b78; --line-soft:rgba(107,132,145,.34); }
.lab-mode[data-lab-theme="steel"]::before { background:radial-gradient(circle at 73% 20%,rgba(79,128,151,.2),transparent 38%),linear-gradient(135deg,#17242c 0%,#0d1b24 57%,#132833 100%); }
.lab-mode[data-lab-theme="steel"] .panel { border-radius:9px; background:linear-gradient(150deg,rgba(24,43,54,.97),rgba(13,29,39,.97)); box-shadow:inset 0 1px rgba(255,255,255,.025),0 10px 25px rgba(0,0,0,.13); }
.lab-mode[data-lab-theme="steel"] .site-shell { gap:14px; }
.lab-mode[data-lab-theme="steel"] .portrait, .lab-mode[data-lab-theme="steel"] .project-media { border-radius:6px; }
.lab-mode[data-lab-theme="steel"] .tree-heading:hover, .lab-mode[data-lab-theme="steel"] .tree-group.expanded > .tree-heading { border-radius:4px; background:linear-gradient(90deg,#25516a,#173749); }
.lab-mode[data-lab-theme="steel"] .button { border-radius:4px; }
.lab-mode[data-lab-theme="steel"] .project-row.selected { border-radius:4px; background:linear-gradient(90deg,rgba(255,91,24,.2),rgba(21,55,70,.92)); }

@media (max-width:820px) {
  .lab-toolbar { width:calc(100% - 12px); align-items:flex-start; flex-wrap:wrap; padding:8px; }
  .lab-toolbar-brand { min-height:32px; }
  .lab-toolbar-actions { width:100%; display:grid; grid-template-columns:repeat(3,1fr); order:3; }
  .lab-toolbar button { padding:0 6px; font-size:8px; }
  .lab-theme-picker { margin-left:auto; }
  .lab-case-open .site-shell { grid-template-rows:auto; }
  .lab-case-open .project-bottom { grid-template-columns:1fr; }
}

@media print {
  .lab-toolbar, .lab-backdrop, .lab-drawer-head button, .topbar, .project-explorer, .project-detail, .skills, .career, .education, .blueprint { display:none !important; }
  body, body::before { background:white !important; color:#111 !important; }
  .lab-drawer { position:static; width:100%; transform:none; border:0; box-shadow:none; background:white; color:#111; }
  .lab-drawer-scroll { height:auto; overflow:visible; }
  .lab-drawer-head, .lab-drawer-scroll section { border-color:#bbb; background:white; }
  .lab-drawer-head h2, .lab-drawer-scroll h3, .lab-facts strong, .lab-contact-list dd { color:#111; }
  .lab-drawer-head p, .lab-hero-summary > p, .lab-muted { color:#444; }
  .lab-drawer-actions { display:none; }
}

.resume-print { display:none; }
.resume-actions { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.resume-actions a, .resume-actions button { color:var(--text); background:transparent; border:1px solid var(--line-soft); padding:8px 10px; font:inherit; font-size:12px; cursor:pointer; text-decoration:none; border-radius:4px; }
@media print {
  @page { size:A4; margin:16mm; }
  body.resume-ready > :not(.resume-print) { display:none !important; }
  body.resume-ready::before, body.resume-ready::after { display:none !important; }
  body.resume-ready { display:block !important; margin:0 !important; padding:0 !important; height:auto !important; overflow:visible !important; }
  body.resume-ready > .resume-print { display:block !important; color:#182c3a; background:white; font:11pt/1.5 Arial,sans-serif; width:100%; height:auto; overflow:visible; }
  .resume-print * { box-sizing:border-box; overflow-wrap:anywhere; }
  .resume-print header { border-bottom:2px solid #657c8b; padding-bottom:12px; }
  .resume-print h1 { font-size:24pt; line-height:1.15; margin:8px 0; }
  .resume-print h2 { font-size:14pt; margin:18px 0 6px; border-bottom:1px solid #cad2d8; padding-bottom:4px; break-after:avoid; }
  .resume-print h3 { font-size:11pt; margin:10px 0 4px; break-after:avoid; }
  .resume-print p { margin:5px 0; orphans:3; widows:3; }
  .resume-print small { font-size:9pt; color:#536471; }
  .resume-print article { break-inside:avoid; }
  .resume-print .resume-eyebrow { font-size:9pt; letter-spacing:1px; }
}
