/* Shared visual language for the portfolio and its project walkthrough. */
.hero .hero-content{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:56px;align-items:center}
.hero-copy{min-width:0}
.hero .hero-sub{margin-bottom:20px;min-height:34px}
.hero .hero-stats{gap:25px;margin-top:32px}
.hero .hero-stat-num{font-size:30px}
.hero .hero-stat-lbl{font-size:10px}
.hero-intro{font-size:15px;line-height:1.9;color:var(--text-2);max-width:500px}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}
.hero-actions .btn{padding:12px 18px;font-size:13px}
.hero .hero-badge{font-size:11px;padding:7px 12px;margin-bottom:24px}
.build-window{min-width:0;position:relative;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 28px 80px #0002;overflow:hidden}
.build-titlebar{display:flex;align-items:center;gap:6px;padding:15px 20px;border-bottom:1px solid var(--border);font:10px/1.5 'JetBrains Mono',monospace;color:var(--text-2)}
.window-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.7}
.window-dot:nth-child(2){opacity:.4}
.window-dot:nth-child(3){opacity:.2}
.build-titlebar>span:last-child{margin-left:auto}
.build-body{padding:26px}
.build-caption,.case-overline{font:10px/1.6 'JetBrains Mono',monospace;letter-spacing:1.5px;color:var(--accent)}
.build-body h2{font-size:23px;line-height:1.5;margin:14px 0 9px;letter-spacing:-.5px}
.build-body p{color:var(--text-2);font-size:13px;line-height:1.9}
.build-facts{display:grid;grid-template-columns:1fr 1fr;margin:22px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.build-facts>div{padding:17px 0}
.build-facts>div+div{padding-left:24px;border-left:1px solid var(--border)}
.build-facts strong{display:block;font:600 32px/1.3 'JetBrains Mono',monospace;color:var(--text)}
.build-facts span{font-size:11px;color:var(--text-2)}
.build-link{display:flex;justify-content:space-between;gap:18px;align-items:center;padding-top:17px;margin-top:20px;border-top:1px solid var(--border);color:var(--accent);font-size:13px;text-decoration:none}
.build-link span:last-child{font-size:20px}
.hero-links{font-size:11px;color:var(--text-2);margin-top:16px}
.hero-links a{color:var(--accent);text-decoration:none}
.hero-proof{display:flex;align-items:center;gap:8px;font:10px/1.7 'JetBrains Mono',monospace;color:var(--text-2);margin-top:15px}
.hero-proof::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--accent);flex-shrink:0}

