:root{--bg:#fafafa;--surface:#fff;--soft:#f4f4f5;--text:#0a0a0a;--muted:#71717a;--faint:#a1a1aa;--border:#e4e4e7;--accent:#4f46e5;--accent-2:#db2777;--shadow:0 1px 2px #0000000a, 0 8px 24px -8px #00000014;--sans:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono", ui-monospace, Menlo, monospace;--col:720px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0a0a0b;--surface:#141416;--soft:#1c1c1f;--text:#fafafa;--muted:#a1a1aa;--faint:#71717a;--border:#27272a;--accent:#818cf8;--accent-2:#f472b6;--shadow:0 1px 2px #0000004d, 0 8px 24px -8px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow:hidden}a{color:inherit}.ic{place-items:center;display:inline-grid}.ic svg{width:100%;height:100%}.glow{pointer-events:none;filter:blur(20px);background:radial-gradient(40% 50% at 30% 40%,#818cf838,#0000 70%),radial-gradient(35% 45% at 70% 30%,#f472b629,#0000 70%),radial-gradient(30% 40% at 55% 70%,#2dd4bf1f,#0000 70%);height:70vh;transition:opacity .6s;position:fixed;inset:-20vh -10vw auto}body.chatting .glow{opacity:.35}.topbar{z-index:5;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:fixed;inset:0 0 auto}body.chatting .topbar{background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.brand{align-items:center;gap:10px;font-size:14px;font-weight:600;text-decoration:none;display:flex}body.landing .brand{visibility:hidden}.social{gap:4px;display:flex}.social a{width:36px;height:36px;color:var(--muted);border-radius:10px;place-items:center;transition:background .15s,color .15s;display:grid}.social a:hover{background:var(--soft);color:var(--text)}.social .ic{width:18px;height:18px}.avatar{color:#fff;letter-spacing:-.02em;background:linear-gradient(135deg,#6366f1,#a855f7 50%,#ec4899);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.avatar.sm{width:30px;height:30px;font-size:11px}.avatar.xl{width:112px;height:112px;margin:0 auto 22px;font-size:38px;animation:6s ease-in-out infinite float;box-shadow:0 20px 50px -12px #6366f18c,inset 0 -6px 16px #0000001f}@keyframes float{50%{transform:translateY(-6px)}}.shell{flex-direction:column;align-items:center;height:100dvh;padding:0 16px;display:flex;position:relative}body.landing .shell{justify-content:center;padding-top:64px;padding-bottom:6vh;overflow-y:auto}.hero{text-align:center;max-width:860px;animation:.6s cubic-bezier(.2,.8,.2,1) both rise}.hello{color:var(--muted);margin:0 0 6px;font-size:18px;font-weight:500}h1{letter-spacing:-.045em;margin:0;font-size:clamp(40px,7vw,68px);font-weight:700;line-height:1.02}.sub{max-width:460px;color:var(--muted);margin:16px auto 0;font-size:16px}body.chatting .hero{display:none}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.thread{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;width:100%;padding:84px 0 24px;display:none;overflow-y:auto}body.chatting .thread{display:block}.thread>*{max-width:var(--col);margin-left:auto;margin-right:auto}.msg{overflow-wrap:anywhere;margin-bottom:26px;animation:.35s cubic-bezier(.2,.8,.2,1) both rise}.msg.user{justify-content:flex-end;display:flex}.msg.user .bubble{background:var(--soft);border:1px solid var(--border);border-radius:20px;max-width:80%;padding:10px 16px}.msg.bot{grid-template-columns:30px minmax(0,1fr);gap:14px;display:grid}.msg.bot .body{min-width:0;padding-top:3px}.msg p{margin:0 0 10px}.msg p:last-child,.msg ul:last-child{margin-bottom:0}.msg ul{margin:4px 0 10px;padding-left:20px}.msg li{margin:4px 0}.msg li::marker{color:var(--faint)}.msg strong{font-weight:600}.msg .body a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}.tag{color:var(--muted);background:var(--soft);border-radius:999px;margin-top:10px;padding:4px 10px;font-size:12px;display:inline-block}.sources{color:var(--faint);flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;font-size:12px;display:flex}.sources>span:first-child{margin-right:2px}.sources .src{border:1px solid var(--border);color:var(--muted);background:var(--surface);border-radius:999px;padding:3px 9px}.dots{gap:5px;padding:10px 0;display:inline-flex}.dots i{background:var(--faint);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite bounce}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}.rich{margin-top:14px}.card-row{scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--border) transparent;gap:12px;margin-right:-16px;padding:2px 2px 12px;display:flex;overflow-x:auto}.pcard{scroll-snap-align:start;color:#fff;min-height:330px;box-shadow:var(--shadow);border-radius:22px;flex-direction:column;flex:0 0 250px;padding:18px;transition:transform .2s;display:flex;position:relative;overflow:hidden}.pcard:hover{transform:translateY(-3px)}.pcard:after{content:"";pointer-events:none;background:#ffffff1f;border-radius:50%;width:220px;height:220px;position:absolute;bottom:-90px;right:-70px}.pcard-kind{opacity:.75;font-size:12px;font-weight:500}.pcard h3{letter-spacing:-.03em;margin:4px 0 10px;font-size:24px;line-height:1.1}.pcard p{opacity:.88;-webkit-line-clamp:6;-webkit-box-orient:vertical;margin:0 0 14px;font-size:13.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.pcard-tech{flex-wrap:wrap;gap:5px;margin-top:auto;margin-bottom:14px;display:flex}.pcard-tech span{font:11px/1 var(--mono);background:#ffffff29;border-radius:6px;padding:5px 7px}.pcard-links{z-index:1;gap:8px;display:flex;position:relative}.pcard-tech+.pcard-links{margin-top:0}.pcard p+.pcard-links{margin-top:auto}.msg .pcard-links a{color:#fff;background:#ffffff29;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:600;text-decoration:none}.msg .pcard-links a.primary{color:#111;background:#fff}.pcard-links .nda{opacity:.7;font-size:12px}.theme-concert{background:linear-gradient(160deg,#7c3aed,#db2777 70%,#f59e0b)}.theme-subqc{background:linear-gradient(160deg,#0f172a,#0e7490)}.theme-council{background:linear-gradient(160deg,#1c1917,#92400e)}.theme-map{background:linear-gradient(160deg,#065f46,#10b981)}.theme-trip{background:linear-gradient(160deg,#0369a1,#38bdf8)}.theme-runner{background:linear-gradient(160deg,#c2410c,#fb923c)}.theme-kinwell{background:linear-gradient(160deg,#0f766e,#14b8a6 55%,#fbbf24)}.theme-rag{background:linear-gradient(160deg,#4f46e5,#a855f7 60%,#ec4899)}.theme-scrub{background:linear-gradient(160deg,#312e81,#6366f1)}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline li{border:1px solid var(--border);background:var(--surface);border-radius:16px;grid-template-columns:150px minmax(0,1fr);gap:16px;margin-bottom:10px;padding:16px 18px;display:grid}.when{font:12px/1.6 var(--mono);color:var(--muted);padding-top:2px}.what strong{font-size:15.5px}.at{color:var(--muted);font-size:14px}.at a{color:var(--accent);text-decoration:none}.what p{color:var(--muted);margin:6px 0 0;font-size:14px}.skills{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.skills section{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:14px 16px}.skills h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px;font-size:12px;font-weight:600}.chips{flex-wrap:wrap;gap:6px;display:flex}.chips span{background:var(--soft);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:13px}.chips .cert{background:linear-gradient(135deg,#fb923c26,#facc1526);border-color:#fb923c66}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px;display:grid}.stats div{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:14px 16px}.stats b{letter-spacing:-.04em;background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:30px;line-height:1.1;display:block}.stats span{color:var(--muted);margin-top:4px;font-size:12.5px;line-height:1.35;display:block}.edu{border:1px solid var(--border);background:var(--surface);border-radius:16px;margin:0;padding:0;list-style:none}.edu li{flex-direction:column;padding:12px 16px;display:flex}.edu li+li{border-top:1px solid var(--border)}.edu strong{font-size:14.5px}.edu span{color:var(--muted);font-size:13px}.about-h{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 6px;font-size:12px;font-weight:600}.about-p{margin:0;font-size:14px}.awards{margin:0;padding-left:18px;font-size:14px}.awards li{margin:4px 0}.contact{gap:8px;max-width:440px;display:grid}.contact-row{border:1px solid var(--border);background:var(--surface);border-radius:16px;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;transition:border-color .15s,transform .15s;display:grid}.contact-row:hover{border-color:var(--accent);transform:translate(2px)}.contact-row .ci{background:var(--soft);border-radius:12px;width:40px;height:40px;padding:10px}.contact-row b{font-size:14px;display:block}.contact-row small{color:var(--muted);font-size:12.5px}.contact-row .arrow{color:var(--faint)}.dock{flex-direction:column;gap:14px;width:100%;max-width:640px;margin-top:34px;animation:.6s cubic-bezier(.2,.8,.2,1) .1s both rise;display:flex}body.chatting .dock{max-width:var(--col);padding-bottom:calc(14px + env(safe-area-inset-bottom));gap:10px;margin-top:0}body.chatting .quick{order:-1}form{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:8px;padding:6px 6px 6px 20px;transition:border-color .15s,box-shadow .15s;display:flex}form:focus-within{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));box-shadow:var(--shadow), 0 0 0 4px color-mix(in srgb, var(--accent) 12%, transparent)}input{min-width:0;color:var(--text);font:16px var(--sans);background:0 0;border:0;outline:0;flex:1;padding:10px 0}input::placeholder{color:var(--faint)}#send{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#a855f7);border:0;border-radius:50%;flex:none;place-items:center;width:42px;height:42px;transition:transform .15s,opacity .15s;display:grid}#send:hover{transform:scale(1.06)}#send:disabled{opacity:.35;cursor:default;transform:none}#send svg{width:18px;height:18px}.quick{justify-content:center;gap:10px;display:flex}.quick button{border:1px solid var(--border);background:var(--surface);min-width:96px;color:var(--text);font:500 13.5px/1 var(--sans);cursor:pointer;border-radius:18px;flex-direction:column;align-items:center;gap:6px;padding:14px 10px 12px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;box-shadow:0 1px 2px #00000008}.quick button:hover{border-color:var(--faint);box-shadow:var(--shadow);transform:translateY(-2px)}.quick .ic{width:20px;height:20px}.quick [data-id=me] .ic{color:#0d9488}.quick [data-id=experience] .ic{color:#2563eb}.quick [data-id=projects] .ic{color:#9333ea}.quick [data-id=skills] .ic{color:#db2777}.quick [data-id=contact] .ic{color:#d97706}body.chatting .quick{scrollbar-width:none;justify-content:flex-start;gap:6px;overflow-x:auto}body.chatting .quick button{white-space:nowrap;border-radius:999px;flex-direction:row;flex:none;min-width:0;padding:7px 12px;font-size:13px}body.chatting .quick .ic{width:15px;height:15px}.fine{text-align:center;color:var(--faint);margin:0;font-size:12px}@media (width<=640px){.avatar.xl{width:88px;height:88px;margin-bottom:18px;font-size:30px}.hello{font-size:16px}.sub{font-size:15px}.dock{margin-top:26px}body.landing .quick{grid-template-columns:repeat(3,1fr);display:grid}body.landing .quick button{min-width:0}.timeline li{grid-template-columns:1fr;gap:4px}.stats b{font-size:24px}.msg.bot{grid-template-columns:1fr;gap:8px}.msg.bot>.avatar{display:none}.pcard{flex-basis:78%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
