:root{--color-bg: #e4e1dc;--color-surface: #edecea;--color-surface-strong: #111111;--color-border: rgba(17, 17, 17, .1);--color-text: #161616;--color-text-muted: #5f5f5f;--color-text-inverse: #f5f5f5;--color-accent: #1d8f7a;--color-accent-hover: #156a5b;--color-header-bg: rgba(240, 238, 235, .88);--color-toggle-bg: rgba(17, 17, 17, .08);--color-toggle-line: var(--color-text);--color-overlay: rgba(0, 0, 0, .36);--color-overlay-strong: rgba(0, 0, 0, .62);--color-btn-subtle: rgba(17, 17, 17, .06);--color-btn-subtle-hover: rgba(17, 17, 17, .1);--shadow-soft: 0 10px 30px rgba(0, 0, 0, .08);--radius-sm: .5rem;--radius-md: .875rem;--radius-lg: 1.25rem;--radius-pill: 999px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--font-body: "Inter", sans-serif;--font-display: "Inter", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.5rem;--text-2xl: 2rem}[data-theme=dark]{--color-bg: #0f0f0f;--color-surface: #1a1a1a;--color-surface-strong: #f5f5f5;--color-border: rgba(255, 255, 255, .1);--color-text: #e8e8e8;--color-text-muted: #999999;--color-text-inverse: #111111;--color-accent: #2ecbaa;--color-accent-hover: #5dddc4;--color-header-bg: rgba(15, 15, 15, .88);--color-toggle-bg: rgba(255, 255, 255, .1);--color-toggle-line: var(--color-text);--color-overlay: rgba(0, 0, 0, .5);--color-overlay-strong: rgba(0, 0, 0, .72);--color-btn-subtle: rgba(255, 255, 255, .04);--color-btn-subtle-hover: rgba(255, 255, 255, .08);--shadow-soft: 0 10px 30px rgba(0, 0, 0, .3)}*,*:before,*:after{box-sizing:border-box}html{color-scheme:light dark}body{margin:0;font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);min-height:100dvh}html,body{width:100%;max-width:100%;overflow-x:hidden}button,input,textarea,select{font:inherit}button{border:none;background:none;cursor:pointer}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}#app{position:relative;width:100%;max-width:100%;overflow-x:clip;isolation:isolate}.site-main{width:100%;max-width:100%;padding:var(--space-8) var(--space-4)}@media(min-width:48rem){.site-main{padding:var(--space-8) var(--space-8)}}.page-section{min-height:calc(100dvh - 72px);display:flex;align-items:center}.page-section__inner{width:100%;max-width:72rem;margin-inline:auto}@media(min-width:64rem){.site-main{padding:var(--space-12) var(--space-12)}.page-section,.page-section:first-child{min-height:auto;align-items:flex-start}.page-section+.page-section{padding-top:var(--space-12)}.portfolio-layout{display:grid;grid-template-columns:minmax(0,1fr) 20rem;gap:var(--space-12);align-items:start}.portfolio-layout .page-section+.page-section{padding-top:0}}#app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:url(/images/bg-texture.png);background-repeat:repeat;background-size:600px;opacity:.9;pointer-events:none}[data-theme=dark] #app:before{filter:invert(1);opacity:.75}.eyebrow{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.site-header{position:sticky;top:0;z-index:20;width:100%;max-width:100%;background:var(--color-header-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--color-border)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:72rem;margin-inline:auto;padding:var(--space-4)}.site-header__brand,.mobile-menu__brand{display:inline-flex;align-items:center;gap:var(--space-3)}.site-header__brand-text,.mobile-menu__brand-text{font-size:var(--text-sm);font-weight:700;letter-spacing:.08em;color:var(--color-text)}.site-header__brand-mark,.mobile-menu__brand-mark{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:var(--radius-md);background:var(--color-surface-strong);color:var(--color-text-inverse);box-shadow:var(--shadow-soft)}.brand-logo{width:1.4rem;height:1.4rem}.brand-logo path{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.site-header__actions{display:inline-flex;align-items:center;gap:var(--space-2)}.site-header__theme-toggle,.site-header__lang-toggle{padding:.3rem .6rem;font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text);background:transparent}.site-header__theme-toggle:hover,.site-header__lang-toggle:hover{background:var(--color-btn-subtle-hover)}.site-header__theme-toggle{display:inline-flex;align-items:center;justify-content:center;line-height:1}.desktop-nav{display:none}.site-header__menu-toggle{width:2.75rem;height:2.75rem;border-radius:var(--radius-md);background:var(--color-toggle-bg);display:inline-flex;flex-direction:column;justify-content:center;gap:.35rem;padding:0 .7rem}@media(min-width:64rem){.site-header__inner{padding:var(--space-5) var(--space-8)}.site-header__brand-text{font-size:var(--text-base)}.desktop-nav{display:flex;align-items:center;gap:var(--space-10)}.desktop-nav__link{font-size:var(--text-base);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);text-decoration:none;transition:color .15s ease}.desktop-nav__link:hover{color:var(--color-accent)}.site-header__theme-toggle,.site-header__lang-toggle{padding:.4rem .75rem;font-size:var(--text-sm)}.site-header__menu-toggle{display:none}}.site-header__menu-toggle span{display:block;width:100%;height:2px;border-radius:var(--radius-pill);background:var(--color-toggle-line)}.mobile-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;justify-content:flex-end;align-items:flex-start;background:var(--color-overlay);opacity:0;pointer-events:none;transition:opacity .25s ease}.mobile-menu.is-open{opacity:1;pointer-events:auto}.mobile-menu__inner{width:min(88vw,22rem);background:var(--color-surface);color:var(--color-text);padding:var(--space-4);border-radius:0 0 0 var(--radius-lg);box-shadow:var(--shadow-soft);transform:translate(100%);transition:transform .25s ease}.mobile-menu.is-open .mobile-menu__inner{transform:translate(0)}.mobile-menu__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.mobile-menu__close{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-md);background:var(--color-toggle-bg);color:var(--color-text);font-size:1.1rem;line-height:1;transition:background .15s ease,color .15s ease}.mobile-menu__close:hover{background:var(--color-btn-subtle-hover);color:var(--color-accent)}.mobile-nav__list{list-style:none;margin:0;padding:0}.mobile-nav__item{border-top:1px solid var(--color-border)}.mobile-nav__item:last-child{border-bottom:1px solid var(--color-border)}.mobile-nav__link{display:block;padding:var(--space-4) 0;font-size:var(--text-lg);font-weight:600}.external-link-modal[hidden]{display:none}.external-link-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;padding:var(--space-4)}.external-link-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-overlay)}.external-link-modal__dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(100% - 2 * var(--space-4),26rem);max-height:calc(100dvh - 2 * var(--space-4));border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);padding:var(--space-5);box-shadow:var(--shadow-soft);overflow:auto}.external-link-modal__eyebrow{margin:0 0 var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.external-link-modal__title{margin:0 0 var(--space-3);font-size:var(--text-xl)}.external-link-modal__text{margin:0;color:var(--color-text-muted);line-height:1.6}.external-link-modal__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}.external-link-modal__button{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:0 1rem;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:600}.external-link-modal__button--ghost{border:1px solid var(--color-border);background:transparent;color:var(--color-text)}.external-link-modal__button--primary{background:var(--color-accent);color:var(--color-text-inverse)}.music-player[hidden]{display:none}.music-player{position:fixed;left:50%;bottom:var(--space-4);transform:translate(-50%);z-index:80;display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .55rem;border-radius:var(--radius-pill);background:#111111eb;color:#f5f5f5;box-shadow:0 4px 20px #0000004d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.music-player__control{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-pill);background:#ffffff1f;color:#f5f5f5;font-size:.9rem;line-height:1}.music-player__control:hover{background:#fff3}.music-player__volume-label{display:inline-flex;align-items:center}.music-player__volume{width:2.75rem;accent-color:#2ecbaa}.modal[hidden]{display:none}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70}.modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-overlay-strong)}.modal__dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(100% - 2 * var(--space-4),28rem);max-height:calc(100dvh - 2 * var(--space-4));overflow:auto;border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-soft)}.modal__close{position:absolute;right:var(--space-3);bottom:var(--space-3);width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);background:var(--color-surface-strong);color:var(--color-text-inverse);font-size:.7rem;font-weight:700;line-height:1;z-index:5;box-shadow:var(--shadow-soft)}.modal__close:hover{background:var(--color-text)}.modal__close:active{transform:scale(.96)}.modal__media{position:relative;height:14rem;overflow:hidden;border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.modal__image{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}[data-modal=tau-net] .modal__image,[data-modal=bittensor] .modal__image{object-fit:contain;padding:var(--space-4);background:var(--color-surface)}.modal__content{position:relative;padding:var(--space-4)}.modal__eyebrow{margin:0 0 var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.modal__title{margin:0 0 var(--space-3);font-size:var(--text-xl)}.modal__text{margin:0;color:var(--color-text-muted);line-height:1.6}.modal__play{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;border-radius:var(--radius-pill);background:#ffffffeb;color:#111;font-size:1.25rem;box-shadow:0 4px 16px #00000040}.modal__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}.modal__button{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:0 1rem;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:600}.modal__button--ghost{border:1px solid var(--color-border);background:transparent;color:var(--color-text)}.modal__button--primary{background:var(--color-accent);color:var(--color-text-inverse)}.home-section__inner{display:flex;flex-direction:column;gap:var(--space-4)}.home-section__role{margin:0;font-size:var(--text-sm);color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;font-weight:700;text-align:center}.home-section__title{margin:0;font-size:clamp(2.2rem,9vw,3.4rem);line-height:.95;letter-spacing:-.03em;white-space:nowrap;text-align:center}.home-section__block{display:flex;flex-direction:column;gap:var(--space-2)}.home-section__intro,.home-section__interests{margin:0;max-width:62ch;color:var(--color-text);line-height:1.7;font-size:var(--text-lg)}.home-section__extra{margin:0;max-width:62ch;color:var(--color-text-muted);line-height:1.7;font-size:var(--text-base)}.home-section__toggle{align-self:flex-start;margin-top:var(--space-1);padding:.4rem 1rem;font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-pill);border:1px solid var(--color-accent);background:var(--color-btn-subtle);color:var(--color-accent);letter-spacing:.06em;text-transform:uppercase}.home-section__toggle:hover{background:var(--color-btn-subtle-hover)}.home-section__toggle:active{opacity:.8}.interest-inline{border:none;background:none;padding:0;margin:0;font:inherit;color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.12em;cursor:pointer}.interest-inline:hover{color:var(--color-accent-hover)}.home-section__protocols-bridge{font-weight:600;color:var(--color-text)}.home-section__extra[hidden]{display:none}.home-section__protocols{display:flex;gap:var(--space-4);margin-top:var(--space-2)}.protocol-icon{display:inline-flex;align-items:center;justify-content:center;width:4rem;height:4rem;padding:.5rem;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.protocol-icon:hover{transform:scale(1.08);box-shadow:0 8px 24px #0000001f}.protocol-icon:active{transform:scale(.97)}.protocol-icon img{width:100%;height:100%;object-fit:contain}.home-section__portrait{margin:0 auto;width:min(100%,20rem);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-soft)}.home-section__portrait-image{display:block;width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;object-position:center top}@media(min-width:48rem){.home-section__inner{display:grid;grid-template-columns:1fr 18rem;grid-template-rows:auto auto auto auto auto;column-gap:var(--space-8);row-gap:var(--space-4);align-items:start}.home-section .eyebrow{grid-column:1;grid-row:1;margin-bottom:0}.home-section__role{grid-column:1;grid-row:2;text-align:left}.home-section__title{grid-column:1;grid-row:3;text-align:left;font-size:clamp(2.6rem,5vw,4rem)}.home-section__portrait{grid-column:2;grid-row:1 / -1;align-self:center;margin:0;width:100%}.home-section__block{grid-column:1}}@media(min-width:64rem){.home-section__inner{grid-template-columns:1fr 24rem;column-gap:4rem;row-gap:var(--space-3)}.home-section .eyebrow{font-size:var(--text-base)}.home-section__role{font-size:var(--text-lg)}.home-section__title{font-size:4.5rem;margin-bottom:var(--space-2)}.home-section__intro,.home-section__interests{font-size:var(--text-lg);line-height:1.75}.home-section__extra{font-size:var(--text-base)}.home-section__toggle{font-size:var(--text-sm);padding:.5rem 1.2rem}}.work-section__inner{display:flex;flex-direction:column;gap:var(--space-4)}.work-section__subtitle{margin:0;font-size:var(--text-sm);color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.work-section__projects{display:flex;flex-direction:column;gap:var(--space-6);margin-top:var(--space-4)}.project-card{border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft);overflow:hidden}.project-card__image-link{display:block;cursor:zoom-in}.project-card__image{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;object-position:top;transition:opacity .15s ease}.project-card__image-link:hover .project-card__image{opacity:.85}.project-card__body{padding:var(--space-5)}.project-card__title{margin:0 0 var(--space-2);font-size:var(--text-xl);line-height:1.2}.project-card__description{margin:0;color:var(--color-text-muted);line-height:1.6}.project-card__footer{display:flex;align-items:flex-start;gap:var(--space-3);margin-top:var(--space-3)}.project-card__tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none;flex:1}.project-card__tag{padding:.2rem .6rem;font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;border-radius:var(--radius-pill);background:var(--color-btn-subtle);border:1px solid var(--color-border);color:var(--color-text-muted)}.project-card__repo{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.25rem;height:2.25rem;border-radius:var(--radius-pill);color:var(--color-text-muted);border:1px solid var(--color-border);transition:color .15s ease,border-color .15s ease}.project-card__repo:hover{color:var(--color-text);border-color:var(--color-text-muted)}.experiment-card{border-radius:var(--radius-lg);background:var(--color-surface);border:1.5px dashed var(--color-accent);overflow:hidden}.experiment-card__header{display:flex;align-items:center;gap:var(--space-2)}.experiment-card__logo{width:2.5rem;height:2.5rem;border-radius:var(--radius-pill);object-fit:cover;flex-shrink:0}.experiment-card__logo--dark{display:none}[data-theme=dark] .experiment-card__logo--dark{display:block}[data-theme=dark] .experiment-card__logo--light{display:none}.experiment-card__body{padding:var(--space-3) var(--space-4);flex:1;min-width:0}.experiment-card__badge{display:inline-block;margin-bottom:var(--space-1);padding:.15rem .5rem;font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-text-inverse)}.experiment-card__title{margin:0 0 var(--space-1);font-size:var(--text-base);line-height:1.2}.experiment-card__description{margin:0;color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.5}.experiment-card__disclaimer{margin:var(--space-1) 0 0;font-size:.65rem;color:var(--color-text-muted);font-style:italic}.experiment-card__footer{display:flex;align-items:flex-start;gap:var(--space-2);margin-top:var(--space-2)}.experiment-card__chart{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.25rem;height:2.25rem;border-radius:var(--radius-pill);color:var(--color-accent);border:1px solid var(--color-accent);transition:background .15s ease,color .15s ease}.experiment-card__chart:hover{background:var(--color-accent);color:var(--color-text-inverse)}@media(min-width:48rem){.work-section__projects{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6)}}.skills-section__inner{display:flex;flex-direction:column;gap:var(--space-4)}.skills-section__subtitle{margin:0;font-size:var(--text-sm);color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.skill-group{margin-top:var(--space-10);padding:var(--space-6);background:var(--color-surface);border-radius:var(--radius-lg)}.skill-group__title{display:flex;flex-direction:column;gap:var(--space-2);margin:0 0 var(--space-2);font-size:var(--text-xl);line-height:1.2;letter-spacing:-.01em}.skill-group__title:after{content:"";width:2rem;height:3px;background:var(--color-accent);border-radius:var(--radius-pill)}.skill-group__intro{margin:0 0 var(--space-4);color:var(--color-text-muted);line-height:1.6}.skill-group__columns{display:flex;flex-direction:column;gap:var(--space-6)}.skill-group__label{display:block;margin-bottom:var(--space-3);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}.skill-group__tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.skill-tag{padding:.4rem 1rem;font-size:var(--text-sm);font-weight:600;letter-spacing:.02em;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-text-inverse)}.skill-tag--outline{background:transparent;border:1.5px solid var(--color-accent);color:var(--color-accent)}.skill-narrative{padding:var(--space-4) var(--space-5);border-left:3px solid var(--color-accent);margin-bottom:var(--space-4);background:var(--color-btn-subtle);border-radius:0 var(--radius-md) var(--radius-md) 0}.skill-narrative:last-child{margin-bottom:0}.skill-narrative__label{margin:0 0 var(--space-2);font-size:var(--text-base);font-weight:700;color:var(--color-accent)}.skill-narrative__text{margin:0;color:var(--color-text-muted);line-height:1.7;max-width:62ch}.skill-group__labels{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.skill-label{padding:.45rem 1rem;font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-btn-subtle);color:var(--color-text-muted)}@media(min-width:48rem){.skill-group__columns{flex-direction:row}.skill-group__column{flex:1}}.contact-section__inner{display:flex;flex-direction:column;gap:var(--space-4)}.contact-section__subtitle{margin:0;font-size:var(--text-sm);color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.chat{margin-top:var(--space-6);display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden}.chat__disclaimer{margin:0;padding:var(--space-3) var(--space-4);font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.5;border-bottom:1px solid var(--color-border)}.chat__disclaimer-variant--desktop{display:none}@media(min-width:64rem){.chat__disclaimer-variant--mobile{display:none}.chat__disclaimer-variant--desktop{display:inline}}.chat__messages{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);min-height:12rem;max-height:24rem;overflow-y:auto}.chat__bubble{max-width:85%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.6;word-wrap:break-word}.chat__bubble--bot{align-self:flex-start;background:var(--color-btn-subtle);color:var(--color-text);border-bottom-left-radius:var(--space-1)}.chat__bubble--bot p{margin:0 0 var(--space-2)}.chat__bubble--bot p:last-child{margin-bottom:0}.chat__bubble--user{align-self:flex-end;background:var(--color-accent);color:var(--color-text-inverse);border-bottom-right-radius:var(--space-1)}.chat__bubble--typing{font-size:var(--text-base);letter-spacing:.2em;animation:typing-pulse 1s ease-in-out infinite}@keyframes typing-pulse{0%,to{opacity:.4}50%{opacity:1}}.chat__send:disabled{opacity:.5;cursor:not-allowed}.chat__input-bar{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border)}.chat__input{flex:1;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-pill);outline:none;transition:border-color .15s ease}.chat__input::placeholder{color:var(--color-text-muted)}.chat__input:focus{border-color:var(--color-accent)}.chat__send{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.5rem;height:2.5rem;padding:0;border:none;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-text-inverse);cursor:pointer;transition:opacity .15s ease}.chat__send:hover{opacity:.85}.chat__send:active{opacity:.7}.contact-links{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-8)}.contact-link-row{display:flex;align-items:center;background:var(--color-surface);border-radius:var(--radius-md);border:1px solid transparent;transition:border-color .15s ease,box-shadow .15s ease}.contact-link-row:hover{border-color:var(--color-border);box-shadow:var(--shadow-soft)}.contact-link{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0;padding:var(--space-3) var(--space-4);text-decoration:none;color:var(--color-text);transition:background .15s ease;border-radius:var(--radius-md)}.contact-link:hover{background:var(--color-btn-subtle-hover)}.contact-link__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.25rem;height:2.25rem;border-radius:var(--radius-pill);background:var(--color-btn-subtle);color:var(--color-accent)}.contact-link__label{font-size:var(--text-sm);font-weight:600}.contact-link__value{font-size:var(--text-xs);font-family:monospace;color:var(--color-accent);white-space:nowrap;-webkit-user-select:all;user-select:all}.contact-link__value[hidden]{display:none}.contact-link__copy{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;margin:0 var(--space-3);padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-btn-subtle);color:var(--color-text-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease}.contact-link__copy:hover{color:var(--color-accent);border-color:var(--color-accent)}.contact-link--button{width:100%;border:none;font-family:var(--font-body);cursor:pointer}.email-form{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background:var(--color-surface);border-radius:var(--radius-lg)}.email-form[hidden]{display:none}.email-form__field{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);outline:none;transition:border-color .15s ease}.email-form__field::placeholder{color:var(--color-text-muted)}.email-form__field:focus{border-color:var(--color-accent)}.email-form__field--invalid{border-color:#e05252}.email-form__field--invalid:focus{border-color:#e05252}.email-form__group{display:flex;flex-direction:column}.email-form__error{margin-top:var(--space-1);font-size:var(--text-xs);color:#e05252;line-height:1.4}.email-form__error[hidden]{display:none}.email-form__textarea{resize:vertical;min-height:6rem;max-height:20rem;line-height:1.6}.email-form__submit{align-self:flex-start;padding:var(--space-3) var(--space-6);font-size:var(--text-sm);font-weight:600;font-family:var(--font-body);color:var(--color-text-inverse);background:var(--color-accent);border:none;border-radius:var(--radius-pill);cursor:pointer;transition:opacity .15s ease}.email-form__submit:hover{opacity:.85}.email-form__submit:disabled{opacity:.5;cursor:not-allowed}.email-form__status{margin:0;font-size:var(--text-xs);line-height:1.5}.email-form__status[hidden]{display:none}.email-form__status--success{color:var(--color-accent)}.email-form__status--error{color:#e05252}@media(min-width:48rem){.contact-section__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);align-items:start}.chat,.contact-links{margin-top:0}}@media(min-width:64rem){.portfolio-layout .skill-group__columns{flex-direction:column;gap:var(--space-4)}.portfolio-layout .skill-group{margin-top:0;padding:var(--space-4)}.portfolio-layout .skill-narrative{margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4)}.contact-section__grid .chat__messages{min-height:10rem}}
