:root{--bg-deep:#07070f;--bg-elevated:#0f111c;--accent:#6ee7ff;--accent-dim:#6ee7ff59;--text:#e8eaf0;--text-muted:#989fb0;--border:#ffffff14;--danger:#f87171;color:var(--text);background-color:var(--bg-deep);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:DM Sans,system-ui,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}#root{min-height:100vh}a{color:inherit}button,input,textarea{font:inherit}.app-shell{--cursor-glow-x:50%;--cursor-glow-y:38%;flex-direction:column;min-height:100vh;display:flex;position:relative}.app-nav{z-index:50;background:radial-gradient(900px circle at var(--cursor-glow-x,50%) var(--cursor-glow-y,38%), #6ee7ff1c 0%, #a78bfa0d 24%, transparent 48%), #07070fd9;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.5rem;display:flex;position:sticky;top:0}.app-brand{align-items:center;gap:.5rem;display:inline-flex}.app-brand-logo{aspect-ratio:1;object-fit:contain;width:clamp(30px,7vw,36px);height:auto;display:block}.app-nav-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.app-nav-tabs{border:1px solid var(--border);background:#ffffff0a;border-radius:999px;gap:.35rem;padding:.2rem;display:flex}.nav-tab{appearance:none;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.55rem 1.1rem;font-size:.88rem;font-weight:600;transition:color .2s,background .2s}.nav-tab:hover{color:var(--text)}.nav-tab.active{color:var(--bg-deep);background:linear-gradient(120deg, var(--accent), #c4b5fd);box-shadow:0 0 24px var(--accent-dim)}.nav-tab--solo.active{background:linear-gradient(120deg, var(--accent), #c4b5fd);border-color:#0000}.nav-tab--solo{border:1px solid var(--border);background:#ffffff0a;border-radius:999px;padding:.55rem 1.1rem;transition:color .2s,background .2s,border-color .26s cubic-bezier(.22,1,.36,1),transform .26s cubic-bezier(.22,1,.36,1),box-shadow .26s cubic-bezier(.22,1,.36,1)}.nav-tab--solo:hover:not(.active){border-color:#6ee7ff47;transform:scale(1.04);box-shadow:0 0 22px #6ee7ff24}.nav-tab--solo.nav-tab--outline{background:0 0}.nav-tab--solo.nav-tab--outline:hover{border-color:var(--accent-dim);color:var(--text)}.app-main{flex:1;position:relative}.app-panel,.app-panel--wide{min-height:calc(100vh - 64px)}.door-intro-root{z-index:150;pointer-events:none;background:0 0;position:fixed;inset:0;overflow:hidden}.door-intro-frost{z-index:1;pointer-events:none;-webkit-backdrop-filter:blur(18px)saturate(118%);will-change:opacity;background:#04091261;position:absolute;inset:0}.door-intro-logo-wrap{z-index:12;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.door-intro-logo{object-fit:contain;will-change:transform, opacity;filter:drop-shadow(0 0 20px #6ee7ff80)drop-shadow(0 0 56px #a78bfa40);width:min(30vw,200px);max-width:220px;height:auto}.door-intro-stage{z-index:2;pointer-events:none;position:absolute;inset:0}.door-intro-perspective{pointer-events:none;perspective:2000px;perspective-origin:50%;transform-style:preserve-3d;display:flex;position:absolute;inset:0}.door-intro-panel{pointer-events:none;backface-visibility:hidden;isolation:isolate;will-change:transform;background:linear-gradient(145deg,#0a1524 0%,#060910 48%,#0c1a2e 100%);flex:50%;width:50%;max-width:50%;height:100%;position:relative;box-shadow:inset 0 0 min(12vw,120px) #00000080,inset 0 1px #ffffff0f}.door-intro-panel:before{content:"";opacity:.92;pointer-events:none;z-index:0;background-image:url(/door-hex-pattern.svg);background-position:50%;background-size:clamp(72px,14vw,130px);position:absolute;inset:0}.door-intro-panel:after{content:"";pointer-events:none;z-index:1;background:radial-gradient(90% 80% at 50% 42%,#0000 25%,#03060e38 100%);position:absolute;inset:0}.door-intro-panel--right:before{transform:scaleX(-1)}.door-intro-panel--left{transform-origin:0;border-right:1px solid #6ee7ff33;box-shadow:inset 0 0 min(12vw,120px) #00000080,inset -12px 0 40px #6ee7ff12,inset 0 1px #ffffff0d}.door-intro-panel--right{transform-origin:100%;border-left:1px solid #6ee7ff33;box-shadow:inset 0 0 min(12vw,120px) #00000080,inset 12px 0 40px #a78bfa0f,inset 0 1px #ffffff0d}.door-intro-seam-wrap{z-index:4;pointer-events:none;position:absolute;inset:0}.door-intro-seam-half{will-change:transform, opacity;background:linear-gradient(#0000 5%,#6ee7ff73 35%,#6ee7ffb8 50%,#a78bfa66 65%,#0000 95%);width:3px;position:absolute;top:0;bottom:0}.door-intro-seam-half--left{transform-origin:100%;margin-right:0;right:50%;box-shadow:-6px 0 24px #6ee7ff59}.door-intro-seam-half--right{transform-origin:0;margin-left:0;left:50%;box-shadow:6px 0 24px #6ee7ff59}.door-intro-skip{z-index:20;pointer-events:auto;-webkit-backdrop-filter:blur(12px);color:#989fb0;cursor:pointer;background:#080c16b8;border:1px solid #ffffff24;border-radius:999px;padding:.5rem 1.15rem;font-size:.8rem;font-weight:600;transition:color .2s,border-color .2s,background .2s;position:absolute;bottom:1.35rem;left:50%;transform:translate(-50%)}.door-intro-skip:hover{color:#e8eaf0;border-color:#6ee7ff52}.door-intro-skip:focus-visible{outline-offset:3px;outline:2px solid #6ee7ff}.portfolio-root{background:linear-gradient(168deg,#0c1929 0%,#060910 42%,#000 100%);min-height:calc(100vh - 64px);padding:2.5rem 1.5rem 4rem;position:relative;overflow:hidden}.portfolio-bg{z-index:0;pointer-events:none;will-change:transform;background:radial-gradient(70% 45% at 50% -5%,#1e406e59,#0000 55%),radial-gradient(50% 40% at 20% 20%,#6ee7ff24,#0000 55%),radial-gradient(45% 35% at 85% 30%,#a78bfa29,#0000 50%),radial-gradient(60% 50% at 50% 100%,#34d3990f,#0000 45%);animation:18s ease-in-out infinite alternate drift;position:absolute;inset:-40% -20%}.portfolio-bg--layered:after{content:"";pointer-events:none;background:radial-gradient(100% 80%,#6ee7ff0a 0%,#0000 55%);animation:14s ease-in-out infinite alternate ambientPulse;position:absolute;inset:0}@keyframes drift{0%{transform:translate(-2%,-1%)rotate(0)}to{transform:translate(2%,3%)rotate(2deg)}}@keyframes ambientPulse{0%{opacity:.45;transform:scale(1)}to{opacity:.85;transform:scale(1.06,1.04)}}.portfolio-page-spotlight{z-index:1;pointer-events:none;background:radial-gradient(900px circle at var(--cursor-glow-x,50%) var(--cursor-glow-y,38%), #6ee7ff1a 0%, #a78bfa0b 26%, transparent 52%);opacity:.9;will-change:opacity;position:absolute;inset:0}.portfolio-inner{z-index:2;max-width:1100px;margin:0 auto;position:relative}.portfolio-hero{margin-bottom:2.5rem;padding:1.25rem 0 .25rem;position:relative}.portfolio-name-wrap{margin:0 0 .75rem;display:block;position:relative}.portfolio-name-glow{filter:blur(42px);pointer-events:none;z-index:0;opacity:.55;will-change:transform, opacity;background:linear-gradient(105deg,#0000 0%,#6ee7ff33 35%,#a78bfa29 55%,#0000 100%) 0 0/220% 100%;animation:16s ease-in-out infinite alternate nameGlowSweep;position:absolute;inset:-35% -8%}@keyframes nameGlowSweep{0%{opacity:.45;transform:translate(-6%)}to{opacity:.7;transform:translate(6%)}}.portfolio-name-wrap .portfolio-name{margin:0}.portfolio-name{z-index:1;letter-spacing:.02em;text-transform:none;background:linear-gradient(95deg, #fff 0%, #dbeafe 45%, var(--accent) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 .75rem;font-family:Chakra Petch,system-ui,sans-serif;font-size:clamp(2.55rem,6.4vw,4rem);font-weight:700;line-height:1.08;position:relative}.portfolio-tag{max-width:42rem;color:var(--text-muted);margin:0 0 1rem;font-size:1.05rem}.portfolio-meta{flex-wrap:wrap;align-items:center;gap:.65rem 1.1rem;margin-bottom:1.35rem;display:flex}.portfolio-meta-item{color:var(--text);align-items:center;gap:.45rem;font-size:.88rem;display:inline-flex}.portfolio-meta-item--muted{color:var(--text-muted)}.portfolio-meta-with-icon{align-items:center;gap:.4rem;display:inline-flex}.portfolio-meta-icon{width:1rem;height:1rem;color:var(--accent);opacity:.95;flex-shrink:0}.portfolio-meta-item.portfolio-meta-with-icon .portfolio-meta-icon{color:var(--accent)}.portfolio-meta-phone{cursor:pointer;text-decoration:none}.portfolio-meta-phone:hover{color:var(--text)}.portfolio-meta-email{color:var(--text-muted);word-break:break-all;align-items:center;font-size:.88rem;text-decoration:none;display:inline-flex}.portfolio-meta-email:hover{color:var(--accent);text-decoration:underline}.portfolio-pills{flex-wrap:wrap;gap:.4rem;display:flex}.portfolio-pill{letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--border);color:var(--text-muted);background:#ffffff08;border-radius:999px;padding:.35rem .65rem;font-size:.72rem;font-weight:600}.portfolio-cta-row{flex-wrap:wrap;gap:.75rem;display:flex}.btn-primary{appearance:none;cursor:pointer;background:linear-gradient(120deg, var(--accent), #a78bfa);color:var(--bg-deep);border:none;border-radius:999px;padding:.65rem 1.35rem;font-weight:700;box-shadow:0 8px 32px #6ee7ff40}.btn-premium{transition:box-shadow .26s cubic-bezier(.22,1,.36,1),filter .26s cubic-bezier(.22,1,.36,1)}.btn-premium:hover{filter:brightness(1.03);box-shadow:0 10px 40px #6ee7ff6b,0 0 28px #a78bfa40}.btn-ghost{border:1px solid var(--border);color:var(--text);background:#ffffff08;border-radius:999px;justify-content:center;align-items:center;padding:.65rem 1.2rem;font-weight:600;text-decoration:none;transition:border-color .26s cubic-bezier(.22,1,.36,1),background .26s cubic-bezier(.22,1,.36,1),box-shadow .26s cubic-bezier(.22,1,.36,1);display:inline-flex}.btn-ghost:hover{border-color:var(--accent-dim);background:#6ee7ff0f}.btn-premium-ghost:hover{border-color:#6ee7ff59;box-shadow:0 0 24px #6ee7ff38,0 0 48px #6ee7ff14}.portfolio-panel{border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f111ca6;border-radius:16px;margin-bottom:1.75rem;padding:1.5rem 1.35rem}.glass-panel{-webkit-backdrop-filter:blur(20px)saturate(150%);background:#0c14246b;border:1px solid #ffffff1f;box-shadow:0 8px 40px #00000047}.portfolio-panel--accent{background:linear-gradient(145deg,#0c142480 0%,#6ee7ff12 100%);border-color:#6ee7ff38}.portfolio-panel--accent.glass-panel{-webkit-backdrop-filter:blur(20px)saturate(150%);background:linear-gradient(145deg,#0c14247a 0%,#6ee7ff14 100%)}@media (prefers-reduced-motion:reduce){.portfolio-bg,.portfolio-bg--layered:after,.portfolio-name-glow{animation:none}.portfolio-name-glow{opacity:.5;transform:none}}.portfolio-panel--compact{height:100%;margin-bottom:0}.portfolio-h2{margin:0 0 .5rem;font-family:Syne,sans-serif;font-size:1.15rem}.portfolio-lead{color:var(--text-muted);margin:0;font-size:.98rem;line-height:1.65}.portfolio-lead--full{max-width:none}.portfolio-metrics{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:.85rem;margin-bottom:2.25rem;display:grid}.metric-tile{border:1px solid var(--border);background:#080a1499;border-radius:14px;min-width:0;padding:1rem 1rem 1.1rem}.glass-metric{-webkit-backdrop-filter:blur(16px)saturate(140%);will-change:transform;background:#060c1880;box-shadow:0 6px 28px #00000038}.metric-value{letter-spacing:-.02em;overflow-wrap:break-word;word-break:normal;background:linear-gradient(90deg, #fff, var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text;max-width:100%;font-family:Syne,sans-serif;font-size:clamp(1.05rem,3.8vw + .6rem,1.45rem);font-weight:800;line-height:1.2;display:block}.metric-value--place{letter-spacing:-.05em;white-space:nowrap;overflow-wrap:normal;font-size:clamp(.76rem,2.55vw + .45rem,1.08rem)}.metric-label{text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);font-size:.72rem}.portfolio-section-title{letter-spacing:-.02em;margin:0 0 1rem;font-family:Syne,sans-serif;font-size:1.2rem}.portfolio-section-intro{max-width:40rem;color:var(--text-muted);margin:-.5rem 0 1.25rem;font-size:.92rem;line-height:1.6}.portfolio-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.portfolio-grid--all,.portfolio-timeline-wrap{margin-bottom:2.5rem}.portfolio-timeline{margin:0;padding:0;list-style:none;position:relative}.portfolio-timeline:before{content:"";background:linear-gradient(180deg, var(--accent-dim), #a78bfa40);border-radius:2px;width:2px;position:absolute;top:6px;bottom:6px;left:7px}.timeline-item{margin-bottom:1.35rem;padding-left:2rem;position:relative}.timeline-item--glass .timeline-body{-webkit-backdrop-filter:blur(16px)saturate(130%);background:#080e1c6b;border:1px solid #ffffff1a;border-radius:14px;padding:1rem 1.1rem 1.05rem;transition:border-color .25s cubic-bezier(.22,1,.36,1),box-shadow .25s cubic-bezier(.22,1,.36,1),transform .25s cubic-bezier(.22,1,.36,1);box-shadow:0 6px 28px #0003}.timeline-item--glass:hover .timeline-body{border-color:#6ee7ff40;transform:translateY(-3px);box-shadow:0 12px 36px #00000047,0 0 0 1px #6ee7ff1f}.timeline-item:last-child{margin-bottom:0}.timeline-dot{background:var(--bg-deep);border:2px solid var(--accent);width:14px;height:14px;box-shadow:0 0 14px var(--accent-dim);border-radius:50%;position:absolute;top:6px;left:0}.timeline-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;display:flex}.timeline-company{font-family:Syne,sans-serif;font-size:1rem;font-weight:700}.timeline-dates{color:var(--accent);font-size:.8rem;font-weight:600}.timeline-role{color:var(--text-muted);margin:.2rem 0 .5rem;font-size:.88rem;font-weight:600}.timeline-bullets{color:var(--text-muted);margin:0;padding:0 0 0 .95rem;font-size:.86rem;line-height:1.55}.timeline-bullets li{margin-bottom:.35rem}.timeline-bullets li:last-child{margin-bottom:0}.grid-two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-bottom:2.5rem;display:grid}.edu-list,.cert-list{margin:0;padding:0;list-style:none}.edu-list li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:.5rem;padding:.45rem 0;font-size:.88rem;display:flex}.edu-list li:last-child{border-bottom:none}.edu-left{color:var(--text);font-weight:600}.edu-right{color:var(--text-muted);font-size:.85rem}.cert-list li{color:var(--text-muted);border-bottom:1px solid var(--border);padding:.55rem 0 .55rem .9rem;font-size:.86rem;line-height:1.5;position:relative}.cert-list li:before{content:"◆";color:var(--accent);font-size:.5rem;position:absolute;top:.55rem;left:0}.cert-list li:last-child{border-bottom:none}.portfolio-footer-cta{border:1px solid var(--border);background:#0a0c16d9;border-radius:16px;margin-top:.5rem;padding:1.75rem 1.35rem}.portfolio-footer-cta.glass-panel{background:#080e1a85}.portfolio-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;display:flex}.portfolio-footer-kicker{text-transform:uppercase;letter-spacing:.2em;color:var(--accent);margin:0 0 .35rem;font-family:Syne,sans-serif;font-size:.75rem}.portfolio-footer-text{max-width:28rem;color:var(--text-muted);margin:0;font-size:.95rem;line-height:1.55}.portfolio-footer-actions{flex-wrap:wrap;gap:.65rem;display:flex}.footer-btn{text-decoration:none}button.footer-btn.btn-ghost{cursor:pointer}.skill-card{border:1px solid var(--border);-webkit-backdrop-filter:blur(14px)saturate(130%);will-change:transform;background:linear-gradient(155deg,#ffffff12,#ffffff05);border-radius:14px;padding:1.1rem 1rem;box-shadow:0 6px 24px #0003}.glass-card{background:#080e1c7a}.skill-card-label{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem;font-family:Syne,sans-serif;font-size:.78rem;display:block}.skill-card-value{color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.55}.portfolio-projects{margin-bottom:2.5rem}.portfolio-projects .portfolio-h2{margin-bottom:1rem}.project-stack{flex-direction:column;gap:1rem;display:flex}.project-card{border:1px solid var(--border);-webkit-backdrop-filter:blur(14px)saturate(125%);will-change:transform;background:#0a0c16cc;border-radius:14px;padding:1.25rem 1.2rem}.project-card h3{margin:0 0 .35rem;font-family:Syne,sans-serif;font-size:1rem}.project-card p{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.55}.project-highlights{color:var(--text-muted);margin:.85rem 0 0;padding:0 0 0 .95rem;font-size:.84rem;line-height:1.55}.project-highlights li{margin-bottom:.35rem}.project-highlights li:last-child{margin-bottom:0}.login-modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#07070fb8;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.login-modal{border:1px solid var(--border);width:100%;max-width:400px;color:var(--text);background:linear-gradient(160deg,#141824 0%,#0c0e14 100%);border-radius:16px;padding:1.5rem 1.35rem 1.35rem;box-shadow:0 24px 60px #00000073}.login-modal-title{margin:0 0 .5rem;font-family:Syne,sans-serif;font-size:1.2rem}.login-modal-reset-creds{appearance:none;border:1px dashed var(--border);width:100%;color:var(--text-muted);cursor:pointer;background:#ffffff0a;border-radius:8px;margin:0 0 1rem;padding:.4rem .6rem;font-size:.76rem;font-weight:600;display:block}.login-modal-reset-creds:hover{color:var(--accent);border-color:var(--accent-dim)}.login-modal-desc{color:var(--text-muted);margin:0 0 .65rem;font-size:.78rem;line-height:1.5}.login-modal-desc code{color:var(--accent);background:#ffffff0f;border-radius:4px;padding:.1rem .3rem;font-size:.72rem}.login-modal-form label{color:var(--text-muted);flex-direction:column;gap:.3rem;margin-bottom:.75rem;font-size:.78rem;font-weight:600;display:flex}.login-modal-form input{border:1px solid var(--border);color:var(--text);background:#00000059;border-radius:8px;padding:.55rem .65rem}.login-modal-form input:focus{border-color:var(--accent-dim);outline:none;box-shadow:0 0 0 2px #6ee7ff26}.login-modal-error{color:#fca5a5;margin:0 0 .75rem;font-size:.82rem}.login-modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.25rem;display:flex}.login-btn-secondary,.login-btn-primary{appearance:none;cursor:pointer;border-radius:8px;padding:.5rem 1rem;font-size:.85rem;font-weight:600}.login-btn-secondary{border:1px solid var(--border);color:var(--text-muted);background:0 0}.login-btn-secondary:hover{color:var(--text);border-color:#fff3}.login-btn-primary{background:linear-gradient(120deg, var(--accent), #a78bfa);color:var(--bg-deep);border:none}.download-resume-main{justify-content:center;min-height:calc(100vh - 120px);padding:1.25rem 1rem 2.5rem;display:flex}.download-resume-preview{width:100%;max-width:825.701px}.pdf-source-hidden{pointer-events:none;opacity:0;z-index:-10;width:794px;min-width:794px;max-width:794px;max-height:none;position:fixed;top:0;left:-120vw;overflow:visible}.resume-menu-backdrop{z-index:180;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#07070fb8;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.resume-menu-modal{border:1px solid var(--border);width:100%;max-width:400px;color:var(--text);background:linear-gradient(160deg,#141824 0%,#0c0e14 100%);border-radius:16px;padding:1.5rem 1.35rem 1.15rem;box-shadow:0 24px 60px #00000073}.resume-menu-title{margin:0 0 .35rem;font-family:Syne,sans-serif;font-size:1.25rem}.resume-menu-desc{color:var(--text-muted);margin:0 0 1.15rem;font-size:.84rem;line-height:1.5}.resume-menu-actions{flex-direction:column;gap:.5rem;display:flex}.resume-menu-btn{appearance:none;text-align:center;cursor:pointer;border:none;border-radius:10px;width:100%;padding:.65rem 1rem;font-size:.88rem;font-weight:700;transition:transform .15s,opacity .15s}.resume-menu-btn:active{transform:scale(.98)}.resume-menu-btn--primary{background:linear-gradient(120deg, var(--accent), #a78bfa);color:var(--bg-deep)}.resume-menu-btn--secondary{color:var(--text);border:1px solid var(--border);background:#ffffff0f}.resume-menu-btn--secondary:hover{border-color:var(--accent-dim)}.resume-menu-cancel{appearance:none;width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-top:.75rem;padding:.45rem;font-size:.82rem;font-weight:600;display:block}.resume-menu-cancel:hover{color:var(--text)}.view-resume-backdrop{z-index:195;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#07070fd1;justify-content:center;align-items:stretch;padding:1rem;display:flex;position:fixed;inset:0}.view-resume-dialog{border:1px solid var(--border);background:#e8e8e8;border-radius:16px;flex-direction:column;width:100%;max-width:min(841.701px,100vw - 2rem);max-height:calc(100vh - 2rem);display:flex;overflow:hidden;box-shadow:0 28px 80px #00000073}.view-resume-header{color:#e2e8f0;background:#0f3460;flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.view-resume-heading{margin:0;font-family:Syne,sans-serif;font-size:1rem}.view-resume-close{appearance:none;color:#e2e8f0;cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:8px;padding:.38rem .85rem;font-size:.82rem;font-weight:600}.view-resume-close:hover{background:#ffffff14}.view-resume-scroll{-webkit-overflow-scrolling:touch;flex:1;padding:1rem;overflow:auto}@media (width<=768px){.view-resume-backdrop{padding:.5rem}.view-resume-dialog{border-radius:12px;max-width:100%;max-height:calc(100vh - 1rem)}.view-resume-scroll{padding:.5rem;overflow:hidden auto}.view-resume-scroll .resume-page{box-sizing:border-box;min-width:0;max-width:100%;margin:0 auto;width:100%!important}.view-resume-scroll .resume-skills{grid-template-columns:minmax(72px,28%) minmax(0,1fr)}.view-resume-scroll .resume-exp-header{flex-wrap:wrap;gap:.25rem .75rem}.view-resume-scroll .resume-exp-header .dates{text-align:right;margin-left:auto}}.edit-root{color:#1a1a2e;background:#e8e8e8;min-height:calc(100vh - 64px)}.edit-toolbar{background:#0f3460;padding:.65rem 1.25rem;box-shadow:0 2px 12px #00000040}.edit-toolbar-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;max-width:1400px;margin:0 auto;display:flex}.edit-toolbar-hint{color:#cbd5e1;margin:0;font-size:.8rem}.edit-toolbar-actions{flex-wrap:wrap;gap:.5rem;display:flex}.btn-ghost-toolbar{appearance:none;color:#e2e8f0;cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:8px;padding:.45rem .9rem;font-size:.82rem;font-weight:600}.btn-ghost-toolbar:hover{background:#ffffff14}.btn-download{appearance:none;color:#0f3460;cursor:pointer;background:#64b5f6;border:none;border-radius:8px;padding:.5rem 1.25rem;font-size:.85rem;font-weight:700}.btn-download:disabled{opacity:.65;cursor:not-allowed}.edit-split{grid-template-columns:minmax(300px,440px) 1fr;align-items:start;gap:0;max-width:1600px;margin:0 auto;display:grid}@media (width<=1024px){.edit-split{grid-template-columns:1fr}.edit-preview-col{position:relative;top:0}}@media (width<=768px){.edit-panel-hidden-mobile{display:none!important}.edit-mobile-tabs{z-index:5;background:#e2e8f0;border-bottom:1px solid #cbd5e1;gap:.4rem;padding:.5rem .65rem;display:flex;position:sticky;top:0}.edit-mobile-tab{appearance:none;color:#334155;cursor:pointer;background:#fff;border:1px solid #94a3b8;border-radius:10px;flex:1;padding:.55rem .65rem;font-size:.85rem;font-weight:700}.edit-mobile-tab.is-active{color:#f8fafc;background:#0f3460;border-color:#0f3460}}.edit-form-col{background:#f0f2f6;border-right:1px solid #d1d5db;max-height:calc(100vh - 120px);padding:1.25rem 1.25rem 2.5rem;overflow:auto}@media (width<=1024px){.edit-form-col{border-bottom:1px solid #d1d5db;border-right:none;max-height:none}}.form-section{margin-bottom:1.5rem}.form-section h3{color:#0f3460;margin:0 0 .65rem;font-size:.95rem}.form-section-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.form-section-head h3{margin:0}.form-section label{color:#374151;flex-direction:column;gap:.25rem;margin-bottom:.65rem;font-size:.78rem;font-weight:600;display:flex}.form-section input,.form-section textarea{color:#111827;background:#fff;border:1px solid #c4c9d4;border-radius:6px;width:100%;padding:.45rem .55rem}.form-section textarea{resize:vertical;min-height:4rem}.repeat-block{background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:.75rem;padding:.75rem}.repeat-block.large{padding:1rem}.repeat-inline{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.5rem;display:grid}@media (width<=600px){.repeat-inline{grid-template-columns:1fr}}.btn-small{appearance:none;color:#0f3460;cursor:pointer;background:#fff;border:1px solid #0f3460;border-radius:6px;margin-bottom:.5rem;padding:.3rem .65rem;font-size:.75rem;font-weight:600}.btn-small.danger{color:#b91c1c;border-color:#b91c1c}.edit-preview-col{background:#e8e8e8;flex-direction:column;align-self:start;max-height:calc(100vh - 64px);padding:1rem 1rem 2rem;display:flex;position:sticky;top:64px;overflow:hidden}.preview-label{color:#475569;margin:0 0 .5rem;font-size:.8rem;font-weight:600}.preview-scroll{flex:1;padding-bottom:2rem;overflow:auto}@media (width<=768px){.edit-panel-hidden-mobile{display:none!important}.edit-form-col{border-bottom:none;max-height:none;padding-bottom:2rem}.edit-preview-col{max-height:calc(100vh - 132px);padding:.45rem .5rem 1.25rem;position:relative;top:0;overflow:hidden}.edit-preview-col .preview-label{margin:0 0 .35rem;padding:0 .15rem}.edit-preview-col .preview-scroll{-webkit-overflow-scrolling:touch;width:100%;max-width:100%;padding:0 0 1rem;overflow:hidden auto}.edit-preview-col .preview-scroll .resume-page{box-sizing:border-box;min-width:0;max-width:100%;margin:0 auto;width:100%!important}.edit-preview-col .resume-skills{grid-template-columns:minmax(72px,28%) minmax(0,1fr)}.edit-preview-col .resume-page.pdf-capture{max-width:100%;width:100%!important}}.resume-page{color:#1a1a2e;background:#fff;width:210mm;min-height:297mm;margin:0 auto;padding:28px 32px;font-family:Inter,system-ui,sans-serif;font-size:10px;box-shadow:0 4px 24px #0000001f}.resume-page.pdf-capture{box-sizing:border-box;min-height:0;box-shadow:none;margin:0;padding:11mm 13mm;font-size:9.5px}.resume-page.pdf-capture .resume-header{border-bottom-width:2px;margin-bottom:12px;padding-bottom:10px}.resume-page.pdf-capture .resume-header h1{letter-spacing:.75px;margin-bottom:3px;font-size:23px}.resume-page.pdf-capture .resume-tagline{letter-spacing:.65px;margin-bottom:6px;font-size:11px}.resume-page.pdf-capture .resume-contact{gap:5px 14px;font-size:9.5px;line-height:1.4}.resume-page.pdf-capture .resume-section{margin-bottom:15px}.resume-page.pdf-capture .resume-section:last-child{margin-bottom:0}.resume-page.pdf-capture .resume-section-title{letter-spacing:2px;border-bottom-width:1.5px;margin-bottom:6px;padding-bottom:3px;font-size:11px}.resume-page.pdf-capture .resume-summary{font-size:9px;line-height:1.52}.resume-page.pdf-capture .resume-skills{grid-template-columns:98px 1fr;gap:3px 10px;font-size:8.75px}.resume-page.pdf-capture .resume-skills .label,.resume-page.pdf-capture .resume-skills .value{padding:2px 0;line-height:1.45}.resume-page.pdf-capture .resume-exp-block{margin-bottom:9px}.resume-page.pdf-capture .resume-exp-block:last-child{margin-bottom:0}.resume-page.pdf-capture .resume-exp-header .company{font-size:10.5px}.resume-page.pdf-capture .resume-exp-header .dates{font-size:8.75px}.resume-page.pdf-capture .resume-exp-role{margin-bottom:3px;font-size:9.25px}.resume-page.pdf-capture .resume-list li{margin-bottom:2.5px;padding-left:11px;font-size:8.75px;line-height:1.48}.resume-page.pdf-capture .resume-list li:before{font-size:8.5px}.resume-page.pdf-capture .resume-proj-block{margin-bottom:8px}.resume-page.pdf-capture .resume-proj-block:last-child{margin-bottom:0}.resume-page.pdf-capture .resume-proj-title{font-size:9.75px}.resume-page.pdf-capture .resume-proj-desc{margin-bottom:3px;font-size:8.25px;line-height:1.48}.resume-page.pdf-capture .resume-edu-line{font-size:9px;line-height:1.38}.resume-page.pdf-capture .resume-edu-line+.resume-edu-line{margin-top:2px}.resume-page.pdf-capture .resume-edu-line .edu-dates{font-size:8.75px}.resume-page.pdf-capture .resume-cert{font-size:9px;line-height:1.4}.resume-page.pdf-capture .resume-cert>div+div{margin-top:2px}.resume-header{text-align:center;border-bottom:2.5px solid #0f3460;margin-bottom:16px;padding-bottom:14px}.resume-header h1{color:#0f3460;letter-spacing:1px;margin-bottom:4px;font-family:"Source Serif 4",Georgia,serif;font-size:26px;font-weight:700}.resume-tagline{color:#333;letter-spacing:1px;margin-bottom:8px;font-size:12px;font-weight:600}.resume-contact{color:#444;flex-wrap:wrap;justify-content:center;gap:6px 18px;font-size:10px;display:flex}.resume-contact a{color:#0f3460;text-decoration:none}.resume-contact .sep{color:#bbb}.resume-section{margin-bottom:14px}.resume-section-title{color:#0f3460;text-transform:uppercase;letter-spacing:2.5px;border-bottom:1.5px solid #0f3460;margin-bottom:8px;padding-bottom:4px;font-size:12px;font-weight:700}.resume-summary{color:#333;font-size:9.5px;line-height:1.6}.resume-summary strong{color:#1a1a2e}.resume-skills{grid-template-columns:100px 1fr;gap:4px 10px;font-size:9px;display:grid}.resume-skills .label{color:#0f3460;padding:2px 0;font-weight:700}.resume-skills .value{color:#333;padding:2px 0;line-height:1.5}.resume-exp-block{margin-bottom:10px}.resume-exp-header{justify-content:space-between;align-items:baseline;margin-bottom:2px;display:flex}.resume-exp-header .company{color:#1a1a2e;font-size:11px;font-weight:700}.resume-exp-header .dates{color:#555;font-size:9px;font-style:italic}.resume-exp-role{color:#0f3460;margin-bottom:4px;font-size:9.5px;font-weight:600}.resume-list{margin:0;padding:0;list-style:none}.resume-list li{color:#333;margin-bottom:3px;padding-left:12px;font-size:9px;line-height:1.55;position:relative}.resume-list li:before{content:"▸";color:#0f3460;font-size:9px;position:absolute;top:0;left:0}.resume-list li strong{color:#1a1a2e;font-weight:600}.resume-proj-block{margin-bottom:9px}.resume-proj-title{color:#1a1a2e;margin-bottom:1px;font-size:10px;font-weight:700}.resume-proj-desc{color:#555;margin-bottom:4px;font-size:8.5px;font-style:italic;line-height:1.5}.resume-edu-line{color:#333;justify-content:space-between;align-items:baseline;gap:12px;font-size:9.5px;line-height:1.35;display:flex}.resume-edu-line+.resume-edu-line{margin-top:3px}.resume-edu-line .edu-inst{color:#1a1a2e;font-weight:700}.resume-edu-line .edu-dates{color:#555;white-space:nowrap;flex-shrink:0;font-size:9px}.resume-edu-line .edu-italic{font-style:italic}.resume-cert{color:#333;font-size:9.5px;line-height:1.35}.resume-cert strong{color:#1a1a2e;font-weight:700}@media print{.resume-page{box-shadow:none;margin:0;padding:20px 24px}}
