html,body{min-height:100%}img{max-width:100%}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.reveal{animation:rise .7s var(--ease) both}.delay-1{animation-delay:.06s}.delay-2{animation-delay:.12s}.delay-3{animation-delay:.18s}.delay-4{animation-delay:.24s}.delay-5{animation-delay:.3s}.delay-6{animation-delay:.36s}.stagger>*{animation:rise .6s var(--ease) both}.stagger>*:nth-child(1){animation-delay:.05s}.stagger>*:nth-child(2){animation-delay:.12s}.stagger>*:nth-child(3){animation-delay:.19s}.stagger>*:nth-child(4){animation-delay:.26s}.stagger>*:nth-child(5){animation-delay:.33s}.stagger>*:nth-child(6){animation-delay:.4s}.stagger>*:nth-child(7){animation-delay:.47s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--accent: #6366f1;--accent-strong: #4f46e5;--accent-2: #8b5cf6;--accent-3: #22d3ee;--accent-soft: #eef2ff;--on-accent: #ffffff;--gradient-brand: linear-gradient(135deg, #6366f1 0%, #8b5cf6 55%, #22d3ee 130%);--gradient-text: linear-gradient(120deg, #4f46e5 0%, #7c3aed 48%, #2563eb 100%);--bg: #ffffff;--bg-elevated: #ffffff;--surface: #ffffff;--surface-2: #f6f7f9;--surface-3: #eef0f4;--glass-bg: rgba(255, 255, 255, .72);--glass-border: rgba(15, 23, 42, .08);--glow-1: rgba(99, 102, 241, .12);--glow-2: rgba(34, 211, 238, .1);--text: #0c0d12;--text-secondary: #3f4654;--text-muted: #6b7280;--text-faint: #9aa3b2;--border: rgba(12, 13, 18, .1);--border-strong: rgba(12, 13, 18, .16);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 1px rgba(15, 23, 42, .04);--shadow-md: 0 6px 20px rgba(15, 23, 42, .09), 0 2px 6px rgba(15, 23, 42, .05);--shadow-lg: 0 22px 50px rgba(15, 23, 42, .16), 0 8px 18px rgba(15, 23, 42, .08);--shadow-accent: 0 12px 30px rgba(99, 102, 241, .3);--radius-xs: 8px;--radius-sm: 12px;--radius: 16px;--radius-lg: 22px;--radius-pill: 999px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--container: 1120px;--measure: 68ch;--nav-h: 76px;--ease: cubic-bezier(.22, 1, .36, 1);--dur: .5s;--z-menu: 900;--z-theme-toggle: 910;--z-chat-widget: 920;--z-overlay: 1000;color-scheme:light}.dark{--accent: #818cf8;--accent-strong: #a5b4fc;--accent-2: #a78bfa;--accent-3: #22d3ee;--accent-soft: rgba(129, 140, 248, .14);--on-accent: #0a0b0f;--gradient-text: linear-gradient(120deg, #a5b4fc 0%, #c4b5fd 48%, #7dd3fc 100%);--bg: #0a0b0f;--bg-elevated: #101218;--surface: rgba(255, 255, 255, .035);--surface-2: rgba(255, 255, 255, .05);--surface-3: rgba(255, 255, 255, .08);--glass-bg: rgba(16, 18, 24, .72);--glass-border: rgba(255, 255, 255, .1);--glow-1: rgba(99, 102, 241, .22);--glow-2: rgba(34, 211, 238, .12);--text: #f3f5f9;--text-secondary: #c4cad6;--text-muted: #98a1b2;--text-faint: #6b7484;--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .18);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px rgba(0, 0, 0, .45);--shadow-lg: 0 28px 64px rgba(0, 0, 0, .6);--shadow-accent: 0 14px 38px rgba(99, 102, 241, .45);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}code,kbd,samp{font-family:var(--font-mono)}h1,h2,h3,h4{font-family:var(--font-sans);color:var(--text);letter-spacing:-.02em;line-height:1.12;font-weight:700}::selection{background:color-mix(in srgb,var(--accent) 28%,transparent)}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:padding-box}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.page{width:100%;max-width:var(--container);margin:0 auto}.gradient-text{background:var(--gradient-text);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-strong)}.eyebrow:before{content:"";width:26px;height:1px;background:currentColor;opacity:.55}.eyebrow--center{justify-content:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 24px;border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:.95rem;font-weight:600;line-height:1;border:1px solid transparent;text-decoration:none;cursor:pointer;white-space:nowrap;transition:transform .2s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease),color .2s var(--ease)}.btn:active{transform:translateY(0) scale(.98)}.btn--primary{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-accent)}.btn--primary:hover{transform:translateY(-2px);background:var(--accent-strong)}.btn--ghost{background:var(--surface);color:var(--text);border-color:var(--border-strong);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.btn--ghost:hover{transform:translateY(-2px);color:var(--accent-strong);border-color:var(--accent);box-shadow:var(--shadow-md)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s var(--ease)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--border-strong)}.chip{display:inline-flex;align-items:center;padding:5px 12px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:500;line-height:1.3;background:var(--accent-soft);color:var(--accent-strong);border:1px solid transparent;transition:transform .18s var(--ease),border-color .18s var(--ease)}.chip:hover{transform:translateY(-1px);border-color:var(--accent)}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%)}.prose{max-width:var(--measure)}.prose p{margin:0 0 1.15em;line-height:1.78;font-size:1.03rem;color:var(--text-secondary)}.prose strong{color:var(--text);font-weight:600}.prose a{color:var(--accent-strong);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,transparent);transition:border-color .2s var(--ease),color .2s var(--ease)}.prose a:hover{border-bottom-color:var(--accent)}.section-head{margin-bottom:28px}.section-title{font-size:clamp(1.7rem,3vw,2.4rem);margin:12px 0 0}.snake-game-overlay{position:fixed;inset:0;background:#000000e6;display:flex;justify-content:center;align-items:center;z-index:var(--z-overlay);animation:fadeIn .3s ease-in;touch-action:none;overscroll-behavior:contain}.snake-game-container{background:var(--bg-elevated);border:1px solid var(--border);border-radius:20px;padding:30px;box-shadow:var(--shadow-lg);max-width:90vw;max-height:90vh;max-height:90dvh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y;animation:slideInScale .4s ease-out}.game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.game-header h2{color:var(--accent-strong);font-family:var(--font-mono);font-size:20px;letter-spacing:.02em;margin:0}.close-button{background:#ff3b3033;border:2px solid #ff3b30;color:#ff3b30;width:40px;height:40px;border-radius:50%;font-size:20px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.close-button:hover{background:#ff3b30;color:#fff;transform:rotate(90deg)}.game-info{display:flex;justify-content:space-between;margin-bottom:15px;font-size:18px;font-weight:700}.score{color:#22c55e}.collected-icon{color:var(--accent-strong)}.game-board{display:grid;grid-template-columns:repeat(20,20px);grid-template-rows:repeat(20,20px);gap:1px;background:#14151b;border:3px solid var(--accent);border-radius:10px;padding:5px;margin:0 auto;width:fit-content;box-shadow:0 0 24px color-mix(in srgb,var(--accent) 28%,transparent);touch-action:none;user-select:none;-webkit-user-select:none}.snake-game-overlay.light .game-board{background:#e6e8ee}.cell{background:#2a2a2a;border-radius:2px;transition:background-color .08s linear}.snake-game-overlay.light .cell:not(.snake-head):not(.snake-body):not(.food){background:#fff}.cell.snake-head{background:linear-gradient(135deg,#4caf50,#2e7d32);border-radius:4px;box-shadow:0 0 10px #4caf5099;animation:pulse .5s infinite alternate}.cell.snake-body{background:linear-gradient(135deg,#66bb6a,#4caf50);border-radius:3px}.cell.food{background:radial-gradient(circle,#ffd7004d,#ffa50033);display:flex;align-items:center;justify-content:center;animation:bounce .6s infinite alternate;border:2px solid rgba(255,215,0,.5);border-radius:4px}.food-icon{font-size:18px;filter:drop-shadow(0 0 8px rgba(255,255,255,.8));transform:scale(1.1)}.game-over-overlay{position:absolute;inset:0;background:#000000f2;display:flex;align-items:center;justify-content:center;border-radius:20px;animation:fadeIn .3s ease-in}.game-over-content{text-align:center;color:#fff}.game-over-content h3{font-size:48px;margin:0 0 20px;color:#ff3b30;text-shadow:0 0 20px rgba(255,59,48,.8);animation:glitch .3s ease-in}.game-over-content p{font-size:24px;margin:10px 0 30px;color:var(--accent-strong)}.restart-button{background:linear-gradient(135deg,#4caf50,#2e7d32);color:#fff;border:none;padding:15px 40px;font-size:18px;border-radius:25px;cursor:pointer;transition:all .3s ease;box-shadow:0 5px 15px #4caf5066;font-weight:700}.restart-button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #4caf5099}.paused-overlay{position:absolute;inset:0;background:#000c;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:20px;color:#fff}.paused-overlay h3{font-size:36px;margin:0 0 10px;color:#ffd600}.paused-overlay p{font-size:18px;color:var(--accent-strong)}.game-controls{margin-top:20px;text-align:center;color:#999;font-size:14px}.game-controls p{margin:5px 0}.snake-game-overlay.light .game-controls{color:#666}.pause-button{background:var(--gradient-brand);color:#fff;border:none;padding:10px 30px;font-size:16px;border-radius:var(--radius-pill);cursor:pointer;transition:all .3s ease;margin-top:10px;font-weight:700}.pause-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-accent)}.mobile-controls{display:none;margin-top:20px;position:relative;width:200px;height:200px;margin-left:auto;margin-right:auto}.direction-btn{position:absolute;width:60px;height:60px;background:var(--gradient-brand);border:none;border-radius:14px;color:#fff;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:var(--shadow-accent);user-select:none;-webkit-user-select:none;touch-action:manipulation}.direction-btn:active{transform:scale(.95);filter:brightness(1.1)}.direction-btn.up{top:0;left:50%;transform:translate(-50%)}.direction-btn.down{bottom:0;left:50%;transform:translate(-50%)}.direction-btn.left{left:0;top:50%;transform:translateY(-50%)}.direction-btn.right{right:0;top:50%;transform:translateY(-50%)}.direction-btn.up:active,.direction-btn.down:active{transform:translate(-50%) scale(.95)}.direction-btn.left:active,.direction-btn.right:active{transform:translateY(-50%) scale(.95)}@keyframes slideInScale{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.1)}}@keyframes bounce{0%{transform:translateY(0) scale(1)}to{transform:translateY(-3px) scale(1.2)}}@keyframes glitch{0%,to{transform:translate(0)}20%{transform:translate(-5px,5px)}40%{transform:translate(5px,-5px)}60%{transform:translate(-5px,-5px)}80%{transform:translate(5px,5px)}}@media(max-width:768px){.snake-game-container{padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.game-header{margin-bottom:12px}.game-header h2{font-size:16px}.game-info{margin-bottom:10px;font-size:16px}.game-controls{margin-top:12px}.game-controls .pause-button{margin-top:8px;padding:9px 26px}.game-board{grid-template-columns:repeat(20,15px);grid-template-rows:repeat(20,15px)}.cell{width:15px!important;height:15px!important}.food-icon{font-size:14px}.cell.snake-head,.cell.snake-body{box-shadow:0 0 6px #4caf50cc}.game-over-content h3{font-size:32px}.game-over-content p{font-size:18px}.game-controls p{font-size:12px;margin:3px 0}.mobile-controls{display:block;width:156px;height:156px;margin-top:14px}.direction-btn{width:48px;height:48px;font-size:20px}}@media(max-width:480px){.game-board{grid-template-columns:repeat(20,12px);grid-template-rows:repeat(20,12px)}.cell{width:12px!important;height:12px!important}.food-icon{font-size:12px}.cell.snake-head{box-shadow:0 0 8px #4caf50}.cell.snake-body{box-shadow:0 0 5px #4caf50cc}}.hero{width:100%;display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--nav-h) - 120px)}.hero__grid{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:64px}.hero__text{display:flex;flex-direction:column;align-items:flex-start;gap:22px}.hero__name{margin:0;font-size:clamp(2.6rem,6vw,4.4rem);font-weight:800;letter-spacing:-.035em;line-height:1.02}.hero__tagline{margin:0;font-size:clamp(1.05rem,1.8vw,1.35rem);line-height:1.5;color:var(--text-secondary);max-width:32ch}.hero__tagline strong{color:var(--text);font-weight:600}.hero__roles{margin:0;font-family:var(--font-mono);font-size:.82rem;letter-spacing:.04em;color:var(--text-muted)}.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}.hero__links{display:flex;gap:12px;margin-top:8px}.hero__links a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border);transition:transform .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease)}.hero__links a:hover{transform:translateY(-3px);background:var(--accent);border-color:var(--accent)}.hero__links img{width:20px;height:20px;transition:filter .2s var(--ease)}.hero__links a:hover img{filter:brightness(0) invert(1)}.dark .hero__links a:hover img{filter:brightness(0)}.hero__portrait{display:flex;flex-direction:column;align-items:center;gap:18px}.hero__status{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);font-size:.8rem;font-weight:500;color:var(--text-secondary);white-space:nowrap}.hero__status-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e99;animation:pulseDot 2.4s var(--ease) infinite}@keyframes pulseDot{0%{box-shadow:0 0 #22c55e8c}70%{box-shadow:0 0 0 9px #22c55e00}to{box-shadow:0 0 #22c55e00}}.hero__photo-ring{position:relative;padding:6px;border-radius:50%;background:var(--gradient-brand);box-shadow:var(--shadow-accent);animation:floaty 7s ease-in-out infinite}.hero__photo-ring:after{content:"";position:absolute;inset:-22px;border-radius:50%;background:radial-gradient(circle,var(--glow-1),transparent 68%);z-index:-1}.hero__photo{display:block;width:clamp(220px,26vw,320px);height:clamp(220px,26vw,320px);border-radius:50%;object-fit:cover;border:5px solid var(--bg);cursor:pointer;transition:transform .35s var(--ease)}.hero__photo:hover{transform:scale(1.03)}@media(max-width:860px){.hero{min-height:auto;padding:12px 0 8px}.hero__grid{grid-template-columns:1fr;gap:36px;text-align:center}.hero__portrait{order:-1}.hero__text{align-items:center}.hero__tagline{max-width:40ch}}@media(max-width:420px){.hero__actions{width:100%}.hero__actions .btn{flex:1}}.projects .section-head{margin-bottom:36px}.projects__subtitle{margin:14px 0 0;max-width:62ch;font-size:1.02rem;line-height:1.6;color:var(--text-muted)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:stretch;gap:22px}.project-card{position:relative;display:flex;flex-direction:column;height:100%;padding:26px;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s var(--ease)}.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--border-strong)}.project-card__body{flex:1 1 auto}.project-card__title{margin:0 0 6px;font-size:1.18rem;line-height:1.28;color:var(--text)}.project-role{margin:0 0 12px;font-size:.85rem;font-weight:600;color:var(--accent-strong)}.project-card__desc{margin:0;font-size:.95rem;line-height:1.65;color:var(--text-secondary)}.project-card--featured{border-color:color-mix(in srgb,var(--accent) 38%,var(--border));background:linear-gradient(165deg,color-mix(in srgb,var(--accent-soft) 72%,transparent) 0%,var(--surface) 58%);box-shadow:var(--shadow-md)}.project-card--featured:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--gradient-brand)}.project-card--featured:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:var(--shadow-lg)}.project-card__badge{display:inline-flex;align-items:center;align-self:flex-start;margin-bottom:14px;padding:4px 11px;font-family:var(--font-mono);font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--gradient-brand);border-radius:var(--radius-pill);box-shadow:var(--shadow-accent)}.project-note{display:flex;gap:8px;margin:14px 0 0;padding:10px 12px;font-size:.84rem;font-weight:500;line-height:1.5;color:var(--text-secondary);background:#d9770614;border:1px solid rgba(217,119,6,.22);border-left:3px solid rgba(217,119,6,.6);border-radius:var(--radius-xs)}.project-note:before{content:"⚠";flex:none;color:#d97706}.technology-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.technology-tag{display:inline-flex;align-items:center;padding:5px 12px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:500;line-height:1.3;color:var(--accent-strong);background:var(--accent-soft);border:1px solid transparent;cursor:default;transition:transform .18s var(--ease),border-color .18s var(--ease)}.technology-tag:hover{transform:translateY(-1px);border-color:var(--accent)}.project-card__footer{display:flex;flex-wrap:wrap;gap:18px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.project-link{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;font-weight:600;color:var(--accent-strong);text-decoration:none;transition:color .2s var(--ease)}.project-link:hover{color:var(--accent)}.project-link__arrow{display:inline-block;transition:transform .2s var(--ease)}.project-link:hover .project-link__arrow{transform:translate(3px)}@media(max-width:480px){.projects-grid{grid-template-columns:1fr;gap:16px}.project-card{padding:22px}}.contact{padding-bottom:2.5rem}.contact__subtitle{margin:.85rem 0 0;max-width:54ch;color:var(--text-muted);font-size:1.05rem;line-height:1.6}.contact__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:2.25rem}.contact-card{display:flex;align-items:center;gap:16px;padding:20px 22px;color:inherit;text-decoration:none}.contact-card--link{cursor:pointer}.contact-card--link:hover{border-color:var(--accent);box-shadow:var(--shadow-accent)}.contact-card__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:46px;height:46px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-strong);font-size:1.1rem;transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease)}.contact-card--link:hover .contact-card__icon{background:var(--accent);color:var(--on-accent)}.contact-card__body{display:flex;flex-direction:column;gap:4px;min-width:0}.contact-card__label{font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.contact-card__value{color:var(--text);font-size:1rem;font-weight:500;line-height:1.4;word-break:break-word;overflow-wrap:anywhere}.contact-card--link:hover .contact-card__value{color:var(--accent-strong)}.contact-card__arrow{margin-left:auto;flex-shrink:0;color:var(--text-faint);font-size:.8rem;transition:color .25s var(--ease),transform .25s var(--ease)}.contact-card--link:hover .contact-card__arrow{color:var(--accent);transform:translate(2px,-2px)}.contact__cta{display:flex;justify-content:center;margin-top:2.25rem}@media(max-width:640px){.contact__grid{grid-template-columns:1fr}.contact__cta{justify-content:stretch}.contact__cta .btn{width:100%}}.about-container{padding-bottom:100px}.about-column{max-width:var(--measure);margin:0 auto}.about-header{margin-bottom:32px}.about-column .prose{max-width:100%}.about-more{margin-top:2.5rem}.video-feature-container{margin:2.5rem auto;padding:1.25rem;max-width:600px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.video-feature__title{font-size:1.15rem;margin:0 0 1rem;color:var(--text)}.video-responsive{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:var(--radius-sm);background:var(--surface-3)}.video-responsive iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.video-thumbnail-btn{position:absolute;inset:0;width:100%;height:100%;border:none;padding:0;cursor:pointer;background:var(--surface-3)}.video-thumbnail{width:100%;height:100%;object-fit:cover;display:block}.video-play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.75rem;color:var(--on-accent);background:var(--accent);width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding-left:4px;box-shadow:var(--shadow-accent);transition:background .2s var(--ease),transform .2s var(--ease)}.video-thumbnail-btn:hover .video-play-icon,.video-thumbnail-btn:focus-visible .video-play-icon{background:var(--accent-strong);transform:translate(-50%,-50%) scale(1.08)}.video-caption{font-size:.88rem;color:var(--text-muted);margin:.85rem 0 0;font-style:italic}.education{margin-top:3.5rem}.education__heading{font-size:clamp(1.4rem,2.4vw,1.8rem);margin:0 0 1.25rem}.education__list{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}.education__item{padding:1.1rem 1.3rem;display:flex;flex-direction:column;gap:.3rem}.education__degree{font-weight:600;color:var(--text);line-height:1.4}.education__institution{font-size:.92rem;color:var(--text-muted)}.topnav{position:fixed;top:18px;left:0;right:0;z-index:var(--z-menu);display:flex;justify-content:center;pointer-events:none;padding:0 16px}.topnav__bar{pointer-events:auto;display:flex;align-items:center;gap:6px;padding:8px 8px 8px 14px;border-radius:var(--radius-pill);box-shadow:var(--shadow-md)}.topnav__brand{display:inline-flex;align-items:center;text-decoration:none;padding-right:8px;margin-right:2px;border-right:1px solid var(--border)}.topnav__mark{font-family:var(--font-mono);font-weight:600;font-size:.95rem;letter-spacing:.02em;padding:6px 10px;border-radius:var(--radius-sm);color:var(--on-accent);background:var(--gradient-brand);box-shadow:var(--shadow-accent)}.topnav__links{display:flex;align-items:center;gap:2px}.topnav__link{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:var(--radius-pill);text-decoration:none;color:var(--text-muted);font-size:.92rem;font-weight:500;line-height:1;transition:color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease)}.topnav__icon{font-size:.92em}.topnav__link:hover{color:var(--text);background:var(--surface-2)}.topnav__link.is-active{color:var(--on-accent);background:var(--accent);box-shadow:var(--shadow-accent)}.topnav__toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:4px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text);font-size:1rem;cursor:pointer;transition:transform .25s var(--ease),background .2s var(--ease),color .2s var(--ease)}.topnav__toggle:hover{transform:rotate(-18deg);color:var(--accent-strong);background:var(--surface-3)}@media(max-width:768px){.topnav{top:auto;bottom:16px;padding:0 12px}.topnav__bar{padding:6px;gap:2px}.topnav__brand{display:none}.topnav__link{padding:10px 12px}.topnav__label{display:none}.topnav__icon{font-size:1.1em}.topnav__toggle{width:42px;height:42px}}@media(max-width:360px){.topnav__link{padding:9px 10px}}.chat-widget{position:fixed;bottom:90px;right:24px;z-index:var(--z-chat-widget);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:transparent;pointer-events:none}.chat-toggle{width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026;transition:all .2s ease;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;pointer-events:auto}.chat-toggle:hover{transform:scale(1.05);box-shadow:0 6px 20px #6366f166}.chat-toggle.open{background:#6b7280}.chat-toggle svg{width:24px;height:24px}.chat-window{position:absolute;bottom:0;right:0;width:360px;max-width:calc(100vw - 48px);height:480px;max-height:calc(100vh - 120px);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000026;animation:slideUp .2s ease;z-index:10;pointer-events:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-widget.light .chat-window{background:#fff;border:1px solid #e5e7eb}.chat-widget.light .chat-header{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.chat-widget.light .chat-messages{background:#f9fafb}.chat-widget.light .message.user .message-content{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.chat-widget.light .message.assistant .message-content{background:#fff;color:#1f2937;border:1px solid #e5e7eb}.chat-widget.light .chat-input-area{background:#fff;border-top:1px solid #e5e7eb}.chat-widget.light .chat-input-container input{background:#f3f4f6;color:#1f2937;border:1px solid #e5e7eb}.chat-widget.light .chat-input-container input:focus{border-color:#6366f1}.chat-widget.light .welcome-message{color:#6b7280}.chat-widget.dark .chat-window{background:#1f2937;border:1px solid #374151}.chat-widget.dark .chat-header{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.chat-widget.dark .chat-messages{background:#111827}.chat-widget.dark .message.user .message-content{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.chat-widget.dark .message.assistant .message-content{background:#374151;color:#f3f4f6;border:1px solid #4b5563}.chat-widget.dark .chat-input-area{background:#1f2937;border-top:1px solid #374151}.chat-widget.dark .chat-input-container input{background:#374151;color:#f3f4f6;border:1px solid #4b5563}.chat-widget.dark .chat-input-container input:focus{border-color:#6366f1}.chat-widget.dark .welcome-message{color:#9ca3af}.chat-header{padding:12px 16px;font-weight:600;display:flex;flex-direction:column;row-gap:8px}.header-top-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.header-title-row{display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap;min-width:0}.header-top-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.header-bottom-row{display:flex;justify-content:flex-end}.desktop-header-action{display:inline-flex}.connection-status{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:400;opacity:.85;white-space:nowrap;flex-shrink:0}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-dot--success{background:#22c55e}.status-dot--warn{background:#f59e0b}.status-dot--error{background:#ef4444}.status-dot--info{background:#60a5fa;animation:statusPulse 1.5s ease-in-out infinite}.status-dot--neutral{background:#9ca3af}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.4}}.export-btn{width:32px;height:32px;border:none;background:#ffffff26;color:#fff;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.export-btn:hover:not(:disabled){background:#ffffff40}.export-btn:disabled{opacity:.4;cursor:not-allowed}.export-btn svg{width:16px;height:16px}.clear-btn{width:32px;height:32px;border:none;background:#ffffff26;color:#fff;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.clear-btn:hover:not(:disabled){background:#ffffff40}.clear-btn:disabled{opacity:.4;cursor:not-allowed}.clear-btn svg{width:16px;height:16px}.stream-toggle-btn{height:32px;border:1px solid rgba(255,255,255,.28);background:#ffffff1f;color:#fff;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0 10px;font-size:11px;font-weight:600;letter-spacing:.01em;transition:all .2s}.stream-toggle-btn:hover{background:#ffffff38}.stream-toggle-btn.active{background:#10b98147;border-color:#ffffff7a}.close-btn{width:32px;height:32px;border:none;background:#ffffff26;color:#fff;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;margin-left:4px}.close-btn:hover{background:#ef4444cc}.close-btn svg{width:16px;height:16px}.header-menu-wrap{display:none;position:relative}.header-menu-btn{width:32px;height:32px;border:none;background:#ffffff26;color:#fff;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.header-menu-btn:hover{background:#ffffff40}.header-menu-btn svg{width:16px;height:16px}.header-menu-panel{position:absolute;right:0;top:calc(100% + 6px);min-width:170px;padding:6px;border-radius:10px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 10px 28px #1118272e;z-index:20;display:flex;flex-direction:column;gap:4px}.header-menu-item{border:none;background:transparent;color:#111827;font-size:13px;text-align:left;border-radius:6px;padding:8px 10px;cursor:pointer}.header-menu-item:hover:not(:disabled){background:#f3f4f6}.header-menu-item:disabled{opacity:.45;cursor:not-allowed}.header-menu-item--danger{color:#b91c1c}.chat-widget.dark .header-menu-panel{background:#1f2937;border-color:#374151}.chat-widget.dark .header-menu-item{color:#f3f4f6}.chat-widget.dark .header-menu-item:hover:not(:disabled){background:#374151}.chat-widget.dark .header-menu-item--danger{color:#fca5a5}.mode-toggle{display:flex;background:#0003;border-radius:8px;padding:2px;flex-shrink:0}.mode-btn{padding:6px 12px;border:none;background:transparent;color:#ffffffb3;font-size:12px;font-weight:500;cursor:pointer;border-radius:6px;transition:all .2s}.mode-btn:hover:not(:disabled){color:#fff}.mode-btn.active{background:#ffffff40;color:#fff}.mode-btn.disabled,.mode-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.chat-header{padding:12px 12px 10px}.header-top-row{align-items:flex-start}.header-title-row{min-width:0;padding-top:2px}.desktop-header-action{display:none}.header-menu-wrap{display:block}.close-btn{margin-left:0}.header-bottom-row{width:100%;justify-content:stretch}.mode-toggle{width:100%}.mode-btn{flex:1;text-align:center;padding:6px 8px}}.loading-progress{padding:8px 16px;background:#6366f11a}.progress-text{font-size:12px;color:#6366f1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.local-disclaimer{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fbbf2426;border-bottom:1px solid rgba(251,191,36,.3);font-size:12px}.disclaimer-icon{flex-shrink:0}.disclaimer-text{flex:1;color:#b45309}.chat-widget.dark .disclaimer-text{color:#fbbf24}.local-mode-panel{border-bottom:1px solid rgba(251,191,36,.3);background:#fbbf2414}.gpu-info-btn{width:20px;height:20px;border-radius:50%;border:1px solid #b45309;background:transparent;color:#b45309;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.gpu-info-btn:hover{background:#b453091a}.chat-widget.dark .gpu-info-btn{border-color:#fbbf24;color:#fbbf24}.chat-widget.dark .gpu-info-btn:hover{background:#fbbf241a}.model-selector{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px}.model-label{color:#6b7280;flex-shrink:0}.chat-widget.dark .model-label{color:#9ca3af}.model-options{display:flex;gap:4px}.model-option{padding:4px 10px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-size:11px;cursor:pointer;transition:all .15s}.model-option:hover:not(:disabled){border-color:#6366f1;color:#6366f1}.model-option.active{background:#6366f1;border-color:#6366f1;color:#fff}.model-option:disabled{opacity:.5;cursor:not-allowed}.chat-widget.dark .model-option{background:#374151;border-color:#4b5563;color:#e5e7eb}.chat-widget.dark .model-option:hover:not(:disabled){border-color:#818cf8;color:#818cf8}.chat-widget.dark .model-option.active{background:#6366f1;border-color:#6366f1;color:#fff}.gpu-info-panel{padding:12px;font-size:11px;line-height:1.5;background:#fbbf240d;border-top:1px dashed rgba(251,191,36,.3)}.gpu-info-panel p{margin:0 0 8px;color:#4b5563}.gpu-info-panel ul,.gpu-info-panel ol{margin:0 0 8px;padding-left:20px;color:#6b7280}.gpu-info-panel li{margin-bottom:2px}.gpu-info-panel code{background:#0000001a;padding:1px 4px;border-radius:3px;font-size:10px}.gpu-info-panel .gpu-note{font-style:italic;color:#9ca3af;margin-bottom:0}.chat-widget.dark .gpu-info-panel p{color:#d1d5db}.chat-widget.dark .gpu-info-panel ul,.chat-widget.dark .gpu-info-panel ol{color:#9ca3af}.chat-widget.dark .gpu-info-panel code{background:#ffffff1a}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.welcome-message{text-align:center;padding:20px;font-size:14px;line-height:1.5}.welcome-message p{margin:0 0 8px}.suggested-prompts{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}.suggested-prompt-btn{padding:6px 14px;border:1px solid #d1d5db;border-radius:16px;background:#fff;color:#4b5563;font-size:13px;cursor:pointer;transition:all .15s}.suggested-prompt-btn:hover:not(:disabled){border-color:#6366f1;color:#6366f1;background:#6366f10d}.suggested-prompt-btn:disabled{opacity:.5;cursor:not-allowed}.chat-widget.dark .suggested-prompt-btn{background:#374151;border-color:#4b5563;color:#d1d5db}.chat-widget.dark .suggested-prompt-btn:hover:not(:disabled){border-color:#818cf8;color:#818cf8;background:#818cf81a}.message{display:flex;max-width:85%}.message.user{align-self:flex-end}.message.assistant{align-self:flex-start}.message-content{padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.4;word-wrap:break-word}.message.user .message-content{border-bottom-right-radius:4px}.message.assistant .message-content{border-bottom-left-radius:4px}.message.assistant .message-content p{margin:0 0 8px}.message.assistant .message-content p:last-child{margin-bottom:0}.message.assistant .message-content ul,.message.assistant .message-content ol{margin:4px 0 8px;padding-left:20px}.message.assistant .message-content li{margin-bottom:2px}.message.assistant .message-content code{background:#00000014;padding:1px 5px;border-radius:4px;font-size:13px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.message.assistant .message-content pre{background:#00000014;padding:8px 10px;border-radius:6px;overflow-x:auto;margin:4px 0 8px}.message.assistant .message-content pre code{background:none;padding:0;font-size:12px}.message.assistant .message-content strong{font-weight:600}.message.assistant .message-content blockquote{border-left:3px solid rgba(99,102,241,.4);margin:4px 0 8px;padding:2px 0 2px 10px;color:inherit;opacity:.85}.chat-widget.dark .message.assistant .message-content code{background:#ffffff1a}.chat-widget.dark .message.assistant .message-content pre{background:#ffffff14}.message-actions{display:flex;gap:4px;margin-top:6px;opacity:0;transition:opacity .15s}.message:hover .message-actions,.message-actions:focus-within{opacity:1}@media(hover:none){.message-actions{opacity:1}}.rate-btn,.msg-action-btn{width:24px;height:24px;padding:3px;border:none;background:none;color:#9ca3af;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s;opacity:.6}.rate-btn:hover,.msg-action-btn:hover:not(:disabled){opacity:1;background:#0000000d}.rate-btn.active{opacity:1;color:#6366f1}.msg-action-btn:disabled{opacity:.3;cursor:not-allowed}.msg-action-btn--delete:hover:not(:disabled){color:#ef4444}.rate-btn svg,.msg-action-btn svg{width:14px;height:14px}.chat-widget.dark .rate-btn:hover,.chat-widget.dark .msg-action-btn:hover:not(:disabled){background:#ffffff14}.edited-marker{display:inline-block;font-size:11px;color:#9ca3af;font-style:italic;margin-top:4px}.edit-inline{display:flex;flex-direction:column;gap:6px;width:100%}.edit-input{width:100%;padding:6px 10px;border:1px solid #6366f1;border-radius:8px;font-size:14px;font-family:inherit;background:#fff;color:#1f2937;box-sizing:border-box}.edit-input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 2px #6366f133}.chat-widget.dark .edit-input{background:#1f2937;color:#f3f4f6;border-color:#818cf8}.chat-widget.dark .edit-input:focus{border-color:#a5b4fc;box-shadow:0 0 0 2px #818cf833}.edit-actions{display:flex;gap:6px;align-items:center}.edit-save-btn,.edit-save-secondary-btn,.edit-cancel-btn{min-width:72px;padding:5px 12px;border:1px solid transparent;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;box-shadow:0 1px 1px #11182726}.edit-save-btn{background:#4f46e5;border-color:#4338ca;color:#fff}.edit-save-btn:hover:not(:disabled){background:#4338ca}.edit-save-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.edit-save-secondary-btn{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}.edit-save-secondary-btn:hover:not(:disabled){background:#e0e7ff}.edit-save-secondary-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.edit-cancel-btn{background:#f3f4f6;color:#111827;border:1px solid #d1d5db}.edit-cancel-btn:hover{background:#e5e7eb;color:#111827}.chat-widget.dark .edit-save-btn{background:#6366f1;border-color:#818cf8}.chat-widget.dark .edit-save-btn:hover:not(:disabled){background:#4f46e5;border-color:#6366f1}.chat-widget.dark .edit-save-secondary-btn{background:#312e81;color:#e0e7ff;border-color:#4338ca}.chat-widget.dark .edit-save-secondary-btn:hover:not(:disabled){background:#3730a3}.chat-widget.dark .edit-cancel-btn{background:#374151;color:#f3f4f6;border-color:#4b5563}.chat-widget.dark .edit-cancel-btn:hover{background:#4b5563;color:#fff}.retry-btn{display:block;background:none;border:1px solid currentColor;color:inherit;padding:4px 14px;border-radius:12px;font-size:12px;cursor:pointer;margin-top:8px;opacity:.7;transition:opacity .2s}.retry-btn:hover:not(:disabled){opacity:1}.retry-btn:disabled{cursor:not-allowed;opacity:.4}.cancel-btn{background:none;border:none;color:#6b7280;font-size:12px;cursor:pointer;padding:2px 8px;margin-top:4px;text-decoration:underline;opacity:.7;transition:opacity .2s}.cancel-btn:hover{opacity:1}.chat-link{color:#6366f1;text-decoration:underline;word-break:break-all}.chat-link:hover{color:#4f46e5;text-decoration:underline}.message.user .chat-link{color:#eef2ff}.message.user .chat-link:hover{color:#fff}.message-content.typing{display:flex;gap:4px;padding:12px 16px}.message-content.typing span{width:8px;height:8px;border-radius:50%;background:#6366f1;animation:typing 1.4s infinite ease-in-out}.message-content.typing span:nth-child(1){animation-delay:-.32s}.message-content.typing span:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.streaming-cursor{display:inline-block;animation:cursorBlink .8s step-end infinite;color:#6366f1;margin-left:1px}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.chat-input-area{position:relative}.chat-input-container{padding:12px;display:flex;gap:8px}.chat-input-container input{flex:1;padding:10px 14px;border-radius:24px;font-size:14px;transition:border-color .2s}.chat-input-container input::placeholder{color:#9ca3af}.chat-input-container button{width:40px;height:40px;border-radius:50%;border:none;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.chat-input-container button:hover:not(:disabled){transform:scale(1.05)}.chat-input-container button:disabled{opacity:.5;cursor:not-allowed}.chat-input-container button svg{width:18px;height:18px}.char-counter{display:block;font-size:11px;text-align:right;padding:0 16px 6px;color:#9ca3af}.char-counter--warn{color:#f59e0b}.char-counter--limit{color:#ef4444;font-weight:600}.chat-toggle:focus-visible,.export-btn:focus-visible,.clear-btn:focus-visible,.stream-toggle-btn:focus-visible,.close-btn:focus-visible,.mode-btn:focus-visible,.gpu-info-btn:focus-visible,.model-option:focus-visible,.rate-btn:focus-visible,.msg-action-btn:focus-visible,.edit-save-btn:focus-visible,.edit-save-secondary-btn:focus-visible,.edit-cancel-btn:focus-visible,.edit-input:focus-visible,.suggested-prompt-btn:focus-visible,.chat-input-container button:focus-visible,.chat-input-container input:focus-visible{outline:2px solid #bfdbfe;outline-offset:2px}@media(max-width:480px){.chat-widget{bottom:80px;right:16px}.chat-window{width:calc(100vw - 32px);height:calc(100vh - 180px);max-height:500px;bottom:0;right:-8px;top:auto}.chat-toggle{width:50px;height:50px}}.layout{display:flex;flex-direction:column;min-height:100vh;position:relative;isolation:isolate;background:radial-gradient(1000px 620px at 88% -8%,var(--glow-1),transparent 60%),radial-gradient(820px 560px at -8% 2%,var(--glow-2),transparent 55%),var(--bg);background-attachment:fixed}.layout main{display:flex;flex-direction:column;align-items:center;flex:1 0 auto;width:100%;padding:calc(var(--nav-h) + 32px) 24px 88px}@media(max-width:768px){.layout main{padding:30px 16px 120px}}
