.resume-page{background:#0c0f14;min-height:100vh;padding:24px 0}.resume-page.dark{background:#0c0f14 url(/assets/img/resume-page-dark.png) center/auto repeat}.resume-page.light{background:#f7fafc url(/assets/img/resume-page-light.png) center/auto repeat}.resume-toolbar{max-width:980px;margin:0 auto 12px;display:flex;align-items:center;justify-content:space-between}.resume-toolbar .toolbar-left{display:flex;align-items:center;gap:8px}.resume-toolbar .toolbar-right{display:flex;align-items:center;justify-content:flex-end}.resume-container{background:#0f131a;max-width:980px;margin:0 auto;padding:40px;box-shadow:0 20px 60px rgba(0,0,0,.45);border-radius:16px;position:relative;overflow:hidden}.resume-container.light{background:#fff;box-shadow:0 14px 38px rgba(0,0,0,.1)}.resume-container.light{background:#fff}.resume-page.light .resume-container{background:#fff;box-shadow:0 10px 28px rgba(0,0,0,.08)}.resume-paper-dark{background:url(/assets/img/resume_paper_dark.png) center/auto repeat;padding:24px;border-radius:12px;position:relative;z-index:1}.resume-paper-light{background:url(/assets/img/resume_paper_light.png) center/auto repeat;padding:24px;border-radius:12px;position:relative;z-index:1}.resume-container.light .resume-divider{background:linear-gradient(90deg,transparent,#e5e7eb,transparent)}.resume-container.light .resume-subtitle{color:#475569}.resume-container.resume-theme:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:radial-gradient(800px 300px at -5% -10%,rgba(73,129,255,.12),transparent 60%),radial-gradient(700px 300px at 110% -15%,rgba(180,116,255,.1),transparent 60%),radial-gradient(900px 500px at 10% 120%,rgba(100,200,255,.06),transparent 60%);-webkit-mask-image:radial-gradient(1200px 800px at 50% 0%,black 65%,transparent 100%);mask-image:radial-gradient(1200px 800px at 50% 0%,black 65%,transparent 100%);pointer-events:none;z-index:0}.resume-container.resume-theme:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(600px 280px at 2% 2%,rgba(255,255,255,.06),transparent 55%),radial-gradient(600px 280px at 98% 0%,rgba(255,255,255,.05),transparent 55%);opacity:.2;pointer-events:none;z-index:0}.resume-header h1{font-size:28px;margin:0;letter-spacing:.3px;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.6)}.resume-container.light .resume-header h1{color:#0e1a2b}.resume-meta{color:#c8d6f6;margin-top:4px}.resume-container.light .resume-meta{color:#334155}.resume-divider{border:0;height:1px;background:linear-gradient(90deg,transparent,rgba(203,213,225,.65),transparent);margin:20px 0}.resume-section h2{font-size:18px;margin-bottom:6px;color:#fff;letter-spacing:.2px;text-shadow:0 1px 0 rgba(0,0,0,.6)}.resume-section h3{font-size:16px;margin:10px 0 6px;color:#fff;letter-spacing:.15px}.resume-container.light .resume-section h2,.resume-container.light .resume-section h3{color:#0f172a}.resume-subtitle{font-size:15px;color:#cbd5e1;margin-top:4px}.resume-container:not(.light) .resume-role h4{color:#e6ecff}.resume-container:not(.light) a{color:#cfe1ff}.resume-container a{text-decoration:underline}.resume-container:not(.light) a{color:#60a5fa}.resume-container.light a{color:#1d4ed8}.resume-bullets{margin:8px 0 0;padding-left:18px;color:#d6e2ff}.resume-container.light .resume-bullets{color:#1f2937}.resume-bullets li{margin:4px 0}.resume-links-breaks a{display:inline-block;margin-bottom:6px}.resume-container:not(.light) .resume-section p{color:#c8d6f6}.resume-container.light .resume-section p{color:#1f2937}.resume-role header{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.resume-role h4{font-size:16px;margin:0}.resume-dates{color:#b7c9ff;font-size:14px;white-space:nowrap}.resume-container.light .resume-dates{color:#334155}.resume-bullets.two-col{-moz-columns:2;columns:2;-moz-column-gap:24px;column-gap:24px}@media (max-width: 900px){.resume-bullets.two-col{-moz-columns:1;columns:1}}.resume-header-grid{display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:center}.resume-avatar-wrap{position:relative}.resume-avatar{display:block;width:120px;height:120px;-o-object-fit:cover;object-fit:cover;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.1)}.resume-container.light .resume-avatar{box-shadow:0 8px 22px rgba(0,0,0,.18);border:1px solid rgba(15,23,42,.08)}.resume-heading{display:flex;flex-direction:column;gap:6px}@media print{.break-before-print{-moz-column-break-before:auto;break-before:auto;page-break-before:auto}}@media print{.no-print,.print-only{display:inline!important}:root{color-scheme:light}@page{size:A4;margin:10mm}body{background:#fff}.no-print{display:none!important}.resume-page{padding:0;background:#fff!important}.resume-container{max-width:none;margin:0;padding:0;box-shadow:none;border-radius:0}.resume-page,.resume-container{background:#fff!important;background-image:none!important;box-shadow:none!important}.resume-paper-dark,.resume-paper-light{-webkit-print-color-adjust:economy;print-color-adjust:economy;background:transparent!important;background-image:none!important;position:static;padding:8mm 10mm!important;border-radius:0!important}.resume-header h1,.resume-section h2,.resume-section h3{color:#111827!important;text-shadow:none!important}.resume-meta,.resume-dates{color:#374151!important}.resume-bullets,.resume-section p{color:#111827!important}.resume-divider{background:#e5e7eb!important}.resume-bullets.two-col{-moz-columns:1!important;columns:1!important}.resume-container.resume-theme:before,.resume-container.resume-theme:after{display:none}.resume-header h1{font-size:22px}.resume-section h2{font-size:15px}.resume-role h4{font-size:14px}.resume-meta,.resume-dates{font-size:12px}.resume-bullets li{margin:1px 0}.resume-section{margin-bottom:6px}.resume-divider{margin:8px 0!important}}.affect-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;opacity:1;transition:opacity 8s ease;will-change:opacity}.affect-overlay.is-fading{opacity:0}.valence-wave{background-image:linear-gradient(var(--affect-angle, 120deg),var(--affect-tone-a, rgba(255, 120, 200, .18)) 0%,var(--affect-tone-c, rgba(180, 200, 255, .14)) 50%,var(--affect-tone-b1, rgba(120, 180, 255, .12)) 85%,var(--affect-tone-b2, rgba(120, 160, 255, .12)) 100%);background-repeat:no-repeat;background-size:240% 240%;background-position:0% 50%;mix-blend-mode:hue;animation:rainbow-flow 20s ease-in-out infinite alternate,valence-breathe 12s ease-in-out infinite;will-change:background-position,opacity}.valence-wave:before,.valence-wave:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}.valence-wave:before{background-image:radial-gradient(1px 1px at 10% 20%,rgba(255,255,255,.18),transparent 45%),radial-gradient(1px 1px at 22% 65%,rgba(255,255,255,.16),transparent 45%),radial-gradient(1.5px 1.5px at 38% 28%,rgba(255,255,255,.14),transparent 50%),radial-gradient(1px 1px at 55% 72%,rgba(255,255,255,.16),transparent 45%),radial-gradient(1px 1px at 72% 38%,rgba(255,255,255,.14),transparent 45%),radial-gradient(1.5px 1.5px at 86% 18%,rgba(255,255,255,.12),transparent 50%),radial-gradient(1px 1px at 82% 82%,rgba(255,255,255,.14),transparent 45%),radial-gradient(1px 1px at 18% 84%,rgba(255,255,255,.12),transparent 45%);mix-blend-mode:screen;opacity:.1;animation:star-twinkle-a 6s ease-in-out infinite}.valence-wave:after{background-image:radial-gradient(1px 1px at 14% 34%,rgba(255,255,255,.12),transparent 45%),radial-gradient(1px 1px at 30% 76%,rgba(255,255,255,.1),transparent 45%),radial-gradient(1px 1px at 66% 24%,rgba(255,255,255,.1),transparent 45%),radial-gradient(1px 1px at 79% 57%,rgba(255,255,255,.1),transparent 45%),radial-gradient(1px 1px at 93% 22%,rgba(255,255,255,.1),transparent 45%),radial-gradient(1px 1px at 6% 48%,rgba(255,255,255,.08),transparent 45%);mix-blend-mode:screen;opacity:.08;animation:star-twinkle-b 9s ease-in-out infinite}@keyframes rainbow-flow{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes star-twinkle-a{0%,to{opacity:.08}50%{opacity:.14}}@keyframes star-twinkle-b{0%,to{opacity:.05}50%{opacity:.1}}@keyframes valence-breathe{0%{filter:saturate(100%)}50%{filter:saturate(120%)}to{filter:saturate(100%)}}.terminal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(10,12,16,.55);backdrop-filter:blur(6px) saturate(115%);-webkit-backdrop-filter:blur(6px) saturate(115%);display:flex;align-items:center;justify-content:center;z-index:1200}.terminal-window{position:relative;width:min(760px,92vw);max-height:min(70vh,680px);background:radial-gradient(1200px 400px at 10% 10%,rgba(255,255,255,.06),rgba(255,255,255,.01)),rgba(10,10,12,.85);border:1px solid rgba(255,255,255,.12);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.45),inset 0 1px rgba(255,255,255,.05);overflow:hidden}.terminal-body{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:14px;line-height:1.6;color:#cfe7ff;padding:18px 18px 56px;overflow:auto;max-height:calc(min(70vh,680px) - 56px)}.term-line{opacity:.95}.term-user{color:#e2f3ff}.term-agent{color:#9ad1ff}.term-system{color:#b6c4d6}.term-md p{margin:6px 0}.term-md ul,.term-md ol{margin:6px 0 6px 18px}.term-md code{background:rgba(255,255,255,.08);padding:0 4px;border-radius:4px}.term-md pre{background:rgba(0,0,0,.35);padding:8px;border-radius:6px;overflow:auto}.term-md a{color:#8ec3ff;text-decoration:underline;text-underline-offset:2px}.term-md a:hover{color:#b3d8ff}.terminal-input-row{position:absolute;left:14px;right:42px;bottom:10px;display:flex;align-items:center;gap:8px}.prompt{color:#77c3ff;opacity:.9}.terminal-input{background:transparent;border:none;outline:none;color:#e6f2ff;width:100%}.terminal-close{position:absolute;right:8px;top:8px;background:transparent;border:none;color:#d7e9ff;font-size:22px;line-height:1;opacity:.7}.terminal-close:hover{opacity:1}.chat-fab{position:fixed;right:20px;bottom:20px;z-index:1100;width:56px;height:56px;border-radius:50%;background:#0b0d12;color:#fff;border:1px solid rgba(255,255,255,.18);box-shadow:0 10px 30px rgba(0,0,0,.35),inset 0 1px rgba(255,255,255,.06);display:inline-flex;align-items:center;justify-content:center;transition:transform .18s ease,box-shadow .24s ease,background .24s ease,border-color .24s ease;overflow:hidden}.chat-fab:before{content:"";position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;background:linear-gradient(120deg,rgba(255,255,255,0) 45%,rgba(120,180,255,.55),rgba(255,255,255,0) 55%);transform:translate(-120%) rotate(10deg);filter:blur(1px);opacity:0;pointer-events:none;animation:chat-fab-shimmer 6.5s ease-in-out infinite}@keyframes chat-fab-shimmer{0%,78%{opacity:0;transform:translate(-120%) rotate(10deg)}82%{opacity:.25}88%{opacity:.1;transform:translate(-10%) rotate(10deg)}92%{opacity:.3;transform:translate(40%) rotate(10deg)}to{opacity:0;transform:translate(120%) rotate(10deg)}}.chat-fab:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 14px 36px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.08);border-color:rgba(120,180,255,.5)}.chat-fab:active{transform:translateY(0) scale(.99)}.chat-fab-icon{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:18px;line-height:1;position:relative;display:inline-flex;align-items:center;justify-content:center}@media (prefers-reduced-motion: reduce){.chat-fab{transition:none}.chat-fab:before{animation:none;opacity:0}}.chat-fab:after{content:"";position:absolute;width:8px;height:8px;right:10px;top:10px;border-radius:50%;background:rgba(120,180,255,0)}.chat-fab-sparkle{position:absolute;right:-2px;top:-2px;color:#fff;opacity:.8;filter:drop-shadow(0 0 4px rgba(255,255,255,.35));animation:chat-sparkle-twinkle 3.2s ease-in-out infinite}@keyframes chat-sparkle-twinkle{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.12);opacity:.95}}.back-to-top{left:50%!important;right:auto!important;transform:translate(-50%);bottom:20px!important;z-index:1000}.summarize-fab{position:fixed;right:90px;bottom:28px;z-index:1090;height:36px;padding:0 12px;border-radius:18px;background:#0b0d12;color:#fff;border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 24px rgba(0,0,0,.35),inset 0 1px rgba(255,255,255,.06);display:inline-flex;align-items:center;gap:8px;transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.summarize-fab:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.08);border-color:rgba(120,180,255,.5)}.summarize-label{font-size:13px;opacity:.95}.summarize-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(10,12,16,.55);backdrop-filter:blur(6px) saturate(115%);-webkit-backdrop-filter:blur(6px) saturate(115%);display:flex;align-items:center;justify-content:center;z-index:1060}.summarize-window{width:min(680px,92vw);background:radial-gradient(1200px 400px at 10% 10%,rgba(255,255,255,.06),rgba(255,255,255,.01)),rgba(10,10,12,.9);border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:0 18px 56px rgba(0,0,0,.45),inset 0 1px rgba(255,255,255,.05);overflow:hidden}.summarize-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;color:#e6f2ff;font-weight:600;border-bottom:1px solid rgba(255,255,255,.08)}.summarize-actions{display:inline-flex;align-items:center;gap:10px}.summarize-ask{height:28px;padding:0 10px;border-radius:14px;background:#0b0d12;color:#fff;border:1px solid rgba(255,255,255,.18);box-shadow:0 6px 18px rgba(0,0,0,.35),inset 0 1px rgba(255,255,255,.06);font-size:13px;line-height:1}.summarize-ask:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.08);border-color:rgba(120,180,255,.5)}.summarize-title{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif;font-size:22px;letter-spacing:.3px}.summarize-close{background:transparent;border:none;color:#d7e9ff;font-size:20px;opacity:.8}.summarize-body{padding:14px;max-height:60vh;overflow:auto}.summarize-working{color:#cfe7ff;opacity:.9;text-align:center}.summarize-content{color:#cfe7ff}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{color:#e6f2ff;margin:10px 0 6px}.markdown-body p{margin:6px 0}.markdown-body ul,.markdown-body ol{margin:8px 0 8px 18px}.markdown-body code{background:rgba(255,255,255,.06);padding:0 4px;border-radius:4px}.markdown-body pre{background:rgba(0,0,0,.35);padding:10px;border-radius:8px;overflow:auto}.markdown-body a{color:#8ec3ff;text-decoration:underline;text-underline-offset:2px}.markdown-body a:hover{color:#b3d8ff}.summarize-image-wrap{margin-top:12px;border-top:1px solid rgba(255,255,255,.08);padding-top:10px;display:flex;align-items:center;justify-content:center;margin-bottom:28px}.summarize-image{max-width:100%;height:auto;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.35);transform:scale(1.25);transform-origin:center;will-change:transform}.summarize-image-loading{width:40px;height:40px;border-radius:50%;margin:8px auto 0;position:relative;background:radial-gradient(closest-side,rgba(255,255,255,.18),rgba(255,255,255,.02));box-shadow:inset 0 0 18px rgba(120,180,255,.25),0 0 12px rgba(120,180,255,.18)}.summarize-image-loading:before,.summarize-image-loading:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(120,180,255,0),rgba(120,180,255,.65),rgba(120,180,255,0) 60%);animation:mystic-spin 1.6s linear infinite;filter:blur(.6px)}.summarize-image-loading:after{animation-duration:2.4s;opacity:.7}@keyframes mystic-spin{to{transform:rotate(360deg)}}