.project-contributions{margin:5px 0 7px;padding-left:16px;line-height:1.55}
.project-contributions li{padding-left:1px;margin:3px 0}
.project-contributions strong{font-weight:650}
.resume-position{font-size:11px;line-height:1.7;color:#52638e;margin-top:5px}
.resume-print-dark .resume-position{color:#b5add4}
.project-contributions+br{display:none}

.case-page{--bg:#050508;--bg-2:#0a0a12;--surface:#0c0c14;--surface-2:#13131e;--border:#253040;--text:#e8eaf6;--text-2:#a4adba;--accent:#00d4ff;--accent-2:#8b5cf6;margin:0;background:var(--bg);color:var(--text);font:15px/1.8 Inter,'Noto Sans SC',system-ui,sans-serif}
.case-page *{box-sizing:border-box}
.case-page [hidden]{display:none!important}
.case-page a{color:var(--accent);text-underline-offset:4px}
.case-page a:focus-visible,.case-page button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.case-wrap{max-width:1100px;padding:0 26px;margin:auto}
.case-nav{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:24px 0;border-bottom:1px solid var(--border);font-size:12px}
.case-nav a{text-decoration:none}
.case-nav>div{display:flex;flex-wrap:wrap;gap:20px}
.case-hero{padding:78px 0 54px;max-width:850px}
.case-hero h1{font-size:clamp(30px,5.2vw,56px);line-height:1.2;letter-spacing:-1.5px;margin:20px 0 24px}
.case-lead{max-width:700px;color:var(--text-2);font-size:16px;line-height:1.9}
.case-meta{font:11px/1.8 'JetBrains Mono',monospace;color:var(--text-2);margin-top:20px}
.case-metrics{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--border);margin-bottom:62px}
.case-metrics>div{padding:25px 0}
.case-metrics strong{display:block;font:500 36px/1.4 'JetBrains Mono',monospace;color:var(--accent)}
.case-metrics span{font-size:12px;color:var(--text-2)}
.case-section{padding:0 0 64px;scroll-margin-top:25px}
.case-section h2{font-size:27px;letter-spacing:-.5px;margin:10px 0 16px}
.case-section>p{color:var(--text-2);max-width:740px}
.case-ownership{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}
.case-block{border:1px solid var(--border);padding:24px;border-radius:12px;background:var(--surface)}
.case-block small{color:var(--accent);font:10px 'JetBrains Mono',monospace}
.case-block h3{font-size:16px;margin:15px 0 12px}
.case-block p{font-size:13px;color:var(--text-2);margin:0}
.case-block a{font-size:11px;display:inline-block;margin-top:18px}
.case-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:25px 0 18px}
.case-tabs button{font:inherit;font-size:13px;border:1px solid var(--border);background:transparent;color:var(--text-2);padding:10px 16px;border-radius:7px;cursor:pointer}
.case-tabs button[aria-selected=true]{background:#00d4ff10;border-color:var(--accent);color:var(--accent)}
.evidence-panel{border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:30px;margin-bottom:18px}
.evidence-panel h3{font-size:20px;margin:12px 0}
.evidence-panel p{font-size:13px;color:var(--text-2)}
.evidence-label{font:10px/1.8 'JetBrains Mono',monospace;color:var(--accent);letter-spacing:1px}
.evidence-label.live{color:#5ee0b1}
.case-table-wrap{overflow-x:auto;margin:24px 0}
.case-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.case-table th{text-align:left;font-weight:400;color:var(--text-2);font-size:11px}
.case-table td,.case-table th{padding:12px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
.case-table td:first-child{font-family:'JetBrains Mono',monospace;color:var(--accent)}
.case-code{padding:20px;background:var(--bg);border:1px solid var(--border);border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;color:#b5c6d9;font:12px/1.9 'JetBrains Mono',monospace}
.case-note{font-size:12px!important;color:var(--text-2);border-left:2px solid var(--accent);padding-left:14px;margin:22px 0 0}
.case-commands{margin-top:24px}
.case-reproduce{display:flex;align-items:center;gap:14px}
.case-copy{padding:10px 15px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);color:var(--accent);font:inherit;font-size:12px;cursor:pointer}
.copy-status{font-size:12px;color:var(--text-2);min-height:24px}
.case-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:20px;font-size:12px}
.case-footer{border-top:1px solid var(--border);padding:30px 0;margin-top:15px;font-size:12px;color:var(--text-2)}
.case-footer a{margin-right:22px}

@media(max-width:900px){.hero .hero-content{grid-template-columns:minmax(0,1fr);gap:35px}
.hero{padding-top:125px!important}
.build-window{max-width:600px;width:100%}
.hero .hero-stats{gap:20px}
.case-ownership{grid-template-columns:1fr}
.case-hero{padding-top:50px}
}

@media(max-width:480px){.hero .hero-content{gap:28px}
.build-body{padding:22px}
.hero .hero-stat-num{font-size:26px}
.hero .hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.hero .hero-status{font-size:9px;letter-spacing:1px}
.case-wrap{padding:0 20px}
.case-nav{align-items:flex-start;font-size:11px}
.case-nav>div{gap:12px}
.case-hero{padding-top:38px}
.case-metrics{grid-template-columns:1fr 1fr;margin-bottom:40px}
.case-metrics>div{padding:16px 0}
.case-metrics strong{font-size:30px}
.evidence-panel{padding:20px}
.case-code{padding:15px;font-size:11px}
.case-table td,.case-table th{padding:10px 8px}
.case-section{padding-bottom:42px}
}

@media print{.resume-position{font-size:10px}
.project-contributions{margin:4px 0;line-height:1.45}
.project-contributions li{margin:2px 0}
.case-tabs,.case-copy,.case-nav{display:none!important}
.case-page{background:white;color:#1f2937}
.case-page [role=tabpanel][hidden]{display:block!important}
.case-page .case-section{break-inside:avoid}
}
