main{--text: #2D2633;--muted: #655D6C;--accent: #8552A0;--border: #DAD2E3;background:#f8f6fa;color:var(--text);font-family:DM Sans,sans-serif;min-height:100vh}main *,main *:before,main *:after{box-sizing:border-box}main p,main li,main a,main dt,main dd,main span,main summary{font-family:inherit}.container{max-width:1680px;margin:0 auto;padding:0 clamp(24px,3.5vw,56px)}main a{color:var(--accent);text-decoration:none}main a:hover{text-decoration:underline;text-underline-offset:5px}main a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}main section{scroll-margin-top:96px;margin:0}#hero{padding:140px 0 64px;display:grid;grid-template-columns:1fr 200px;gap:56px;align-items:center}.eyebrow,.entry-meta,.entry-type,.tags,.project-number{font-family:IBM Plex Mono,monospace}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:.85rem}h1{font-family:Cormorant Garamond,serif;font-size:clamp(3.4rem,7vw,6rem);font-weight:600;letter-spacing:-.04em;margin:8px 0 16px;line-height:1.05}h1 span{color:var(--accent)}.intro{max-width:62ch;font-size:1rem;line-height:1.7;color:var(--muted)}.contact-links{display:flex;flex-wrap:wrap;gap:22px;margin-top:20px;font-size:.8rem}.portrait{width:200px;height:245px;-o-object-fit:cover;object-fit:cover;border-radius:3px;filter:grayscale(25%)}.resume-section{padding:48px 0 24px;border-top:1px solid var(--border)}.section-heading{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:12px;margin-bottom:28px}h2{font-family:Cormorant Garamond,serif;font-size:2rem;font-weight:600;letter-spacing:-.02em}.section-heading p,.section-heading a{font-size:.75rem;color:var(--muted)}.resume-entry{display:grid;grid-template-columns:210px minmax(0,1fr);gap:40px;padding:0 0 36px}.entry-meta{color:var(--muted);font-size:.72rem;line-height:1.8;padding-top:3px}.entry-type{display:inline-block;color:var(--accent);font-size:.65rem;margin-top:10px;border:1px solid #DAD2E3;padding:2px 7px;border-radius:2px;background:#efebf5}h3{font-family:DM Sans,sans-serif;font-size:1.05rem;font-weight:600;line-height:1.5}.organization{font-size:.88rem;margin:3px 0 10px}.organization span{color:var(--muted)}.entry-content ul:not(.metrics){padding-left:18px;margin:10px 0 0}.entry-content li,.entry-content p{font-size:.88rem;line-height:1.75}.entry-content li{color:var(--muted);padding-left:3px;margin-bottom:5px}.project-entry{background:#efebf5;padding:24px;border-radius:6px;margin-bottom:16px}.project-entry+.project-entry{border-top:1px solid #DAD2E3;padding-top:26px}.project-number{display:block;font-size:1.6rem;color:var(--accent);margin-bottom:10px}.tags{display:flex;gap:7px 14px;flex-wrap:wrap;margin:8px 0 12px;font-size:.68rem;color:var(--accent)}.project-description{color:var(--muted)}.metrics{list-style:none;display:flex;flex-wrap:wrap;gap:8px 20px;margin:15px 0;padding:0}.entry-content .metrics li{color:var(--text);font-size:.76rem;border-left:2px solid var(--accent);padding-left:9px;margin:0}.project-links{display:flex;flex-wrap:wrap;gap:20px;font-size:.77rem}.other-projects{border-top:1px solid var(--border);padding:20px 0}summary{cursor:pointer;font-size:.88rem}summary span{color:var(--muted);font-size:.72rem;margin-left:10px}.other-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding-top:25px}.other-grid article{background:#efebf5;padding:20px;border-radius:6px}.other-grid p{font-size:.83rem;color:var(--muted);line-height:1.7;margin:8px 0}.other-grid a{font-size:.75rem}.education-detail{color:var(--muted);margin-top:6px}.skill-list>div{display:grid;grid-template-columns:210px 1fr;gap:40px;padding-bottom:15px;font-size:.85rem;line-height:1.75}.skill-list dt{color:var(--text)}.skill-list dd{color:var(--muted);margin:0}.skill-list>div:last-child{padding-bottom:0}footer{border-top:1px solid var(--border);padding:28px 0 40px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.72rem}@media (max-width: 650px){.container{padding:0 22px}#hero{grid-template-columns:1fr 88px;gap:18px;padding-top:110px;padding-bottom:35px}.portrait{width:88px;height:112px}.eyebrow{font-size:.6rem}.intro{font-size:1.05rem}.resume-entry{grid-template-columns:1fr;gap:9px}.entry-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.entry-type,.project-number{margin:0}.project-number{font-size:1rem}.other-grid{grid-template-columns:1fr}summary span{display:block;margin:8px 0 0}.skill-list>div{grid-template-columns:1fr;gap:3px}}@media print{main{--text: #111;--muted: #444;--accent: #55401b;--border: #ccc;background:#fff}.site-header,.portrait,.other-projects{display:none}.container{max-width:none;padding:0}#hero{padding:0 0 20px;display:block}.resume-entry{-moz-column-break-inside:avoid;break-inside:avoid}main a{color:#111}}.project-card{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#efebf5;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.project-card:hover,.project-card:focus-within{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 12px 28px #8552a018}.project-entry{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.6fr);padding:0;margin-bottom:22px}.project-entry+.project-entry{padding-top:0}.project-preview{display:block;min-width:0;color:var(--accent)}main a.project-preview:hover{text-decoration:none}.project-body{padding:26px;min-width:0}.entry-content .project-date{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.68rem;margin-bottom:8px}.project-visual{position:relative;overflow:hidden;min-height:245px;height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,#ddd0ee,transparent 75%),#e7e0ef;padding:24px}.visual-center{position:relative;z-index:1;text-align:center;width:100%}.visual-center strong,.visual-center small{display:block;font-family:IBM Plex Mono,monospace}.visual-center strong{color:#67417e;font-size:.68rem;letter-spacing:.1em;line-height:1.7}.visual-center small{color:#655d6c;font-size:.6rem;margin-top:6px;line-height:1.7}.visual-icon{display:block;font-size:3rem;margin-bottom:16px;transition:transform .4s ease}.project-card:hover .visual-icon{transform:scale(1.1) rotate(-6deg)}.visual-landfall{background:radial-gradient(ellipse,#d4deed,#e7e6f2)}.radar-rings{position:absolute;width:220px;height:220px;border:1px solid #8552a02b;border-radius:50%;box-shadow:0 0 0 30px #8552a00a,0 0 0 60px #8552a008}.visual-anti-brainrot{background:repeating-linear-gradient(0deg,transparent,transparent 28px,#8552a00b 28px,#8552a00b 29px),#e9e2ef}.scanline{position:absolute;left:0;right:0;top:0;height:2px;background:#8552a060;animation:scan 4s ease-in-out infinite}@keyframes scan{0%,to{top:0}50%{top:calc(100% - 2px)}}.chat-preview{width:185px;max-width:100%;margin:0 auto 22px;display:grid;gap:8px}.chat-preview span{text-align:left;font-size:.72rem;padding:9px 12px;background:#f8f6fa;border-radius:10px 10px 10px 2px;box-shadow:0 2px 5px #2d263308}.chat-preview span:nth-child(2){background:#8552a0;color:#fff;border-radius:10px 10px 2px;margin-left:15px}.chat-preview .typing-dots{color:var(--accent);width:-moz-fit-content;width:fit-content;letter-spacing:4px}.project-card:hover .typing-dots{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.4}}.other-grid{gap:22px;padding-top:18px}.other-grid article{padding:0}.other-grid .project-body{display:flex;flex-direction:column;align-items:flex-start;flex:1}.compact-card{display:flex;flex-direction:column}.compact-card .project-visual{height:210px;min-height:210px}.compact-card .project-links{margin-top:auto;padding-top:14px}.photobooth-strip{width:52px;padding:5px 5px 14px;background:#fff;transform:rotate(-8deg);margin:0 auto 16px;display:grid;gap:4px;box-shadow:0 5px 14px #2d263320;transition:transform .3s ease}.photobooth-strip span{height:27px;background:linear-gradient(135deg,#b9a0c9,#6c567b)}.project-card:hover .photobooth-strip{transform:rotate(3deg)}.bars{height:80px;display:flex;gap:5px;align-items:flex-end;justify-content:center;margin-bottom:20px}.bars span{width:12px;background:#8552a0;border-radius:2px 2px 0 0;transform-origin:bottom}.project-card:hover .bars span{animation:bars 1s var(--bar-delay) ease-in-out infinite alternate}@keyframes bars{to{transform:scaleY(.5)}}.visual-wordmark{display:block;font-family:Cormorant Garamond,serif;font-size:2.4rem;color:var(--accent);margin-bottom:10px}@media (max-width: 650px){.project-entry{grid-template-columns:1fr}.project-entry .project-visual{height:210px;min-height:210px}.project-body{padding:22px}}@media (prefers-reduced-motion: reduce){.project-card,.visual-icon,.photobooth-strip{transition:none}.project-card:hover,.project-card:focus-within{transform:none}.scanline,.project-card:hover .typing-dots,.project-card:hover .bars span{animation:none}}@media print{.project-preview{display:none}.project-entry{display:block;-moz-column-break-inside:avoid;break-inside:avoid}.project-card{box-shadow:none;transform:none}}.intro{font-size:1.35rem;line-height:1.65}h2{font-size:2.9rem}h3{font-size:1.35rem}.entry-content li,.entry-content p,.other-grid p,.skill-list>div{font-size:1.1rem;line-height:1.8}.entry-meta,.entry-content .project-date{font-size:.92rem}.entry-type,.tags{font-size:.85rem}.entry-content .metrics li{font-size:.95rem}.organization{font-size:1.05rem}.project-links,.other-grid a,.contact-links,.section-heading p,.section-heading a,summary{font-size:1.05rem}summary span,footer{font-size:.92rem}#more-projects{scroll-margin-top:130px}#more-projects:target{outline:2px solid var(--accent);outline-offset:6px}.entries .resume-entry+.resume-entry{border-top:1px solid #E9E3EF;padding-top:36px}.other-projects:not([open]) .other-grid{display:none}.project-body{padding:30px}.project-visual{min-height:280px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.revealed{opacity:1;transform:none}@media (max-width: 650px){.container{padding:0 20px}.intro{font-size:1.1rem}h2{font-size:2.3rem}.project-body{padding:22px}.entries .resume-entry+.resume-entry{padding-top:26px}}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}}@media print{.reveal{opacity:1;transform:none}}.site-header{position:fixed;inset:0 auto 0 0;z-index:100;width:210px;padding:48px 24px;display:flex;flex-direction:column;align-items:stretch;background:#efebf5;border-right:1px solid #DAD2E3;overflow-y:auto}.site-nav-brand{font-family:Cormorant Garamond,serif;font-weight:700;font-size:2rem;color:#2d2633;text-decoration:none;align-self:flex-start;margin-bottom:52px}.site-nav-brand span{color:#8552a0}.nav-label{font-family:IBM Plex Mono,monospace;color:#655d6c;text-transform:uppercase;font-size:.6rem;letter-spacing:.1em;padding-left:12px;margin-bottom:14px}.site-nav-links{display:flex;flex-direction:column;gap:6px;list-style:none;padding:0;margin:0}.site-nav-links a{display:block;font-family:DM Sans,sans-serif;font-size:1rem;text-decoration:none;color:#655d6c;padding:10px 12px;border-left:2px solid transparent;border-radius:0 4px 4px 0;transition:background .2s ease,color .2s ease}.site-nav-links a:hover{color:#8552a0;background:#f8f6fa}.site-nav-links a.active{color:#8552a0;background:#f8f6fa;border-left-color:#8552a0;font-weight:600}.site-nav-cta{font-family:IBM Plex Mono,monospace;font-size:.7rem;color:#8552a0;text-decoration:none;border:1px solid #8552A0;padding:10px 16px;border-radius:3px;margin-top:32px;text-align:center}.site-nav-cta:hover{background:#8552a0;color:#f8f6fa}.site-header a:focus-visible{outline:2px solid #8552A0;outline-offset:3px}@media (min-width: 901px){main{margin-left:210px}main #hero{padding-top:64px}main section{scroll-margin-top:32px}}@media (max-width: 900px){.site-header{inset:0 0 auto;width:auto;padding:12px 22px 8px;display:grid;grid-template-columns:1fr auto;gap:10px;background:#f8f6faf7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:0;border-bottom:1px solid #DAD2E3;overflow:visible}.site-nav-brand{font-size:1.4rem;margin:0}.nav-label{display:none}.site-nav-cta{grid-column:2;grid-row:1;margin:0;padding:5px 10px;font-size:.6rem}.site-nav{grid-column:1 / -1;min-width:0;overflow-x:auto;padding:3px 0}.site-nav-links{flex-direction:row;gap:4px;width:-moz-max-content;width:max-content}.site-nav-links a{padding:7px 10px;font-size:.72rem;border-left:0;border-bottom:2px solid transparent;border-radius:3px 3px 0 0}.site-nav-links a.active{border-bottom-color:#8552a0;background:#efebf5}main section{scroll-margin-top:125px}main #hero{padding-top:145px}}@media (prefers-reduced-motion: reduce){.site-nav-links a{transition:none}}@media print{.site-header{display:none}main{margin-left:0}main #hero{padding-top:0}}.ask-section.svelte-by82sp{padding:44px;margin:0 0 56px;border:1px solid var(--border);background:#efebf5;border-radius:20px}.ask-header.svelte-by82sp{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:36px;align-items:end;margin-bottom:28px}.ask-eyebrow.svelte-by82sp{font-family:IBM Plex Mono,monospace;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;margin-bottom:6px}h2.svelte-by82sp{color:#59316f;font-size:3rem}.ask-intro.svelte-by82sp{color:var(--muted);font-size:1.15rem;line-height:1.75}.question-chips.svelte-by82sp{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}button.svelte-by82sp,input.svelte-by82sp{font:inherit}button.svelte-by82sp{cursor:pointer}.question-chips.svelte-by82sp button:where(.svelte-by82sp){animation:svelte-by82sp-chip-in .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 60ms);text-align:left;border:1px solid #CDBBDC;border-radius:28px;background:#fdfcfe;color:var(--text);padding:11px 18px;font-size:1rem;line-height:1.4;transition:background .2s,border-color .2s,transform .2s}.question-chips.svelte-by82sp button:where(.svelte-by82sp):hover:not(:disabled){border-color:var(--accent);background:#e2d6ec;transform:translateY(-2px);box-shadow:0 6px 14px #59316f14}.question-chips.svelte-by82sp button:where(.svelte-by82sp):active:not(:disabled){transform:scale(.97)}.question-chips.svelte-by82sp button.asked:where(.svelte-by82sp){border-color:#b79bcb;background:#ede4f4}button.svelte-by82sp:focus-visible,input.svelte-by82sp:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button.svelte-by82sp:disabled{opacity:.55;cursor:default}.chat-window.svelte-by82sp{background:#fdfcfe;border:1px solid #DCD0E7;border-radius:14px;overflow:hidden;box-shadow:0 10px 30px #59316f0d;transition:box-shadow .4s ease,border-color .4s ease}.chat-window.active.svelte-by82sp{border-color:#c6aeda;box-shadow:0 14px 40px #8552a026}.chat-bar.svelte-by82sp{display:flex;align-items:center;gap:12px;padding:14px 22px;border-bottom:1px solid #EEE7F3;background:linear-gradient(90deg,#f7f2fb,#fdfcfe)}.chat-name.svelte-by82sp{font-weight:600;font-size:1rem}.chat-status.svelte-by82sp{font-family:IBM Plex Mono,monospace;color:var(--muted);font-size:.78rem;display:flex;align-items:center;gap:7px;min-height:1.2em}.status-dot.svelte-by82sp{width:8px;height:8px;border-radius:50%;background:#62b587;box-shadow:0 0 0 3px #62b58726}.status-dot.typing.svelte-by82sp{background:var(--accent);box-shadow:0 0 0 3px #8552a02e;animation:svelte-by82sp-glow 1s ease-in-out infinite}.ellipsis.svelte-by82sp i:where(.svelte-by82sp){font-style:normal;animation:svelte-by82sp-blink 1.2s infinite}.ellipsis.svelte-by82sp i:where(.svelte-by82sp):nth-child(2){animation-delay:.2s}.ellipsis.svelte-by82sp i:where(.svelte-by82sp):nth-child(3){animation-delay:.4s}.avatar.pulsing.svelte-by82sp{animation:svelte-by82sp-ring 1.4s ease-out infinite}.word.svelte-by82sp{animation:svelte-by82sp-ink .45s ease-out both}.thread.svelte-by82sp{display:flex;flex-direction:column;gap:16px;padding:26px;min-height:260px;max-height:460px;overflow-y:auto}.message.svelte-by82sp{display:flex;gap:12px;align-items:flex-start}.message.user.svelte-by82sp{animation:svelte-by82sp-pop-right .4s cubic-bezier(.2,.9,.3,1.2) both}.message.bot.svelte-by82sp{animation:svelte-by82sp-pop-left .45s cubic-bezier(.2,.9,.3,1.2) .12s both}.message.svelte-by82sp p:where(.svelte-by82sp){font-size:1.08rem;line-height:1.75;overflow-wrap:anywhere}.message.user.svelte-by82sp{justify-content:flex-end}.message.user.svelte-by82sp p:where(.svelte-by82sp){background:var(--accent);color:#fff;padding:11px 18px;border-radius:18px 18px 4px;max-width:78%}.avatar.svelte-by82sp{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e2d6ec;color:#59316f;font-family:Cormorant Garamond,serif;font-weight:700;font-size:1rem}.bubble.svelte-by82sp,.intro-message.svelte-by82sp p:where(.svelte-by82sp){background:#f3eff7;padding:13px 18px;border-radius:4px 18px 18px;max-width:85%;color:var(--text)}.intro-message.svelte-by82sp p:where(.svelte-by82sp){color:var(--muted)}.bubble.svelte-by82sp a:where(.svelte-by82sp){display:inline-block;font-size:.92rem;margin-top:8px}.caret.svelte-by82sp{display:inline-block;width:2px;height:1.1em;margin-left:2px;vertical-align:text-bottom;background:var(--accent);animation:svelte-by82sp-blink 1s steps(1) infinite}.thinking.svelte-by82sp{display:inline-flex;gap:5px;padding:8px 2px}.thinking.svelte-by82sp i:where(.svelte-by82sp){width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.35;animation:svelte-by82sp-bounce 1.2s ease-in-out infinite}.thinking.svelte-by82sp i:where(.svelte-by82sp):nth-child(2){animation-delay:.15s}.thinking.svelte-by82sp i:where(.svelte-by82sp):nth-child(3){animation-delay:.3s}form.svelte-by82sp{display:flex;gap:10px;padding:14px;border-top:1px solid #E6DDEE;background:#f8f6fa}input.svelte-by82sp{min-width:0;flex:1;padding:14px 16px;border-radius:10px;border:1px solid #CDBBDC;background:#fdfcfe;color:var(--text);font-size:1.05rem}form.svelte-by82sp button:where(.svelte-by82sp){padding:12px 22px;background:var(--accent);color:#fff;border:0;border-radius:10px;font-size:1rem}.search-note.svelte-by82sp{color:var(--muted);font-size:.88rem;line-height:1.6;margin-top:14px}.visually-hidden.svelte-by82sp{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@keyframes svelte-by82sp-blink{50%{opacity:0}}@keyframes svelte-by82sp-bounce{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}@keyframes svelte-by82sp-pop-right{0%{opacity:0;transform:translate(18px,10px) scale(.92)}}@keyframes svelte-by82sp-pop-left{0%{opacity:0;transform:translate(-18px,10px) scale(.92)}}@keyframes svelte-by82sp-chip-in{0%{opacity:0;transform:translateY(10px)}}@keyframes svelte-by82sp-ink{0%{opacity:0;filter:blur(3px);color:var(--accent)}}@keyframes svelte-by82sp-glow{50%{box-shadow:0 0 0 6px #8552a014}}@keyframes svelte-by82sp-ring{0%{box-shadow:0 0 #8552a055}to{box-shadow:0 0 0 10px #8552a000}}@media (max-width: 800px){.ask-header.svelte-by82sp{grid-template-columns:1fr;gap:12px}}@media (max-width: 650px){.ask-section.svelte-by82sp{padding:26px 18px}h2.svelte-by82sp{font-size:2.3rem}.thread.svelte-by82sp{padding:18px 14px}form.svelte-by82sp{flex-direction:column}.message.user.svelte-by82sp p:where(.svelte-by82sp),.bubble.svelte-by82sp{max-width:90%}}@media (prefers-reduced-motion: reduce){.message.svelte-by82sp,.question-chips.svelte-by82sp button:where(.svelte-by82sp),.thinking.svelte-by82sp i:where(.svelte-by82sp),.avatar.pulsing.svelte-by82sp,.status-dot.typing.svelte-by82sp{animation:none}.word.svelte-by82sp{animation:none}.question-chips.svelte-by82sp button:where(.svelte-by82sp),.chat-window.svelte-by82sp{transition:none}}@media print{.ask-section.svelte-by82sp{display:none}}
