@font-face{font-family:GT Walsheim Pro;src:url(/assets/GT-Walsheim-Pro-Regular-BHNkusO9.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:GT Walsheim Pro;src:url(/assets/GT-Walsheim-Pro-Medium-qI00h7Ww.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:GT Walsheim Pro;src:url(/assets/GT-Walsheim-Pro-Bold-CrdT-L_A.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg-0: #05060a;--bg-1: #0c1018;--bg-2: #131b2a;--line: rgba(117, 163, 255, .16);--glass: rgba(10, 16, 28, .72);--text: #ecf1ff;--muted: #98a3bc;--signal: #77f6d1;--signal-2: #55a3ff;--warning: #f9b65e}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:GT Walsheim Pro,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(circle at 10% 15%,rgba(85,163,255,.26),transparent 28%),radial-gradient(circle at 85% 80%,rgba(119,246,209,.17),transparent 35%),linear-gradient(160deg,var(--bg-0),var(--bg-1) 36%,var(--bg-2))}.portal-shell{position:relative;min-height:100vh;padding:24px clamp(16px,3vw,40px) 40px}.bg-grid{position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(transparent 96%,#a0c1ff14 98%),linear-gradient(90deg,transparent 96%,rgba(160,193,255,.08) 98%);background-size:28px 28px;-webkit-mask:radial-gradient(circle at center,rgba(0,0,0,.9),transparent 92%);mask:radial-gradient(circle at center,rgba(0,0,0,.9),transparent 92%);z-index:0}.top-nav,.viewport{position:relative;z-index:1}.top-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:26px}.brand{display:inline-flex;gap:10px;align-items:center;font-weight:600;letter-spacing:.02em}.build-badge{border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:12px;color:#bdd0f7;background:#0e182ca6}.build-info-chip{position:fixed;right:14px;bottom:14px;z-index:2;border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-size:12px;color:#dbe6ff;background:#080d18db;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);max-width:min(92vw,560px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-nav nav{display:flex;gap:10px;flex-wrap:wrap}.nav-pill{color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:9px 14px;transition:.18s ease}.nav-pill:hover,.nav-pill.is-active{color:var(--text);border-color:#77f6d161;background:#5476be2e}.viewport{max-width:1120px;margin:0 auto}.stacked-layout{display:grid;gap:18px}.glass{background:var(--glass);border:1px solid var(--line);border-radius:20px;box-shadow:0 14px 56px #02081473;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:clamp(16px,2vw,26px)}.hero h1{margin:0;font-size:clamp(30px,5vw,62px);line-height:.95}.hero h2{margin:10px 0 18px;color:var(--signal);font-size:clamp(18px,2.8vw,28px)}.hero p{color:#d2dcf3;max-width:68ch;margin:0}.eyebrow{margin:0 0 10px;color:var(--warning);letter-spacing:.09em;text-transform:uppercase;font-size:12px}.tag-row{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap}.tag-row span{padding:8px 12px;border:1px solid var(--line);border-radius:999px;color:#ced7ef;font-size:13px}.grid-two{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.card h3{margin:0 0 10px}.card p{margin:0;color:var(--muted)}.radar ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}.radar li{display:flex;align-items:center;gap:8px;color:#d6e0f7}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.project header{display:flex;justify-content:space-between;gap:12px;align-items:center}.project header h3{margin:0}.project header span{border:1px solid rgba(119,246,209,.4);color:var(--signal);border-radius:999px;padding:4px 10px;font-size:12px}.project p{color:var(--muted);min-height:82px}.sub-copy{color:var(--muted);margin-top:8px}.repo-stats{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px}.repo-stats div{border:1px solid var(--line);border-radius:12px;padding:10px;background:#0f182a8f}.repo-stats dt{font-size:12px;color:var(--muted)}.repo-stats dd{margin:4px 0 0;font-size:24px;font-weight:700}.repo-profile-link{margin-top:14px;display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:8px 12px}.project footer{display:grid;gap:8px}.project footer small{color:#c8d2eb}.repo-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.repo-meta small{display:inline-flex;align-items:center;gap:6px}.project-actions{margin-top:14px;display:flex;gap:10px}.project-actions a,.project button,.pulse{appearance:none;border:1px solid rgba(119,246,209,.42);background:linear-gradient(130deg,#121e38e6,#274478e6);color:var(--text);padding:9px 13px;border-radius:12px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;text-decoration:none}.project button,.pulse{appearance:none;border:1px solid rgba(119,246,209,.42);background:linear-gradient(130deg,#121e38e6,#274478e6);color:var(--text);padding:9px 13px;border-radius:12px;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.pulse{margin-top:10px;animation:glow 2.4s ease-in-out infinite}.pulse:disabled{opacity:.7;cursor:wait}.status dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}.status dt{color:var(--muted);font-size:12px;margin-bottom:4px}.status dd{margin:0;font-weight:600;text-transform:capitalize}@keyframes glow{0%,to{box-shadow:0 0 #77f6d100}50%{box-shadow:0 0 22px #77f6d157}}.timeline{position:relative;padding-left:28px}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:0;width:1px;background:var(--line)}.timeline-item{position:relative;display:flex;gap:20px;padding-bottom:32px}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:-24px;top:6px;width:14px;height:14px;border-radius:50%;background:#0a101ce0;border:2px solid var(--signal);box-shadow:0 0 10px #77f6d159;flex-shrink:0;z-index:1}.timeline-body{flex:1;min-width:0}.timeline-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:10px}.timeline-role{margin:0 0 3px;font-size:1.05rem;color:var(--text)}.timeline-company{font-size:.9rem;color:var(--signal);font-weight:600}.timeline-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.timeline-period{font-size:.78rem;color:var(--warning);white-space:nowrap}.timeline-location{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--muted)}.timeline-points{list-style:none;margin:0;padding:0;display:grid;gap:6px}.timeline-points li{position:relative;padding-left:16px;font-size:.9rem;color:var(--muted);line-height:1.5}.timeline-points li:before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:#77f6d180}.interests-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.interest-card{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--text);transition:.2s ease;cursor:pointer}.interest-card:hover{border-color:#77f6d161;transform:translateY(-3px)}.interest-card .interest-icon{color:var(--signal)}.interest-card h3{margin:0}.interest-card p{margin:0;color:var(--muted);flex:1}.interest-arrow{display:flex;align-items:center;color:var(--muted);margin-top:4px}.iframe-fullpage{position:fixed;inset:0;z-index:20}.iframe-fullpage iframe{width:100%;height:100%;border:none;display:block}.iframe-back-btn{position:fixed;top:16px;left:16px;z-index:21;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid rgba(119,246,209,.38);background:#080d18e0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text);text-decoration:none;font-size:13px;font-weight:500;transition:.18s ease}.iframe-back-btn:hover{background:#5476be47;border-color:#77f6d199}@media(max-width:920px){.grid-two,.project-grid,.interests-grid{grid-template-columns:1fr}.repo-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.status dl{grid-template-columns:1fr}.build-info-chip{left:12px;right:12px;max-width:none}}
