.ascii-loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;background:radial-gradient(circle at 50% 20%,rgba(56,189,248,.12),transparent 40%),#02040a;transition:opacity .55s ease,visibility .55s ease}.ascii-loader.is-visible{opacity:1;visibility:visible}.ascii-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.ascii-loader__scan{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,rgba(125,211,252,.035) 0px,rgba(125,211,252,.035) 1px,transparent 2px,transparent 4px);pointer-events:none;animation:scan-drift 8s linear infinite}.ascii-loader__frame{width:min(920px,calc(100% - 2rem));padding:1.25rem 1.35rem 1.5rem;border:1px solid rgba(125,211,252,.25);background:#050a14e0;box-shadow:0 0 40px #38bdf81f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ascii-loader__meta{display:flex;justify-content:space-between;margin-bottom:.85rem;color:var(--cyan);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}.ascii-loader__art{margin:0;overflow:hidden;color:#7dd3fc;font-size:clamp(4.5px,1.05vw,8.5px);line-height:1.02;letter-spacing:.01em;text-shadow:0 0 12px rgba(56,189,248,.35);white-space:pre;-webkit-user-select:none;user-select:none;min-height:18rem}.ascii-loader__bar{margin-top:1rem;height:4px;background:#7dd3fc1f;overflow:hidden}.ascii-loader__bar-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#7dd3fc 55%,#a78bfa);box-shadow:0 0 16px #7dd3fc8c;transition:width .08s linear}.ascii-loader__status{margin:.85rem 0 0;color:#9fb4d9;font-size:.78rem}@keyframes scan-drift{0%{transform:translateY(0)}to{transform:translateY(4px)}}@media(max-width:700px){.ascii-loader__art{font-size:4.5px}}.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding:.95rem 0;background:linear-gradient(180deg,rgba(5,7,15,.86),rgba(5,7,15,.35) 70%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.nav__logo{font-family:var(--font-display);font-weight:800;letter-spacing:.08em;color:var(--cyan)}.nav__links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.95rem;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.nav__links a:hover{color:var(--ink)}@media(max-width:700px){.nav__links{display:none}}.live-portrait{width:100%;aspect-ratio:4 / 5;perspective:900px;cursor:grab}.live-portrait__stage{width:100%;height:100%;display:grid;place-items:center;transform-style:preserve-3d}.live-portrait__card{position:relative;width:100%;height:100%;overflow:hidden;border:1px solid rgba(125,211,252,.28);background:#0a1222;box-shadow:0 25px 50px #00000073,0 0 40px #38bdf81f;transform-style:preserve-3d;transition:box-shadow .25s ease;will-change:transform}.live-portrait__card img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block;-webkit-user-select:none;user-select:none;pointer-events:none;transform:translateZ(24px) scale(1.04)}.live-portrait__glare{position:absolute;top:0;right:0;bottom:0;left:0;mix-blend-mode:screen;opacity:.75;pointer-events:none;transform:translateZ(40px)}.live-portrait__rim{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 0 1px #ffffff14;background:linear-gradient(135deg,rgba(125,211,252,.14),transparent 35%,transparent 65%,rgba(167,139,250,.12));transform:translateZ(36px)}.live-portrait:hover .live-portrait__card{box-shadow:0 35px 70px #00000080,0 0 50px #38bdf82e}@media(hover:none){.live-portrait{cursor:default}}.panel{border:1px solid var(--line);background:linear-gradient(180deg,#0e1628eb,#080c18e0);box-shadow:inset 0 1px #7dd3fc0f}.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:1.25rem}.about-card{overflow:hidden}.about-photo-wrap{position:relative;overflow:visible;padding:.85rem;background:radial-gradient(circle at 40% 30%,rgba(56,189,248,.18),transparent 55%),#070b16}.about-meta{padding:1.15rem 1.2rem 1.35rem}.about-meta h3{margin:0 0 .45rem;font-family:var(--font-display);font-size:1.35rem}.about-meta p{margin:.2rem 0;color:var(--muted);font-size:.86rem}.skill-blocks{display:grid;gap:.9rem}.skill-block{padding:1rem 1.1rem 1.15rem}.skill-block h4{margin:0 0 .7rem;font-family:var(--font-display);font-size:.95rem;text-transform:capitalize}.tag-row{display:flex;flex-wrap:wrap;gap:.45rem}.tag-row span{padding:.28rem .55rem;border:1px solid rgba(125,211,252,.2);background:#3b82f614;color:#c7d7f5;font-size:.72rem;letter-spacing:.03em}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.project-card{padding:1.2rem 1.25rem 1.35rem;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.project-card:hover{transform:translateY(-3px);border-color:#7dd3fc66;box-shadow:0 12px 40px #0f172a59,0 0 24px #38bdf814}.project-card__top{display:flex;justify-content:space-between;gap:.75rem;margin-bottom:.85rem;font-size:.74rem;color:var(--muted)}.project-card__tag{color:var(--cyan);letter-spacing:.08em;text-transform:uppercase}.project-card h3{margin:0 0 .55rem;font-family:var(--font-display);font-size:1.35rem}.project-card p{margin:0 0 1rem;color:var(--muted);font-size:.88rem;line-height:1.65}.muted{color:var(--muted)}.experience-list{display:grid;gap:.9rem}.experience-item{padding:1.15rem 1.25rem}.experience-item__head{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.7rem}.experience-item__head h3{margin:0;font-family:var(--font-display);font-size:1.1rem}.experience-item__head span{color:var(--cyan);font-size:.78rem;white-space:nowrap}.experience-item ul{margin:0;padding-left:1.1rem;color:var(--muted);font-size:.88rem;line-height:1.65}.achievements{margin-top:2.5rem}.achievements h3{margin:0 0 1rem;font-family:var(--font-display)}.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.achievement-item{padding:1rem 1.1rem}.achievement-item strong{display:block;margin-bottom:.35rem;font-family:var(--font-display)}.achievement-item p{margin:0;color:var(--muted);font-size:.84rem}.certs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.certs-grid .panel{padding:1.2rem 1.25rem}.certs-grid h3{margin:0 0 .85rem;font-family:var(--font-display)}.clean-list{margin:0;padding-left:1.05rem;color:var(--muted);font-size:.88rem;line-height:1.75}.contact{padding-bottom:0}.contact-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:4rem}.site-footer{border-top:1px solid var(--line);padding:1.4rem 0 2rem;color:var(--muted);font-size:.78rem}.site-footer .container{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem}.site-footer p{margin:0;font-style:italic}@media(max-width:900px){.about-grid,.project-grid,.achievement-grid,.certs-grid{grid-template-columns:1fr}}:root{--bg: #05070f;--bg-elevated: #0a1020;--ink: #e8eefc;--muted: #93a4c7;--line: rgba(125, 211, 252, .18);--cyan: #7dd3fc;--blue: #3b82f6;--violet: #a78bfa;--glow: rgba(56, 189, 248, .35);--font-display: "Syne", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font-mono);color:var(--ink);background:radial-gradient(1200px 600px at 15% -10%,rgba(59,130,246,.22),transparent 55%),radial-gradient(900px 500px at 90% 10%,rgba(167,139,250,.16),transparent 50%),linear-gradient(180deg,#05070f,#070b16 40%,#05070f);overflow-x:hidden}#root{min-height:100vh}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit}::selection{background:#7dd3fc59;color:#fff}.container{width:min(1120px,calc(100% - 2.5rem));margin-inline:auto}.section{padding:5.5rem 0;position:relative}.section-kicker{display:inline-flex;align-items:center;gap:.55rem;margin:0 0 .85rem;color:var(--cyan);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}.section-kicker:before{content:"";width:1.4rem;height:1px;background:var(--cyan)}.section-title{margin:0 0 .75rem;font-family:var(--font-display);font-size:clamp(2rem,4vw,3.1rem);font-weight:800;letter-spacing:-.03em;line-height:1.05}.section-lead{margin:0 0 2.4rem;max-width:38rem;color:var(--muted);font-size:.95rem;line-height:1.7}.boot-fallback{min-height:100vh;background:#05070f}
