:root{--app-font-sans:"Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--app-font-display:"Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--app-font-mono:"Cascadia Code", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--app-radius-xs:6px;--app-radius-sm:10px;--app-radius-md:14px;--app-radius-lg:20px;--app-radius-pill:999px;--app-ease:cubic-bezier(.16, 1, .3, 1);--app-speed:.28s;--app-bg:#f4f4f5;--app-bg-deep:#ececee;--app-surface:#fff;--app-surface-2:#f4f4f6;--app-surface-3:#e9e9ec;--app-border:rgba(24,24,27,.1);--app-border-strong:rgba(24,24,27,.18);--app-text:#18181b;--app-text-muted:#52525b;--app-text-faint:#65656c;--app-danger:#c2443d;--app-warn:#b7801f;--app-glass:rgba(255,255,255,.72);--app-shadow-sm:0 1px 2px rgba(24,24,27,.06);--app-shadow:0 1px 2px rgba(24,24,27,.04), 0 18px 40px -24px rgba(24,24,27,.22);--app-shadow-lg:0 1px 2px rgba(24,24,27,.05), 0 40px 80px -40px rgba(24,24,27,.28);--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-mantine-color-scheme=dark],:root[data-theme=dark]{--app-bg:#09090b;--app-bg-deep:#050506;--app-surface:#121215;--app-surface-2:#17171b;--app-surface-3:#1f1f24;--app-border:rgba(255,255,255,.08);--app-border-strong:rgba(255,255,255,.16);--app-text:#f4f4f5;--app-text-muted:#a1a1aa;--app-text-faint:#8a8a92;--app-danger:#f08a84;--app-warn:#e6c069;--app-glass:rgba(18,18,21,.86);--app-shadow-sm:0 1px 2px rgba(0,0,0,.5);--app-shadow:0 1px 2px rgba(0,0,0,.4), 0 24px 50px -30px rgba(0,0,0,.9);--app-shadow-lg:0 1px 2px rgba(0,0,0,.5), 0 50px 90px -50px #000;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--app-bg);color:var(--app-text);font-family:var(--app-font-sans);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-num{font-family:var(--app-font-mono);font-variant-numeric:tabular-nums}.app-press{-webkit-transition:transform .18s var(--app-ease), background-color var(--app-speed) var(--app-ease), border-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease);-moz-transition:transform .18s var(--app-ease), background-color var(--app-speed) var(--app-ease), border-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease);-webkit-transition:transform .18s var(--app-ease), background-color var(--app-speed) var(--app-ease), border-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease);-moz-transition:transform .18s var(--app-ease), background-color var(--app-speed) var(--app-ease), border-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease);transition:transform .18s var(--app-ease), background-color var(--app-speed) var(--app-ease), border-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease)}.app-press:active{-webkit-transform:translateY(1px)scale(.985);-moz-transform:translateY(1px)scale(.985);transform:translateY(1px)scale(.985)}.app-glass{background:var(--app-glass);-webkit-backdrop-filter:blur(12px)saturate(120%);border:1px solid var(--app-border);box-shadow:inset 0 1px 0 rgba(255,255,255,.06), var(--app-shadow)}.app-surface{border:1px solid var(--app-border);border-radius:var(--app-radius-lg);background:var(--app-surface);box-shadow:var(--app-shadow)}.app-scroll{scrollbar-width:thin;scrollbar-color:var(--app-border-strong) transparent}.app-scroll::-webkit-scrollbar{width:9px;height:9px}.app-scroll::-webkit-scrollbar-thumb{background:var(--app-border-strong);border-radius:var(--app-radius-pill);background-clip:content-box;border:2px solid transparent}.app-scroll::-webkit-scrollbar-thumb:hover{background:var(--app-text-faint);background-clip:content-box}@-webkit-keyframes app-shimmer{to{-webkit-transform:translate(100%);-moz-transform:translate(100%);transform:translate(100%)}}@-moz-keyframes app-shimmer{to{-webkit-transform:translate(100%);-moz-transform:translate(100%);transform:translate(100%)}}@keyframes app-shimmer{to{-webkit-transform:translate(100%);-moz-transform:translate(100%);transform:translate(100%)}}.app-skeleton{border-radius:var(--app-radius-sm);background:var(--app-surface-2);display:block;position:relative;overflow:hidden}.app-skeleton:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--app-text) 7%, transparent), transparent);-webkit-animation:1.5s infinite app-shimmer;-moz-animation:1.5s infinite app-shimmer;animation:1.5s infinite app-shimmer;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-transform:translate(-100%);-moz-transform:translate(-100%);transform:translate(-100%)}@-webkit-keyframes app-breathe{0%,to{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}50%{opacity:.4;-webkit-transform:scale(.72);-moz-transform:scale(.72);transform:scale(.72)}}@-moz-keyframes app-breathe{0%,to{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}50%{opacity:.4;-webkit-transform:scale(.72);-moz-transform:scale(.72);transform:scale(.72)}}@keyframes app-breathe{0%,to{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}50%{opacity:.4;-webkit-transform:scale(.72);-moz-transform:scale(.72);transform:scale(.72)}}.app-statusdot{border-radius:var(--app-radius-pill);background:var(--app-text-faint);-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:none;flex:none;width:8px;height:8px;display:inline-block}.app-statusdot--on{background:var(--app-accent,var(--app-text));-webkit-animation:app-breathe 2.4s var(--app-ease) infinite;-moz-animation:app-breathe 2.4s var(--app-ease) infinite;-webkit-animation:app-breathe 2.4s var(--app-ease) infinite;-moz-animation:app-breathe 2.4s var(--app-ease) infinite;animation:app-breathe 2.4s var(--app-ease) infinite}.app-statusdot--off{background:var(--app-danger)}@-webkit-keyframes app-rise{0%{opacity:0;-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}to{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0)}}@-moz-keyframes app-rise{0%{opacity:0;-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}to{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0)}}@keyframes app-rise{0%{opacity:0;-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}to{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0)}}.app-rise{-webkit-animation:app-rise .5s var(--app-ease) both;-moz-animation:app-rise .5s var(--app-ease) both;-webkit-animation:app-rise .5s var(--app-ease) both;-moz-animation:app-rise .5s var(--app-ease) both;animation:app-rise .5s var(--app-ease) both;-webkit-animation-delay:calc(var(--app-index,0) * 70ms);-moz-animation-delay:calc(var(--app-index,0) * 70ms);-webkit-animation-delay:calc(var(--app-index,0) * 70ms);-moz-animation-delay:calc(var(--app-index,0) * 70ms);animation-delay:calc(var(--app-index,0) * 70ms)}.app-empty{text-align:center;color:var(--app-text-muted);-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:12px;padding:max(36px,min(7vw,72px)) 24px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-empty__mark{border-radius:var(--app-radius-md);border:1px dashed var(--app-border-strong);width:54px;height:54px;color:var(--app-text-faint);background:var(--app-surface-2);-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;justify-items:center;display:grid}.app-empty h3{color:var(--app-text);letter-spacing:-.02em;margin:0;font-size:1rem;font-weight:600}.app-empty p{max-width:42ch;margin:0;font-size:13px;line-height:1.55}.app-header{z-index:40;background:var(--app-surface);border-bottom:1px solid var(--app-border);-webkit-flex-shrink:0;flex-shrink:0;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:12px;height:56px;padding:0 max(12px,min(2.5vw,20px));display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex;position:sticky;top:0}.app-header--static{position:relative}.app-brand{min-width:0;color:inherit;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:10px;text-decoration:none;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}button.app-brand{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font:inherit;text-align:inherit;cursor:pointer;background:0 0;border:none;padding:0}.app-brand__mark{background:var(--mantine-primary-color-light,var(--app-accent-soft,var(--app-surface-2)));width:36px;height:36px;color:var(--mantine-primary-color-filled,var(--app-accent,var(--app-text)));border-radius:10px;-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:none;flex:none;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;justify-items:center;display:grid}.app-brand__text{-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;min-width:0;line-height:1.1;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-brand__title{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.app-brand__subtitle{color:var(--app-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.app-header__center{-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-pack:center;-moz-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:8px;min-width:0;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-header__actions{-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:none;flex:none;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:6px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-header-action{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;border-radius:var(--app-radius-sm);border:1px solid var(--app-border);background:var(--app-surface-2);min-width:36px;height:36px;color:var(--app-text-muted);font:inherit;cursor:pointer;white-space:nowrap;-webkit-transition:background-color var(--app-speed) var(--app-ease), border-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease), transform .18s var(--app-ease);-moz-transition:background-color var(--app-speed) var(--app-ease), border-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease), transform .18s var(--app-ease);-webkit-transition:background-color var(--app-speed) var(--app-ease), border-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease), transform .18s var(--app-ease);-moz-transition:background-color var(--app-speed) var(--app-ease), border-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease), transform .18s var(--app-ease);transition:background-color var(--app-speed) var(--app-ease), border-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease), transform .18s var(--app-ease);-webkit-box-pack:center;-moz-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:7px;padding:0 10px;font-size:13px;font-weight:500;text-decoration:none;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}.app-header-action--icon{padding:0}.app-header-action--accent{background:var(--mantine-primary-color-filled,var(--app-accent,var(--app-text)));color:var(--mantine-primary-color-contrast,#fff);border-color:transparent}.app-header-action--active{background:var(--mantine-primary-color-light,var(--app-accent-soft,var(--app-surface-2)));border-color:var(--mantine-primary-color-filled,var(--app-accent-line,var(--app-border-strong)));color:var(--mantine-primary-color-light-color,var(--app-accent-ink,var(--app-text)))}.app-header-action__label{display:inline}.app-header-action:hover{background:var(--app-surface-3);border-color:var(--app-border-strong);color:var(--app-text)}.app-header-action--accent:hover{background:var(--mantine-primary-color-filled-hover,var(--app-accent-hover,var(--app-accent,var(--app-text))));color:var(--mantine-primary-color-contrast,#fff);border-color:transparent}.app-header-action--active:hover{color:var(--mantine-primary-color-light-color,var(--app-accent-ink,var(--app-text)))}.app-header-action:active{-webkit-transform:translateY(1px)scale(.985);-moz-transform:translateY(1px)scale(.985);transform:translateY(1px)scale(.985)}.app-header-action:disabled,.app-header-action[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.app-switcher{display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex;position:relative}.app-switcher__menu{z-index:80;border-radius:var(--app-radius-md);border:1px solid var(--app-border);background:var(--app-surface);min-width:268px;max-width:calc(100vw - 24px);box-shadow:var(--app-shadow-lg);-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;gap:2px;padding:6px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex;position:absolute;top:calc(100% + 8px);left:0}.app-switcher__item{border-radius:var(--app-radius-sm);color:inherit;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-switcher__item--current{background:var(--mantine-primary-color-light,var(--app-accent-soft,var(--app-surface-2)))}.app-switcher__icon{background:var(--app-surface-2);width:30px;height:30px;color:var(--app-text-muted);border-radius:8px;-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:none;flex:none;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;justify-items:center;display:grid}.app-switcher__text{-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;min-width:0;line-height:1.2;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-switcher__label{white-space:nowrap;font-size:13.5px;font-weight:600}.app-switcher__tag{color:var(--app-text-muted);white-space:nowrap;font-size:11px}.app-switcher__item:hover{background:var(--app-surface-2)}.app-switcher__item--current:hover{background:var(--mantine-primary-color-light-hover,var(--app-accent-soft,var(--app-surface-2)))}.app-switcher__item--current .app-switcher__icon{color:var(--mantine-primary-color-filled,var(--app-accent,var(--app-text)));background:0 0}.app-footer{border-top:1px solid var(--app-border);padding-top:22px;padding-bottom:22px}.app-footer__inner{max-width:1260px;color:var(--app-text-muted);-webkit-box-lines:multiple;-moz-box-lines:multiple;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-moz-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:12px;margin-left:auto;margin-right:auto;padding-left:max(16px,min(4vw,44px));padding-right:max(16px,min(4vw,44px));font-size:12.5px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-footer__left,.app-footer__right{-webkit-box-lines:multiple;-moz-box-lines:multiple;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:14px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}.app-footer a{color:var(--app-text-muted);-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:6px;text-decoration:none;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}.app-footer svg{-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:none;flex:none;width:14px;height:14px}.app-footer a:hover{color:var(--app-text)}.app-footer__consent{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font:inherit;font-size:inherit;color:var(--app-text-muted);cursor:pointer;-webkit-transition:color var(--app-speed) var(--app-ease);-moz-transition:color var(--app-speed) var(--app-ease);-webkit-transition:color var(--app-speed) var(--app-ease);-moz-transition:color var(--app-speed) var(--app-ease);transition:color var(--app-speed) var(--app-ease);background:0 0;border:none;padding:0}.app-footer__consent:hover{color:var(--app-text);text-decoration:underline}.app-footer__consent[aria-pressed=true]:before{content:"";border-radius:var(--app-radius-pill);background:var(--mantine-primary-color-filled,var(--app-text));vertical-align:middle;width:6px;height:6px;margin-right:6px;display:inline-block}.app-consent{z-index:300;background:var(--app-surface);border-color:var(--app-border-strong);max-width:min(380px,100vw - 24px);position:fixed;bottom:max(12px,min(3vw,24px))}.app-consent:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:max(12px,min(3vw,24px))}.app-consent:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:max(12px,min(3vw,24px))}.app-consent:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:max(12px,min(3vw,24px))}.app-consent:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:max(12px,min(3vw,24px))}.app-consent:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){right:max(12px,min(3vw,24px))}.app-consent:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:max(12px,min(3vw,24px))}.app-consent:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:max(12px,min(3vw,24px))}.app-consent:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:max(12px,min(3vw,24px))}body:has(.app-consent){padding-bottom:max(9rem,min(24vh,13rem))}.app-consent__body{min-width:0}.app-stat{text-align:left;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;gap:2px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-stat--action{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}.app-stat__label{color:var(--app-text-muted);-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:6px;font-size:12px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}.app-stat__value{font-family:var(--app-font-mono);color:var(--app-text);font-size:1.05rem;font-weight:600}.app-stat__hint{color:var(--app-text-faint);font-size:11.5px}.app-stat--action:hover .app-stat__value{text-decoration:underline}.app-stat--action:focus-visible .app-stat__value{text-decoration:underline}.app-stat--action:hover .app-stat__label{color:var(--app-text)}.app-stat--action:focus-visible .app-stat__label{color:var(--app-text)}.app-kbd{min-width:18px;font-family:var(--app-font-mono);border:1px solid var(--app-border);background:var(--app-surface-2);color:var(--app-text-muted);border-bottom-width:2px;border-radius:6px;-webkit-box-pack:center;-moz-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;padding:2px 6px;font-size:.7rem;line-height:1;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}@media (pointer:coarse){.app-kbd{display:none}.app-header-action{min-width:44px;height:44px}.app-switcher__item,.app-footer a{min-height:44px}}@media (forced-colors:active){.app-header-action--active,.app-switcher__item--current{outline-offset:-2px;outline:2px solid highlight}.app-skip-link{border:1px solid buttontext}}@media (prefers-contrast:more){.app-header-action,.app-switcher__menu{border-color:var(--app-border-strong,currentColor)}}@media (max-width:640px){.app-header__actions .app-header-action__label{display:none}.app-header__actions .app-header-action{padding:0}.app-switcher__menu{left:auto;right:0}}.app-grain{z-index:60;pointer-events:none;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27140%27 height=%27140%27%3E%3Cfilter id=%27n%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.85%27 numOctaves=%273%27/%3E%3C/filter%3E%3Crect width=%27140%27 height=%27140%27 filter=%27url%28%23n%29%27/%3E%3C/svg%3E");position:fixed;top:0;bottom:0;left:0;right:0}:root[data-mantine-color-scheme=dark] .app-grain,:root[data-theme=dark] .app-grain{opacity:.05}:where(a,button,[tabindex],[role=button]):focus-visible{outline:2px solid var(--app-accent,var(--app-text));outline-offset:2px;border-radius:var(--app-radius-xs)}.app-skip-link{z-index:2000;border-radius:var(--app-radius-sm);background:var(--app-surface);color:var(--app-text);box-shadow:var(--app-shadow);-webkit-transition:transform var(--app-speed) var(--app-ease);-moz-transition:transform var(--app-speed) var(--app-ease);-webkit-transition:transform var(--app-speed) var(--app-ease);-moz-transition:transform var(--app-speed) var(--app-ease);transition:transform var(--app-speed) var(--app-ease);padding:8px 14px;font-size:.85rem;text-decoration:none;position:fixed;top:8px;left:8px;-webkit-transform:translateY(-160%);-moz-transform:translateY(-160%);transform:translateY(-160%)}.app-skip-link:focus{-webkit-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0)}.app-page{width:100%;max-width:1080px;margin-left:auto;margin-right:auto;padding:max(28px,min(4vw,44px)) max(16px,min(4vw,40px)) max(56px,min(8vw,88px))}.app-hero{-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;gap:14px;margin-bottom:max(24px,min(4vw,36px));display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-hero__eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--app-text-muted);-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:8px;font-size:12px;font-weight:600;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}.app-hero h1{letter-spacing:-.035em;margin:0;font-size:max(1.9rem,min(1.2rem + 3.2vw,3rem));line-height:1.04}.app-hero__lede{max-width:62ch;color:var(--app-text-muted);margin:0;font-size:1rem;line-height:1.62}.app-hero__stats{-webkit-box-lines:multiple;-moz-box-lines:multiple;-webkit-flex-wrap:wrap;flex-wrap:wrap;gap:max(18px,min(4vw,48px));margin-top:6px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-toolbar{-webkit-box-lines:multiple;-moz-box-lines:multiple;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:12px;margin-bottom:22px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-toolbar__search{-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:260px;flex:260px;min-width:0}.app-chips{border-radius:var(--app-radius-pill);border:1px solid var(--app-border);background:var(--app-surface-2);-webkit-box-lines:multiple;-moz-box-lines:multiple;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:4px;padding:4px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}.app-chip{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;color:var(--app-text-muted);font:inherit;border-radius:var(--app-radius-pill);cursor:pointer;-webkit-transition:background-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease);-moz-transition:background-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease);-webkit-transition:background-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease);-moz-transition:background-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease);transition:background-color var(--app-speed) var(--app-ease), color var(--app-speed) var(--app-ease);background:0 0;border:none;padding:6px 13px;font-size:.78rem;font-weight:600}.app-chip:hover{color:var(--app-text)}.app-chip--on{background:var(--app-surface);color:var(--app-text);box-shadow:var(--app-shadow-sm)}.app-section-title{letter-spacing:.12em;text-transform:uppercase;color:var(--app-text-muted);-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:12px;margin:30px 0 14px;font-size:.74rem;font-weight:700;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-section-title:after{content:"";background:var(--app-border);-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1;flex:1;height:1px}.app-section-title__count{color:var(--app-text-faint);font-family:var(--app-font-mono);letter-spacing:0}.app-recents{-webkit-box-lines:multiple;-moz-box-lines:multiple;-webkit-flex-wrap:wrap;flex-wrap:wrap;gap:8px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-recent-chip{border-radius:var(--app-radius-pill);border:1px solid var(--app-border);background:var(--app-surface);color:var(--app-text);-webkit-transition:border-color var(--app-speed) var(--app-ease), background-color var(--app-speed) var(--app-ease), transform var(--app-speed) var(--app-ease);-moz-transition:border-color var(--app-speed) var(--app-ease), background-color var(--app-speed) var(--app-ease), transform var(--app-speed) var(--app-ease);-webkit-transition:border-color var(--app-speed) var(--app-ease), background-color var(--app-speed) var(--app-ease), transform var(--app-speed) var(--app-ease);-moz-transition:border-color var(--app-speed) var(--app-ease), background-color var(--app-speed) var(--app-ease), transform var(--app-speed) var(--app-ease);transition:border-color var(--app-speed) var(--app-ease), background-color var(--app-speed) var(--app-ease), transform var(--app-speed) var(--app-ease);-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:7px;padding:6px 12px;font-size:.8rem;font-weight:500;text-decoration:none;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}.app-recent-chip:hover{border-color:var(--mantine-primary-color-filled,var(--app-border-strong));background:var(--app-surface-2);-webkit-transform:translateY(-1px);-moz-transform:translateY(-1px);transform:translateY(-1px)}.app-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.app-card{border:1px solid var(--app-border);border-radius:var(--app-radius-md);background:var(--app-surface);box-shadow:var(--app-shadow-sm);-webkit-transition:transform .3s var(--app-ease), box-shadow .3s var(--app-ease), border-color .25s ease, background-color .25s ease;-moz-transition:transform .3s var(--app-ease), box-shadow .3s var(--app-ease), border-color .25s ease, background-color .25s ease;-webkit-transition:transform .3s var(--app-ease), box-shadow .3s var(--app-ease), border-color .25s ease, background-color .25s ease;-moz-transition:transform .3s var(--app-ease), box-shadow .3s var(--app-ease), border-color .25s ease, background-color .25s ease;transition:transform .3s var(--app-ease), box-shadow .3s var(--app-ease), border-color .25s ease, background-color .25s ease;position:relative}.app-card:hover{box-shadow:var(--app-shadow-lg);border-color:var(--mantine-primary-color-filled,var(--app-border-strong));-webkit-transform:translateY(-3px);-moz-transform:translateY(-3px);transform:translateY(-3px)}.app-card:focus-within{box-shadow:var(--app-shadow-lg);border-color:var(--mantine-primary-color-filled,var(--app-border-strong));-webkit-transform:translateY(-3px);-moz-transform:translateY(-3px);transform:translateY(-3px)}.app-card__link{border-radius:inherit;color:inherit;-webkit-box-align:start;-moz-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;gap:14px;padding:18px 46px 18px 18px;text-decoration:none;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-card__link:focus-visible{outline:2px solid var(--mantine-primary-color-filled,var(--app-accent,var(--app-text)));outline-offset:2px}.app-card__icon{background:var(--mantine-primary-color-light,var(--app-surface-2));width:42px;height:42px;color:var(--mantine-primary-color-filled,var(--app-accent,var(--app-text)));border-radius:12px;-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:none;flex:none;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;justify-items:center;display:grid}.app-card__body{-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1;flex:1;gap:8px;min-width:0;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-card__head{-webkit-box-lines:multiple;-moz-box-lines:multiple;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:8px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-card__title{letter-spacing:-.01em;font-size:1.02rem;font-weight:600}.app-card__tag{-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:none;flex:none}.app-card__desc{-webkit-line-clamp:3;color:var(--app-text-muted);-webkit-box-orient:vertical;font-size:.86rem;line-height:1.5;display:-webkit-box;overflow:hidden}.app-card__foot{-webkit-box-pack:justify;-moz-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:8px;min-height:18px;margin-top:2px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.app-card__visited{color:var(--app-text-faint);font-size:.72rem}.app-card__visited--new{color:var(--mantine-primary-color-filled,var(--app-text-faint));font-weight:600}.app-card__arrow{color:var(--app-text-faint);-webkit-transition:transform .25s var(--app-ease), color .25s ease;-moz-transition:transform .25s var(--app-ease), color .25s ease;-webkit-transition:transform .25s var(--app-ease), color .25s ease;-moz-transition:transform .25s var(--app-ease), color .25s ease;transition:transform .25s var(--app-ease), color .25s ease;position:absolute;top:50%;right:16px;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%)}.app-card:hover .app-card__arrow{color:var(--mantine-primary-color-filled,var(--app-accent,var(--app-text)));-webkit-transform:translateY(-50%)translate(4px);-moz-transform:translateY(-50%)translate(4px);transform:translateY(-50%)translate(4px)}.app-card:focus-within .app-card__arrow{color:var(--mantine-primary-color-filled,var(--app-accent,var(--app-text)));-webkit-transform:translateY(-50%)translate(4px);-moz-transform:translateY(-50%)translate(4px);transform:translateY(-50%)translate(4px)}.app-card__pin{z-index:2;width:26px;height:26px;color:var(--app-text-faint);cursor:pointer;opacity:0;background:0 0;border:1px solid transparent;border-radius:8px;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;justify-items:center;padding:0;-webkit-transition:opacity .2s,background-color .2s,color .2s;-moz-transition:opacity .2s,background-color .2s,color .2s;transition:opacity .2s,background-color .2s,color .2s;display:grid;position:absolute;top:10px;right:10px}.app-card:hover .app-card__pin,.app-card__pin--on{opacity:1}.app-card:focus-within .app-card__pin{opacity:1}.app-card__pin:hover{background:var(--app-surface-3);color:var(--app-text)}.app-card__pin--on{color:var(--mantine-primary-color-filled,var(--app-warn))}@media (pointer:coarse){.app-card__pin{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;-webkit-transition-duration:.001ms!important;-moz-transition-duration:.001ms!important;transition-duration:.001ms!important;-webkit-animation-duration:.001ms!important;-moz-animation-duration:.001ms!important;animation-duration:.001ms!important;-webkit-animation-iteration-count:1!important;-moz-animation-iteration-count:1!important;animation-iteration-count:1!important}}.app-section__chevron{-webkit-transition:transform var(--app-speed) var(--app-ease);-moz-transition:transform var(--app-speed) var(--app-ease);-webkit-transition:transform var(--app-speed) var(--app-ease);-moz-transition:transform var(--app-speed) var(--app-ease);transition:transform var(--app-speed) var(--app-ease)}@media (prefers-reduced-motion:reduce){.app-section__chevron{-webkit-transition-duration:.001ms!important;-moz-transition-duration:.001ms!important;transition-duration:.001ms!important}}:root{--font-sans:var(--app-font-sans);--font-mono:var(--app-font-mono);--shell:1180px;--radius:14px;--bg:var(--app-bg);--surface:var(--app-surface);--surface-2:var(--app-surface-2);--text:var(--app-text);--text-strong:var(--app-text);--text-muted:var(--app-text-muted);--text-faint:var(--app-text-faint);--border:var(--app-border);--border-strong:var(--app-border-strong);--accent:#127f5f;--accent-strong:#0b674c;--accent-contrast:#fff;--accent-soft:rgba(18,127,95,.09);--accent-ring:rgba(18,127,95,.3);--danger:var(--app-danger);--glass-edge:rgba(255,255,255,.7);--shadow-sm:var(--app-shadow-sm);--shadow-md:var(--app-shadow);--ease:var(--app-ease);--speed:var(--app-speed);--app-accent:var(--accent);--app-accent-soft:var(--accent-soft);--app-accent-line:var(--accent-ring);--app-accent-ink:var(--accent-strong)}html[data-mantine-color-scheme=dark],html[data-theme=dark]{--accent:#45bd93;--accent-strong:#6ad0aa;--accent-contrast:#06231a;--accent-soft:rgba(69,189,147,.1);--accent-ring:rgba(69,189,147,.34);--glass-edge:rgba(255,255,255,.06)}*,:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:background-color var(--speed) var(--ease), color var(--speed) var(--ease);-moz-transition:background-color var(--speed) var(--ease), color var(--speed) var(--ease);-webkit-transition:background-color var(--speed) var(--ease), color var(--speed) var(--ease);-moz-transition:background-color var(--speed) var(--ease), color var(--speed) var(--ease);transition:background-color var(--speed) var(--ease), color var(--speed) var(--ease);margin:0;font-size:16px;line-height:1.6}h1,h2,h3,h4,p,ul,ol,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}button{font:inherit;color:inherit}img,svg{display:block}:where(a,button,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:7px}.cv-root svg.lucide{stroke-width:1.5px}.cv-root{isolation:isolate;min-height:100dvh;position:relative;overflow-x:clip}.cv-shell{max-width:var(--shell);margin:0 auto;padding-left:24px;padding-right:24px}.cv-hero{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);-webkit-box-align:end;-moz-box-align:end;-webkit-align-items:end;align-items:end;gap:40px 60px;padding-top:72px;padding-bottom:46px;display:grid;position:relative}.cv-hero:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(55% 100% at 22% 0%, var(--accent-soft), transparent 72%);height:440px;position:absolute;top:-40%;bottom:auto;left:-25%;right:-10%}.cv-eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:9px;font-size:11.5px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}.cv-eyebrow:before{content:"";background:var(--accent);width:24px;height:1px}.cv-name{letter-spacing:-.035em;color:var(--text-strong);margin-top:18px;font-size:max(2.1rem,min(4.4vw,3rem));font-weight:600;line-height:1.02}.cv-role{color:var(--text-muted);max-width:44ch;margin-top:14px;font-size:1.05rem}.cv-status{font-family:var(--font-mono);color:var(--text-muted);-webkit-box-lines:multiple;-moz-box-lines:multiple;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:10px 16px;margin-top:24px;font-size:12.5px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.cv-status-item{-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:8px;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}a.cv-status-item{-webkit-transition:color var(--speed) var(--ease);-moz-transition:color var(--speed) var(--ease);-webkit-transition:color var(--speed) var(--ease);-moz-transition:color var(--speed) var(--ease);transition:color var(--speed) var(--ease);text-decoration:none}a.cv-status-item:hover{color:var(--accent)}.cv-status-item svg{width:14px;height:14px;color:var(--text-faint)}.cv-status-sep{background:var(--border-strong);width:1px;height:12px}.cv-status-dot{background:var(--accent);border-radius:50%;-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:none;flex:none;width:7px;height:7px;position:relative}.cv-status-dot:after{content:"";background:var(--accent);-webkit-animation:cv-ping 2.6s var(--ease) infinite;-moz-animation:cv-ping 2.6s var(--ease) infinite;-webkit-animation:cv-ping 2.6s var(--ease) infinite;-moz-animation:cv-ping 2.6s var(--ease) infinite;animation:cv-ping 2.6s var(--ease) infinite;border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0}@-webkit-keyframes cv-ping{0%{opacity:.5;-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}70%,to{opacity:0;-webkit-transform:scale(3.6);-moz-transform:scale(3.6);transform:scale(3.6)}}@-moz-keyframes cv-ping{0%{opacity:.5;-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}70%,to{opacity:0;-webkit-transform:scale(3.6);-moz-transform:scale(3.6);transform:scale(3.6)}}@keyframes cv-ping{0%{opacity:.5;-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}70%,to{opacity:0;-webkit-transform:scale(3.6);-moz-transform:scale(3.6);transform:scale(3.6)}}.cv-contact{-webkit-align-self:end;align-self:end;min-width:0}.cv-contact-list{border-top:1px solid var(--border)}.cv-contact-item{border-bottom:1px solid var(--border);-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:10px;padding:9px 0;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.cv-contact-item>svg{width:15px;height:15px;color:var(--text-faint);-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:none;flex:none}.cv-contact-label{width:64px;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:none;flex:none;font-size:10.5px}.cv-contact-value{color:var(--text);overflow-wrap:anywhere;-webkit-transition:color var(--speed) var(--ease);-moz-transition:color var(--speed) var(--ease);-webkit-transition:color var(--speed) var(--ease);-moz-transition:color var(--speed) var(--ease);transition:color var(--speed) var(--ease);font-size:13.5px;text-decoration:none}.cv-contact-value:hover{color:var(--accent)}.cv-main{grid-template-columns:minmax(0,.82fr) minmax(0,2.18fr);gap:64px;padding-top:8px;padding-bottom:96px;display:grid}.cv-col{-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;gap:46px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.cv-col--aside{grid-area:1/1}.cv-col--main{grid-area:1/2}.cv-section{position:relative}.cv-section-head{border-top:1px solid var(--border);-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:12px;margin-bottom:20px;padding-top:16px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex;position:relative}.cv-section-head:after{content:"";background:var(--accent);width:34px;height:2px;position:absolute;top:-1px;left:0}.cv-section-title{letter-spacing:.15em;text-transform:uppercase;color:var(--text-strong);font-size:12.5px;font-weight:600}.cv-section-hint{font-family:var(--font-mono);color:var(--text-faint);white-space:nowrap;margin-left:auto;font-size:11px}.cv-lead{color:var(--text);max-width:68ch;font-size:1.02rem;line-height:1.78}.cv-lead strong{color:var(--text-strong);font-weight:600}.cv-skill-group{border-bottom:1px solid var(--border);padding:14px 0}.cv-skill-group:first-child{padding-top:0}.cv-skill-group:last-child{border-bottom:0;padding-bottom:0}.cv-skill-name{color:var(--text-strong);-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:9px;font-size:12.5px;font-weight:600;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.cv-skill-name:before{content:"";background:var(--accent);border-radius:1px;-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:none;flex:none;width:5px;height:5px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);transform:rotate(45deg)}.cv-skill-tags{-webkit-box-lines:multiple;-moz-box-lines:multiple;-webkit-flex-wrap:wrap;flex-wrap:wrap;gap:6px;margin-top:10px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.cv-tag{border:1px solid var(--border);background:var(--surface);font-family:var(--font-mono);letter-spacing:-.01em;color:var(--text-muted);white-space:nowrap;-webkit-transition:transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease), background-color var(--speed) var(--ease);-moz-transition:transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease), background-color var(--speed) var(--ease);-webkit-transition:transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease), background-color var(--speed) var(--ease);-moz-transition:transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease), background-color var(--speed) var(--ease);transition:transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease), background-color var(--speed) var(--ease);border-radius:999px;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;gap:5px;padding:4px 9px;font-size:11.5px;text-decoration:none;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}.cv-tag:hover{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 42%, var(--border));background:var(--accent-soft);-webkit-transform:translateY(-1px);-moz-transform:translateY(-1px);transform:translateY(-1px)}.cv-tag:active{-webkit-transform:scale(.96);-moz-transform:scale(.96);transform:scale(.96)}.cv-timeline{padding-left:26px;position:relative}.cv-timeline:before{content:"";background:linear-gradient(var(--border-strong), var(--border) 70%, transparent);width:1px;position:absolute;top:8px;bottom:8px;left:5px}.cv-job{position:relative}.cv-job+.cv-job{margin-top:42px}.cv-job-dot{background:var(--surface);border:2px solid var(--border-strong);border-radius:50%;width:12px;height:12px;position:absolute;top:5px;left:-26px}.cv-job-dot[data-current=true]{background:var(--accent);border-color:var(--accent)}.cv-job-head{-webkit-box-lines:multiple;-moz-box-lines:multiple;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:baseline;align-items:baseline;gap:4px 12px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.cv-job-title{letter-spacing:-.01em;color:var(--text-strong);font-size:1.06rem;font-weight:600}.cv-job-when{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:12px}.cv-job-when[data-current=true]{color:var(--accent)}.cv-job-org{color:var(--text-muted);margin-top:6px;font-size:13.5px}.cv-job-org a{color:var(--text);border-bottom:1px solid var(--border-strong);-webkit-transition:color var(--speed) var(--ease), border-color var(--speed) var(--ease);-moz-transition:color var(--speed) var(--ease), border-color var(--speed) var(--ease);-webkit-transition:color var(--speed) var(--ease), border-color var(--speed) var(--ease);-moz-transition:color var(--speed) var(--ease), border-color var(--speed) var(--ease);transition:color var(--speed) var(--ease), border-color var(--speed) var(--ease);text-decoration:none}.cv-job-org a:hover{color:var(--accent);border-color:var(--accent)}.cv-duration{border:1px solid color-mix(in srgb, var(--accent) 26%, transparent);background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11px;display:inline-block}.cv-points{-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;gap:10px;margin-top:16px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.cv-point{color:var(--text);padding-left:20px;font-size:14.5px;line-height:1.72;position:relative}.cv-point:before{content:"";background:var(--accent);border-radius:2px;width:7px;height:1.5px;position:absolute;top:.66em;left:2px}.cv-point strong{color:var(--text-strong);font-weight:600}.cv-paper{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);padding:20px 22px 20px 24px;position:relative;overflow:hidden}.cv-paper:before{content:"";background:var(--accent);width:3px;position:absolute;top:0;bottom:0;left:0}.cv-paper-title{color:var(--text-strong);-webkit-transition:color var(--speed) var(--ease);-moz-transition:color var(--speed) var(--ease);-webkit-transition:color var(--speed) var(--ease);-moz-transition:color var(--speed) var(--ease);transition:color var(--speed) var(--ease);-webkit-align-items:baseline;align-items:baseline;gap:7px;font-size:15.5px;font-weight:600;text-decoration:none;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}.cv-paper-title:hover{color:var(--accent)}.cv-paper-authors{color:var(--text-muted);margin-top:9px;font-size:13.5px}.cv-paper-venue{font-family:var(--font-mono);color:var(--accent);margin-top:11px;font-size:12px}.cv-edu-item{border-bottom:1px solid var(--border);padding:14px 0}.cv-edu-item:first-child{padding-top:0}.cv-edu-item:last-child{border-bottom:0;padding-bottom:0}.cv-edu-head{-webkit-box-lines:multiple;-moz-box-lines:multiple;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-moz-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:baseline;align-items:baseline;gap:12px;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:flex}.cv-edu-degree{color:var(--text-strong);font-size:13.5px;font-weight:600;line-height:1.45}.cv-edu-years{font-family:var(--font-mono);color:var(--text-faint);white-space:nowrap;font-size:11.5px}.cv-edu-school{color:var(--text-muted);margin-top:6px;font-size:12.5px}.cv-edu-school a{color:inherit;border-bottom:1px solid var(--border-strong);-webkit-transition:color var(--speed) var(--ease), border-color var(--speed) var(--ease);-moz-transition:color var(--speed) var(--ease), border-color var(--speed) var(--ease);-webkit-transition:color var(--speed) var(--ease), border-color var(--speed) var(--ease);-moz-transition:color var(--speed) var(--ease), border-color var(--speed) var(--ease);transition:color var(--speed) var(--ease), border-color var(--speed) var(--ease);text-decoration:none}.cv-edu-school a:hover{color:var(--accent);border-color:var(--accent)}.cv-ext{vertical-align:-1px;width:11px;height:11px;color:var(--text-faint);-webkit-transition:transform var(--speed) var(--ease);-moz-transition:transform var(--speed) var(--ease);-webkit-transition:transform var(--speed) var(--ease);-moz-transition:transform var(--speed) var(--ease);transition:transform var(--speed) var(--ease);display:inline-block}a:hover>.cv-ext,a:hover .cv-ext{-webkit-transform:translate(2px,-2px);-moz-transform:translate(2px,-2px);transform:translate(2px,-2px)}.cv-copy{width:26px;height:26px;color:var(--text-faint);cursor:pointer;-webkit-transition:transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease), background-color var(--speed) var(--ease);-moz-transition:transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease), background-color var(--speed) var(--ease);-webkit-transition:transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease), background-color var(--speed) var(--ease);-moz-transition:transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease), background-color var(--speed) var(--ease);transition:transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease), background-color var(--speed) var(--ease);background:0 0;border:1px solid transparent;border-radius:7px;-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:none;flex:none;-webkit-box-pack:center;-moz-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex}.cv-copy svg{width:14px;height:14px}.cv-copy:hover{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 30%, transparent);background:var(--accent-soft)}.cv-copy:active{-webkit-transform:scale(.9);-moz-transform:scale(.9);transform:scale(.9)}.cv-copy[data-state=ok]{color:var(--accent)}.cv-copy[data-state=error]{color:var(--danger)}.cv-copy-feedback{font-family:var(--font-mono);letter-spacing:.02em;color:var(--accent);white-space:nowrap;font-size:11px}.cv-copy-feedback[data-state=error]{color:var(--danger)}.cv-copy-feedback--header{color:var(--text-muted)}.cv-copy-feedback:empty{display:none}.cv-contact-item .cv-copy{margin-left:auto}.cv-clock{font-variant-numeric:tabular-nums}.cv-top{z-index:50;border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(10px);width:42px;height:42px;color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;-webkit-transition:opacity var(--speed) var(--ease), transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease);-moz-transition:opacity var(--speed) var(--ease), transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease);-webkit-transition:opacity var(--speed) var(--ease), transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease);-moz-transition:opacity var(--speed) var(--ease), transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease);transition:opacity var(--speed) var(--ease), transform var(--speed) var(--ease), color var(--speed) var(--ease), border-color var(--speed) var(--ease);border-radius:50%;-webkit-box-pack:center;-moz-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-webkit-align-items:center;align-items:center;display:-webkit-inline-box;display:-moz-inline-box;display:-webkit-inline-flex;display:inline-flex;position:fixed;bottom:22px;right:22px;-webkit-transform:translateY(10px)scale(.9);-moz-transform:translateY(10px)scale(.9);transform:translateY(10px)scale(.9)}.cv-top svg{width:17px;height:17px}.cv-top[data-visible=true]{opacity:1;pointer-events:auto;-webkit-transform:none;-moz-transform:none;transform:none}.cv-top:hover{color:var(--accent);border-color:var(--accent)}@-webkit-keyframes cv-rise{0%{opacity:0;-webkit-transform:translateY(14px);-moz-transform:translateY(14px);transform:translateY(14px)}to{opacity:1;-webkit-transform:none;-moz-transform:none;transform:none}}@-moz-keyframes cv-rise{0%{opacity:0;-webkit-transform:translateY(14px);-moz-transform:translateY(14px);transform:translateY(14px)}to{opacity:1;-webkit-transform:none;-moz-transform:none;transform:none}}@keyframes cv-rise{0%{opacity:0;-webkit-transform:translateY(14px);-moz-transform:translateY(14px);transform:translateY(14px)}to{opacity:1;-webkit-transform:none;-moz-transform:none;transform:none}}[data-reveal]{-webkit-animation:cv-rise .7s var(--ease) both;-moz-animation:cv-rise .7s var(--ease) both;-webkit-animation:cv-rise .7s var(--ease) both;-moz-animation:cv-rise .7s var(--ease) both;animation:cv-rise .7s var(--ease) both;-webkit-animation-delay:calc(var(--reveal-i,0) * 80ms);-moz-animation-delay:calc(var(--reveal-i,0) * 80ms);-webkit-animation-delay:calc(var(--reveal-i,0) * 80ms);-moz-animation-delay:calc(var(--reveal-i,0) * 80ms);animation-delay:calc(var(--reveal-i,0) * 80ms)}@media (max-width:960px){.cv-hero{grid-template-columns:1fr;-webkit-box-align:start;-moz-box-align:start;-webkit-align-items:start;align-items:start;gap:36px;padding-top:56px}.cv-main{grid-template-columns:1fr;gap:48px}.cv-col--aside,.cv-col--main{grid-area:auto}}@media (max-width:640px){.cv-shell{padding-left:16px;padding-right:16px}.cv-contact-label{width:56px}}@media (prefers-reduced-motion:reduce){*,:before,:after,[data-reveal],[data-reveal]:before,[data-reveal]:after,.cv-status-dot,.cv-status-dot:before,.cv-status-dot:after{-webkit-transition-duration:.001ms!important;-moz-transition-duration:.001ms!important;transition-duration:.001ms!important;-webkit-animation-duration:.001ms!important;-moz-animation-duration:.001ms!important;animation-duration:.001ms!important;-webkit-animation-iteration-count:1!important;-moz-animation-iteration-count:1!important;animation-iteration-count:1!important}}@media print{@page{margin:1.2cm;size:auto}:root,html[data-mantine-color-scheme=dark],html[data-theme=dark]{--bg:#fff;--surface:#fff;--surface-2:#fafafa;--text:#141414;--text-strong:#000;--text-muted:#444;--text-faint:#666;--border:#dcdcdc;--border-strong:#c4c4c4;--accent:#0b6647;--accent-strong:#0b6647;--accent-contrast:#fff;--accent-soft:#eef6f2;--danger:#a5362b;--glass-edge:transparent;--shadow-sm:none;--shadow-md:none}body{color:#141414;background:#fff;font-size:10pt}.cv-top,.no-print,.cv-copy,.cv-hero:before,.app-skip-link{display:none}.cv-root{min-height:0}.cv-hero{grid-template-columns:1fr;gap:14px;padding:0 0 14px}.cv-name{margin-top:8px;font-size:26pt}.cv-role{font-size:11pt}.cv-status{margin-top:12px}.cv-contact-list{border-top:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;display:grid}.cv-contact-item{padding:3px 0}.cv-main{grid-template-columns:1fr;gap:0;padding:0}.cv-col{gap:24px}.cv-col--aside,.cv-col--main{grid-area:auto}.cv-section-head{break-after:avoid;margin-bottom:10px;padding-top:10px}.cv-paper,.cv-edu-item,.cv-skill-group,.cv-point{break-inside:avoid}.cv-job-head,.cv-job-org{break-after:avoid}.cv-job+.cv-job{margin-top:18px}.cv-points{gap:4px;margin-top:8px}.cv-tag{background:#fff}.cv-paper{box-shadow:none}a[href^=http]:not(.cv-tag):after{content:" (" attr(href) ")";color:var(--text-muted);word-break:break-all;font-size:.78em}*,:before,:after{-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-transition:none!important;-moz-transition:none!important;transition:none!important;-webkit-animation:none!important;-moz-animation:none!important;animation:none!important}[data-reveal],[data-reveal]:before,[data-reveal]:after,.cv-status-dot,.cv-status-dot:before,.cv-status-dot:after{-webkit-transition:none;-moz-transition:none;transition:none;opacity:1!important;-webkit-animation:none!important;-moz-animation:none!important;animation:none!important;-webkit-transform:none!important;-moz-transform:none!important;transform:none!important}}