:root{--bg-deep:#020617;--bg-mid:#060b1a;--surface:#0f172a8c;--surface-solid:#0a1020;--blue:#3b82f6;--blue-light:#60a5fa;--blue-pale:#93c5fd;--text:#e5e7eb;--text-soft:#c7d2fe;--text-mute:#8b96c9;--line:#60a5fa29;--glow:0 0 24px #3b82f659}*,:before,:after{box-sizing:border-box}.resume,.resume *{box-sizing:border-box;margin:0;padding:0}body:has(.resume){background:radial-gradient(900px 500px at 12% -8%, #3b82f629, transparent 60%), radial-gradient(700px 500px at 100% 10%, #60a5fa1a, transparent 55%), radial-gradient(circle at top, #0a1020, var(--bg-deep) 70%);color:var(--text);-webkit-font-smoothing:antialiased;padding:56px 24px;font-family:Inter,sans-serif;position:relative}body:has(.resume):before{content:"";filter:blur(90px);pointer-events:none;z-index:0;opacity:.35;border-radius:50%;position:fixed}body:has(.resume):after{content:"";filter:blur(90px);pointer-events:none;z-index:0;opacity:.35;border-radius:50%;position:fixed}body:has(.resume):before{background:radial-gradient(circle,#3b82f659,#0000 70%);width:420px;height:420px;animation:16s ease-in-out infinite drift-a;top:-120px;left:-120px}body:has(.resume):after{background:radial-gradient(circle,#60a5fa47,#0000 70%);width:380px;height:380px;animation:18s ease-in-out infinite drift-b;bottom:-100px;right:-100px}@keyframes drift-a{0%,to{transform:translate(0)}50%{transform:translate(40px,30px)}}@keyframes drift-b{0%,to{transform:translate(0)}50%{transform:translate(-30px,-40px)}}.resume{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1;background:linear-gradient(#0a1020eb,#020617fa);border:1px solid #3b82f638;border-radius:20px;width:900px;max-width:100%;margin:auto;animation:.7s cubic-bezier(.22,1,.36,1) both shell-in;position:relative;overflow:hidden;box-shadow:0 0 0 1px #3b82f62e,0 30px 70px -30px #000000b3,0 0 80px -20px #3b82f62e}@keyframes shell-in{0%{opacity:0;transform:translateY(18px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.back-nav{z-index:2;padding:24px 52px 0;position:relative}.back-btn{color:var(--blue-pale);letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#3b82f614;border:1px solid #60a5fa4d;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-family:JetBrains Mono,monospace;font-size:.75rem;text-decoration:none;transition:all .25s cubic-bezier(.22,1,.36,1);display:inline-flex;box-shadow:0 0 12px #3b82f61f}.back-btn svg{stroke:var(--blue-light);transition:transform .25s}.back-btn:hover{background:var(--blue);border-color:var(--blue-light);color:#fff;transform:translate(-3px);box-shadow:0 8px 24px -6px #3b82f699}.back-btn:hover svg{transform:translate(-2px)}@media (max-width:768px){.back-nav{padding:18px 28px 0}}@media print{.back-nav{display:none!important}}.resume-header{border-bottom:1px solid var(--line);background:linear-gradient(135deg,#3b82f614,#0000 60%);justify-content:space-between;align-items:center;gap:32px;padding:48px 52px;display:flex;position:relative;overflow:hidden}.resume-header:after{content:"";border:1px solid #60a5fa2e;border-radius:50%;width:240px;height:240px;position:absolute;top:-70px;right:-70px}.header-text{z-index:1;animation:.8s cubic-bezier(.22,1,.36,1) .15s both rise-in;position:relative}.eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--blue-light);opacity:.85;margin-bottom:14px;font-family:JetBrains Mono,monospace;font-size:.72rem}.header-text h1{letter-spacing:-.01em;color:#f2f6ff;text-shadow:0 0 26px #3b82f68c;font-family:Sora,sans-serif;font-size:2.9rem;font-weight:600;line-height:1.05;display:inline-block}.name-mark{width:100%;max-width:320px;height:20px;margin-top:4px;display:block}.name-mark svg{width:100%;height:100%;overflow:visible}.signature-path{fill:none;stroke:var(--blue-light);stroke-width:2px;stroke-linecap:round;stroke-dasharray:420;stroke-dashoffset:420px;filter:drop-shadow(0 0 6px #60a5fabf);animation:1.4s cubic-bezier(.65,0,.35,1) .7s forwards draw-signature}@keyframes draw-signature{to{stroke-dashoffset:0}}.header-text .title{color:var(--blue-pale);letter-spacing:.01em;margin:16px 0 20px;font-size:1.02rem;font-weight:500}.contact-row{flex-wrap:wrap;gap:28px;display:flex}.contact-row a{color:var(--text-soft);text-decoration:none;transition:color .25s}.contact-row p{color:var(--text-soft);font-size:.88rem}.contact-row .label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-mute);margin-bottom:3px;font-family:JetBrains Mono,monospace;font-size:.65rem;display:block}.header-image{z-index:1;flex-shrink:0;animation:.8s cubic-bezier(.22,1,.36,1) .3s both rise-in;position:relative}.image-ring{background:conic-gradient(from 210deg, var(--blue), transparent 30%, var(--blue-light) 60%, transparent 90%, var(--blue));border-radius:50%;justify-content:center;align-items:center;width:148px;height:148px;padding:5px;display:flex;box-shadow:0 0 40px #3b82f659}.image-ring img{object-fit:cover;border:3px solid var(--bg-deep);border-radius:50%;width:100%;height:100%;display:block}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.download-btn-container{margin-top:18px}.download-btn{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#3b82f61f;border:1px solid #60a5fa59;border-radius:999px;align-items:center;gap:8px;padding:8px 18px;font-family:Inter,sans-serif;font-size:.85rem;font-weight:500;text-decoration:none;transition:all .25s cubic-bezier(.22,1,.36,1);display:inline-flex;box-shadow:0 0 12px #3b82f626;color:var(--blue-pale)!important}.download-btn svg{stroke:var(--blue-light);transition:transform .25s,stroke .25s}.download-btn:hover{background:var(--blue);border-color:var(--blue-light);transform:translateY(-2px);box-shadow:0 8px 24px -6px #3b82f699;color:#fff!important}.download-btn:hover svg{stroke:#fff;transform:translateY(2px)}@media print{.download-btn-container{display:none!important}}.resume main{padding:44px 52px 56px}.section{opacity:0;margin-bottom:36px;animation:.7s cubic-bezier(.22,1,.36,1) forwards section-in}.section:first-of-type{animation-delay:.35s}.section:nth-of-type(2){animation-delay:.42s}.section:nth-of-type(3){animation-delay:.49s}.section:nth-of-type(4){animation-delay:.56s}.section:nth-of-type(5){animation-delay:.63s}@keyframes section-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.section h2{color:#eef3ff;border-bottom:1px solid var(--line);text-shadow:0 0 14px #3b82f659;align-items:baseline;gap:12px;margin-bottom:16px;padding-bottom:10px;font-family:Sora,sans-serif;font-size:1.22rem;font-weight:600;display:flex;position:relative}.sec-eyebrow{letter-spacing:.08em;color:var(--blue-light);background:#3b82f614;border:1px solid #60a5fa59;border-radius:4px;padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:.7rem;box-shadow:0 0 12px #3b82f633}.section ul{list-style:none}.section ul li{color:var(--text-soft);padding-left:22px;font-size:.96rem;line-height:1.85;transition:color .25s,transform .25s;position:relative}.section ul li:before{content:"";background:var(--blue-light);width:10px;height:1px;transition:width .25s;position:absolute;top:.9em;left:0;box-shadow:0 0 8px #60a5facc}.section ul li:hover{color:#fdfefe;transform:translate(3px)}.section ul li:hover:before{width:16px}.section ul li strong{color:var(--blue-pale);font-weight:600}.section ul li em{color:var(--blue-light);font-family:JetBrains Mono,monospace;font-size:.82rem;font-style:normal}.skills{flex-wrap:wrap;gap:10px;list-style:none;display:flex}.skills li{color:var(--blue-pale);cursor:default;background:#3b82f612;border:1px solid #3b82f659;border-radius:999px;padding:9px 16px;font-size:.86rem;font-weight:500;transition:background .25s,color .25s,border-color .25s,transform .2s,box-shadow .25s}.skills li:before{display:none}.skills li:hover{background:var(--blue);border-color:var(--blue-light);color:#f8fbff;transform:translateY(-2px);box-shadow:0 8px 24px -8px #3b82f699}.section ul li a{text-decoration:none}@media (max-width:768px){body:has(.resume){padding:24px 12px}.resume-header{text-align:center;flex-direction:column-reverse;gap:22px;padding:36px 28px}.name-mark{margin-inline:auto}.contact-row{justify-content:center}main{padding:32px 28px 40px}.header-text h1{font-size:2.3rem}}
