/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--spacing:.25rem;--container-xl:36rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base,components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.max-w-xl{max-width:var(--container-xl)}.flex-shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-24{padding-block:calc(var(--spacing) * 24)}.text-wrap{text-wrap:wrap}.lowercase{text-transform:lowercase}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--col:848px;--gut:64px;--pad:20px;--ext:28px;--bg:#0b0b0c;--surface:#141416;--text:#f2f2f2;--text-2:#a6a6ab;--muted:#7e7e85;--ln-construct:#ffffff12;--ln-object:#34343b;--ln-center:#ffffff38;--ln-dim:#55555e;--mark:#6f6f7b;--hatch:#ffffff13;--dot:#ffffff1a;--glow:#ffffff0f;--neon:#5cf5d4;--neon-line:#5cf5d48c;--neon-soft:#5cf5d429;--cl-h:repeating-linear-gradient(90deg,var(--ln-center) 0 12px,transparent 12px 16px,var(--ln-center) 16px 18px,transparent 18px 22px);--cl-v:repeating-linear-gradient(180deg,var(--ln-center) 0 12px,transparent 12px 16px,var(--ln-center) 16px 18px,transparent 18px 22px);--ease:cubic-bezier(.2,.7,.2,1);--dur-1:.15s;--dur-2:.22s;--dur-3:.32s;--dur-4:.56s;--t:var(--dur-1) var(--ease);--r-xs:4px;--r-sm:6px;--r-md:8px;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-base:16px;--fs-h3:20px;--fs-h2:32px;--fs-name:36px;--mono:"IBM Plex Mono",monospace;--sans:"Inter",system-ui,sans-serif;--display:"Bricolage Grotesque",Arial,sans-serif;color-scheme:dark}[data-theme=light]{--bg:#fafafa;--surface:#f4f4f5;--text:#09090b;--text-2:#3f3f46;--muted:#5f5f69;--ln-construct:#09090b12;--ln-object:#d4d4d8;--ln-center:#09090b47;--ln-dim:#a1a1aa;--mark:#71717a;--hatch:#09090b13;--dot:#09090b21;--glow:#09090b08;--neon:#0f766e;--neon-line:#0f766e80;--neon-soft:#0f766e1f;color-scheme:light}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html,body{overflow-x:clip}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font:var(--fs-base)/1.6 var(--sans);transition:background .2s,color .2s}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.i{flex-shrink:0;width:16px;height:16px}section{scroll-margin-top:64px}:focus-visible{outline:1px solid var(--neon);outline-offset:2px;box-shadow:0 0 0 4px var(--neon-soft);border-radius:var(--r-sm)}@media (width>=960px){body:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(var(--ln-construct),var(--ln-construct)) calc(50% - var(--col)/2 - var(--ext)) 0/1px 100% no-repeat, linear-gradient(var(--ln-construct),var(--ln-construct)) calc(50% + var(--col)/2 + var(--ext)) 0/1px 100% no-repeat;position:fixed;inset:0}}.frame{width:calc(100% - 12px);max-width:var(--col);border-inline:1px solid var(--ln-object);margin-inline:auto;position:relative}.hr,.band,.lined{position:relative}.hr{height:1px}.hr:before,.band:before,.lined:after{content:"";pointer-events:none;width:100vw;margin-left:-50vw;position:absolute;left:50%}.hr:before{background:var(--ln-object);height:1px;top:0}.hr:after{content:"";pointer-events:none;background:linear-gradient(var(--mark),var(--mark)) 0 5px/11px 1px no-repeat,linear-gradient(var(--mark),var(--mark)) 5px 0/1px 11px no-repeat,linear-gradient(var(--mark),var(--mark)) 100% 5px/11px 1px no-repeat,linear-gradient(var(--mark),var(--mark)) calc(100% - 5px) 0/1px 11px no-repeat;height:11px;position:absolute;top:-5px;left:-6px;right:-6px}.band{height:32px}.band:before{z-index:-1;border-block:1px solid var(--ln-object);background:repeating-linear-gradient(135deg,transparent 0 5px,var(--hatch) 5px 6px);top:0;bottom:0}.lined:after{background:var(--ln-object);height:1px;bottom:0}.band:after{content:"";pointer-events:none;background:linear-gradient(var(--mark),var(--mark)) 0 5px/11px 1px no-repeat,linear-gradient(var(--mark),var(--mark)) 5px 0/1px 11px no-repeat,linear-gradient(var(--mark),var(--mark)) 100% 5px/11px 1px no-repeat,linear-gradient(var(--mark),var(--mark)) calc(100% - 5px) 0/1px 11px no-repeat, linear-gradient(var(--mark),var(--mark)) 0 36px/11px 1px no-repeat,linear-gradient(var(--mark),var(--mark)) 5px 31px/1px 11px no-repeat,linear-gradient(var(--mark),var(--mark)) 100% 36px/11px 1px no-repeat,linear-gradient(var(--mark),var(--mark)) calc(100% - 5px) 31px/1px 11px no-repeat;position:absolute;inset:-5px -6px}header{z-index:50;background:var(--bg);border-bottom:1px solid var(--ln-object);position:sticky;top:0}.bar{align-items:center;height:56px;display:flex}.logo{width:var(--gut);border-right:1px solid var(--ln-object);height:100%;font:600 var(--fs-sm) var(--mono);letter-spacing:-.02em;transition:color var(--t);place-items:center;display:grid}.logo:hover{color:var(--neon)}header nav{font-size:var(--fs-sm);gap:28px;margin-left:auto;display:flex}header nav a{color:var(--text-2);transition:color var(--t);padding:4px 0;position:relative}header nav a:after{content:"";background:var(--neon);transform-origin:0;height:1px;transition:transform var(--t),box-shadow var(--t);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}header nav a:hover,header nav a.is-active{color:var(--text)}header nav a:hover:after,header nav a.is-active:after{transform:scaleX(1)}header nav a.is-active:after{box-shadow:0 0 6px var(--neon-soft)}.tools{border-left:1px solid var(--ln-object);align-items:center;gap:6px;height:100%;margin-left:28px;padding:0 14px;display:flex}.ibtn{border-radius:var(--r-sm);width:40px;height:40px;color:var(--text-2);transition:color var(--t),background var(--t);place-items:center;display:grid}.ibtn:hover{color:var(--neon);background:var(--surface)}#menu{display:none}@media (width<=767px){.tools{border-left:1px solid var(--ln-object);margin-left:auto;padding:0 10px}#menu{display:grid}header nav{background:var(--bg);border:1px solid var(--ln-object);visibility:hidden;opacity:0;transition:opacity var(--t),transform var(--t),visibility 0s linear .18s;border-top:0;flex-direction:column;gap:14px;padding:16px 20px;display:flex;position:absolute;top:100%;left:-1px;right:-1px;transform:translateY(-8px)}header nav a{align-self:flex-start}header.open nav{visibility:visible;opacity:1;transition:opacity var(--t),transform var(--t);transform:none}}.hero{text-align:center;background:linear-gradient(to bottom,transparent 15%,var(--bg) 100%), radial-gradient(ellipse 55% 60% at 50% 38%,var(--glow),transparent 75%), radial-gradient(circle,var(--dot) .8px,transparent 1.1px) 0 0/5px 5px;padding:60px 20px 64px;position:relative;overflow:hidden}.hero>*{position:relative}.hello{white-space:nowrap;text-align:left;transition:width var(--dur-1) var(--ease);font:600 clamp(38px,8vw,68px)/1.1 Caveat,cursive;animation:.7s both up;overflow:visible}.hello>span{padding:0 .08em;display:inline-block}.word{color:var(--text)}.caret{background:var(--sel);vertical-align:-.04em;width:.06em;min-width:2px;height:.72em;margin:0 .04em 0 .03em;animation:1s step-end infinite blink;display:inline-block}.typing .caret{animation:none}@keyframes blink{50%{opacity:0}}@keyframes up{0%{opacity:0;transform:translateY(8px)}}.dim{background:var(--ln-dim);height:1px;bottom:18px;left:0;right:0;position:absolute!important}.dim:before,.dim:after{content:"";background:var(--ln-dim);width:1px;height:9px;position:absolute;top:-4px;transform:rotate(45deg)}.dim:before{left:0}.dim:after{right:0}.dim span{background:var(--bg);font:var(--fs-2xs)/var(--fs-base) var(--mono);color:var(--muted);letter-spacing:.04em;padding:0 8px;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.profile{grid-template-columns:224px 1fr;display:grid}.p-left{border-right:1px solid var(--ln-object);place-items:center;padding:24px;display:grid;position:relative}.dia{font:var(--fs-2xs) var(--mono);color:var(--muted);position:absolute;top:8px;left:10px}.avatar{width:176px;height:176px;position:relative}.avatar img{z-index:1;object-fit:cover;border:1px solid var(--ln-object);border-radius:50%;width:100%;height:100%;display:block;position:relative}.avatar:after{content:"";z-index:1;border:1px dashed var(--ln-object);border-radius:50%;animation:50s linear infinite spin;position:absolute;inset:-5px}.avatar .cl{pointer-events:none;background:var(--cl-h) 0 50%/100% 1px no-repeat,var(--cl-v) 50% 0/1px 100% no-repeat;position:absolute;inset:-18px}@keyframes spin{to{transform:rotate(360deg)}}.p-right{flex-direction:column;min-width:0;display:flex}.ticker{flex:1;align-items:flex-end;min-height:92px;padding-bottom:12px;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 14% 86%,#0000);mask-image:linear-gradient(90deg,#0000,#000 14% 86%,#0000)}.track{width:max-content;font:var(--fs-xs) var(--mono);color:var(--muted);gap:28px;animation:32s linear infinite mq;display:flex}.track span{white-space:nowrap}.track span:before{content:"▪";opacity:.6;margin-right:8px}@keyframes mq{to{transform:translate(-50%)}}.pname,.prole{border-top:1px solid var(--ln-object);padding:0 24px}.pname{font:600 var(--fs-name)/1.15 var(--display);letter-spacing:-.025em;align-items:center;gap:10px;padding-block:12px;display:flex}.pname .i{color:#2d8cf0;width:22px;height:22px}.prole{font:13.5px var(--mono);color:var(--text-2);padding-block:13px}.prole:before{content:"•";color:var(--muted);margin-right:12px}.meta{grid-template-columns:1fr 1fr;gap:16px 24px;padding:24px;display:grid}.m{font:var(--fs-sm)/1.45 var(--mono);overflow-wrap:anywhere;align-items:center;gap:12px;min-width:0;display:flex}.box{border:1px solid var(--ln-object);border-radius:var(--r-md);background:var(--surface);width:32px;height:32px;color:var(--text-2);transition:border-color var(--t),color var(--t),box-shadow var(--t);flex-shrink:0;place-items:center;display:grid}.m .i{width:15px;height:15px}.m .nw{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.m small{font-size:var(--fs-2xs);color:var(--text-2);border:1px solid var(--ln-object);border-radius:3px;margin-left:4px;padding:0 4px}.state{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;margin-left:8px}.state:before,.dot{content:"";background:var(--muted);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.state.on{color:var(--neon)}.state.on:before,.dot{background:var(--neon);box-shadow:0 0 6px var(--neon-soft)}.socials{gap:10px;padding:20px 24px;display:flex}.sbtn{border:1px solid var(--ln-object);border-radius:var(--r-md);background:var(--surface);width:40px;height:40px;color:var(--text);transition:border-color var(--t),color var(--t),box-shadow var(--t),transform var(--t);place-items:center;display:grid}.sbtn:hover{border-color:var(--neon-line);color:var(--neon);box-shadow:0 0 12px var(--neon-soft);transform:translateY(-1px)}.sbtn .i{width:20px;height:20px}.gut:after{content:"";z-index:2;top:-6px;left:calc(var(--gut) - 5px);pointer-events:none;background:linear-gradient(var(--mark),var(--mark)) 0 5px/11px 1px no-repeat,linear-gradient(var(--mark),var(--mark)) 5px 0/1px 11px no-repeat;width:11px;height:11px;position:absolute}.gut{position:relative}.gut:before{content:"";top:0;bottom:0;left:var(--gut);background:var(--ln-object);pointer-events:none;z-index:1;width:1px;position:absolute}.tb{grid-template-columns:var(--gut) 1fr;display:grid;position:relative}.tb:before{content:"";z-index:2;pointer-events:none;height:11px;transition:filter var(--t);background:linear-gradient(var(--mark),var(--mark)) 0 5px/11px 1px no-repeat,linear-gradient(var(--mark),var(--mark)) 5px 0/1px 11px no-repeat,linear-gradient(var(--mark),var(--mark)) 100% 5px/11px 1px no-repeat,linear-gradient(var(--mark),var(--mark)) calc(100% - 5px) 0/1px 11px no-repeat, linear-gradient(var(--mark),var(--mark)) calc(var(--gut) + 1px) 5px/11px 1px no-repeat,linear-gradient(var(--mark),var(--mark)) calc(var(--gut) + 6px) 0/1px 11px no-repeat;position:absolute;bottom:-5px;left:-6px;right:-6px}.tb-n{font:500 var(--fs-xs)/1 var(--mono);color:var(--muted);letter-spacing:.06em;transition:color var(--t);place-items:center;display:grid}.tb h2{font:600 var(--fs-h2)/1.15 var(--display);letter-spacing:-.02em;align-items:baseline;gap:8px;padding:24px 20px 16px;display:flex}.count{font:400 var(--fs-xs) var(--mono);color:var(--muted);letter-spacing:0}section.is-active .tb{--mark:var(--neon)}section.is-active .tb:before{filter:drop-shadow(0 0 3px var(--neon-soft))}section.is-active .tb-n{color:var(--neon)}.about{padding:20px var(--pad) 28px calc(var(--gut) + 20px);flex-direction:column;gap:12px;max-width:72ch;list-style:none;display:flex}.about li{color:var(--text-2);font-size:var(--fs-base);padding-left:18px;position:relative}.about li:before{content:"";background:var(--muted);width:5px;height:1px;position:absolute;top:.75em;left:2px}.srow{grid-template-columns:var(--gut) 200px 1fr;border-top:1px solid var(--ln-object);display:grid}.srow:first-of-type{border-top:0}.n{font:500 var(--fs-xs) var(--mono);color:var(--muted);transition:color var(--t);place-items:center;display:grid}.srow:hover .n{color:var(--neon)}.sl{border-right:1px solid var(--ln-object);font-size:var(--fs-md);color:var(--text-2);align-items:center;padding:16px 20px;display:flex}.srow .pills{align-content:center;padding:16px 20px}.pills{flex-wrap:wrap;gap:7px;display:flex}.pill{font:var(--fs-xs)/1.6 var(--mono);border:1px solid var(--ln-object);color:var(--text-2);background:var(--surface);transition:border-color var(--t),color var(--t);border-radius:999px;padding:2px 11px}.pill:hover{border-color:var(--neon-line);color:var(--text)}.cell{justify-content:center;align-self:stretch;padding:14px 0;display:flex;position:relative}.cell:after{content:"";z-index:2;background:var(--neon);width:1px;box-shadow:0 0 6px var(--neon-soft);transition:transform var(--t);position:absolute;top:0;bottom:0;right:-1px;transform:scaleY(0)}.cur{font:400 var(--fs-2xs) var(--mono);color:var(--muted);letter-spacing:.04em}.acc{grid-template-columns:var(--gut) 1fr auto;border-top:1px solid var(--ln-object);cursor:pointer;transition:background var(--t),opacity .3s;display:grid}.tb+.acc{border-top:0}.acc:hover{background:var(--surface)}.acc>.cell{grid-row:1/span 2;align-items:flex-start;padding-top:16px}.acc .box{font:var(--fs-xs) var(--mono);color:var(--muted);width:34px;height:34px}.bd{align-self:center;min-width:0;padding:16px 20px}.role .ttl{font-weight:500}.ttl{font-weight:600;font-size:var(--fs-base)}.ttl em{font:600 var(--fs-2xs) var(--mono);color:var(--ink);background:var(--tc,transparent);letter-spacing:.05em;vertical-align:1px;text-transform:uppercase;border-radius:4px;margin-left:8px;padding:2px 6px;font-style:normal}.sub{font:var(--fs-sm) var(--mono);color:var(--text-2);margin-top:2px}.desc{font-size:var(--fs-md);color:var(--text-2);margin:6px 0 10px}.ac{align-self:center;align-items:center;gap:4px;padding:0 12px 0 8px;display:flex}.lk,.tg{border-radius:var(--r-sm);width:40px;height:40px;color:var(--muted);transition:color var(--t),background var(--t),transform var(--t);place-items:center;display:grid}.lk:hover{color:var(--neon);background:var(--bg);transform:translate(1px,-1px)}.tg .i{transition:transform var(--dur-3) var(--ease)}.acc:hover .tg,.acc.open .tg{color:var(--neon)}.acc.open .tg .i{transform:rotate(180deg)}.panel{transition:grid-template-rows var(--dur-3) var(--ease);cursor:auto;grid-column:2/-1;grid-template-rows:0fr;display:grid}.acc.open .panel{grid-template-rows:1fr}.panel>div{min-height:0;overflow:hidden}.pin{padding:0 var(--pad) 20px 20px;opacity:0;transition:opacity .2s,transform .2s;transform:translateY(-4px)}.acc.open .pin{opacity:1;transition:opacity .3s 80ms,transform .3s 80ms;transform:none}.rm{font:var(--fs-sm) var(--mono);color:var(--text-2);margin-bottom:10px}.lnk{flex-wrap:wrap;gap:18px;margin-top:2px;display:flex}.lnk a{font:var(--fs-sm) var(--mono);color:var(--text);border-bottom:1px solid var(--ln-object);transition:color var(--t),border-color var(--t);padding-bottom:1px}.lnk a:hover{color:var(--neon);border-color:var(--neon)}.acc:hover .cell:after,.acc.open .cell:after{transform:scaleY(1)}.acc:hover .box,.acc.open .box{border-color:var(--neon-line);color:var(--neon)}.xtra{transition:grid-template-rows var(--dur-3) var(--ease);grid-template-rows:0fr;display:grid}.xtra.show{grid-template-rows:1fr}.xtra>div{min-height:0;overflow:hidden}#skills .pill{align-items:center;gap:6px;padding-left:9px;display:inline-flex}.lg{fill:currentColor;width:13px;height:13px;color:var(--muted);transition:color var(--dur-2) var(--ease),transform var(--dur-2) var(--ease);flex-shrink:0}.lg.st{fill:none}#skills .pill:hover .lg,#skills .pill:focus-visible .lg,#skills .pill[aria-pressed=true] .lg{color:var(--brand);transform:scale(1.15)}button.pill{cursor:pointer}.pill[aria-pressed=true]{background:var(--neon-soft);border-color:var(--neon);color:var(--text)}.pill.hit{border-color:var(--neon-line);color:var(--text);box-shadow:0 0 0 2px var(--neon-soft)}body.flt :is(#experience,#projects) .acc:not(.match){opacity:.35}.tb{grid-template-columns:var(--gut) 1fr auto}.fnote{padding-right:var(--pad);font:var(--fs-xs) var(--mono);color:var(--text-2);white-space:nowrap;align-items:center;gap:10px;display:none}.fnote.on{animation:.25s up;display:inline-flex}.clr{color:var(--neon);border-bottom:1px solid var(--neon-line);font:inherit}.moreW{border-top:1px solid var(--ln-object);text-align:center;z-index:2;background:var(--bg);padding:18px;position:relative}.more{font:500 var(--fs-sm) var(--sans);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--ln-object);transition:border-color var(--t),box-shadow var(--t),color var(--t);align-items:center;gap:6px;padding:7px 16px;display:inline-flex}.more:hover{border-color:var(--neon-line);box-shadow:0 0 12px var(--neon-soft)}.more .i{width:14px;height:14px;transition:transform var(--dur-3) var(--ease)}.more.up .i{transform:rotate(180deg)}.cta{text-align:center;padding:76px 24px 68px;position:relative}.cta:before{content:"";background:radial-gradient(circle,var(--dot) 1px,transparent 1.3px) 0 0/9px 9px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(65% 70% at 50% 45%,#000,#0000);mask-image:radial-gradient(65% 70% at 50% 45%,#000,#0000)}.cta>*{position:relative}.cta h2{font:600 38px/1.2 var(--display);letter-spacing:-.02em}.cta p{max-width:500px;color:var(--text-2);font-size:var(--fs-base);margin:14px auto 0}.btn{border-radius:var(--r-md);background:var(--text);height:44px;color:var(--bg);font-weight:500;font-size:var(--fs-sm);transition:transform var(--t),box-shadow var(--t);align-items:center;gap:8px;margin-top:26px;padding:0 20px;display:inline-flex}.btn:hover{box-shadow:0 0 0 1px var(--neon),0 0 18px var(--neon-soft);transform:translateY(-1px)}.btn .i{width:14px;height:14px}.cmeta{font:var(--fs-xs) var(--mono);color:var(--muted);flex-wrap:wrap;justify-content:center;gap:18px;margin-top:22px;display:flex}.cmeta span{align-items:center;gap:6px;display:inline-flex}.cmeta .i{width:13px;height:13px}.cmeta .dot{margin-right:0}.fstrip{justify-content:center;padding:36px 0 30px;display:flex}.strip{border:1px solid var(--ln-object);display:inline-flex}.strip a{border-left:1px solid var(--ln-object);width:46px;height:46px;color:var(--text-2);transition:color var(--t),background var(--t);place-items:center;display:grid}.strip a:first-child{border-left:0}.strip a:hover{color:var(--neon);background:var(--surface)}.fbot{font:var(--fs-xs) var(--mono);color:var(--muted);grid-template-columns:1fr auto auto;display:grid}.fbot>*{padding:16px var(--pad)}.fbot>*+*{border-left:1px solid var(--ln-object)}.fbot a{transition:color var(--t)}.fbot a:hover{color:var(--neon)}.fpad{height:40px}.fab{z-index:60;border-radius:var(--r-md);background:var(--text);height:46px;color:var(--bg);font-weight:500;font-size:var(--fs-sm);transition:transform var(--t),box-shadow var(--t);align-items:center;gap:10px;padding:0 20px;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 1px 2px #0003}.fab:hover{box-shadow:0 0 0 1px var(--neon),0 0 18px var(--neon-soft);transform:translateY(-1px)}@media (width<=767px){:root{--gut:48px;--pad:16px;--fs-h2:26px;--fs-name:26px}.profile{grid-template-columns:140px 1fr}.p-left{padding:18px}.avatar{width:100px;height:100px}.avatar .cl{inset:-12px}.pname,.prole{padding-inline:14px}.prole{font-size:var(--fs-sm)}.meta{grid-template-columns:1fr;padding:22px 16px}.socials{padding:18px 16px}.srow{grid-template-columns:var(--gut) 1fr}.sl{border-right:0;padding:14px 14px 0}.srow .pills{grid-column:2;padding:10px 14px 14px}.bd{padding:14px}.pin{padding:0 14px 16px}.ac{gap:0;padding:0 6px 0 0}.fnote{padding:0 14px 12px calc(var(--gut) + 14px);grid-column:1/-1}.about{padding-left:calc(var(--gut) + 14px)}.cta h2{font-size:30px}.fbot{grid-template-columns:1fr auto}.fref{display:none}.fab{bottom:14px;right:14px}}:root{--blue:#3d63ee;--yellow:#f7c948;--pink:#ff6aa8;--green:#38c98a;--orange:#ff7b47;--ink:#121212;--sel:#3d63ee;--rule:#ffffff12;--hand:"Caveat",cursive}[data-theme=light]{--sel:#2563eb;--rule:#09090b1a;--blue:#2563eb;--yellow:#f5c033;--pink:#f0568f;--green:#22b07d;--orange:#f97316}.zz{--s:5px;-webkit-mask:conic-gradient(from 45deg at left,#0000,#000 1deg 89deg,#0000 90deg) left/60% var(--s) repeat-y,conic-gradient(from -135deg at right,#0000,#000 1deg 89deg,#0000 90deg) right/60% var(--s) repeat-y;-webkit-mask:conic-gradient(from 45deg at left,#0000,#000 1deg 89deg,#0000 90deg) left/60% var(--s) repeat-y,conic-gradient(from -135deg at right,#0000,#000 1deg 89deg,#0000 90deg) right/60% var(--s) repeat-y;-webkit-mask:conic-gradient(from 45deg at left,#0000,#000 1deg 89deg,#0000 90deg) left/60% var(--s) repeat-y,conic-gradient(from -135deg at right,#0000,#000 1deg 89deg,#0000 90deg) right/60% var(--s) repeat-y;mask:conic-gradient(from 45deg at left,#0000,#000 1deg 89deg,#0000 90deg) left/60% var(--s) repeat-y,conic-gradient(from -135deg at right,#0000,#000 1deg 89deg,#0000 90deg) right/60% var(--s) repeat-y}.stk{font:600 var(--fs-2xs)/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink);background:var(--c,var(--yellow));border-radius:5px;align-items:center;gap:6px;padding:6px 9px;display:inline-flex;box-shadow:2px 2px #0006}.sticky{font:600 19px/1 var(--hand);color:var(--ink);background:var(--c,var(--yellow));padding:5px 10px 6px;box-shadow:2px 3px #00000059}.hand{font-family:var(--hand);font-weight:600}.hero{padding:66px 20px 40px}.sel{border:1px dashed var(--sel);margin-top:6px;padding:4px 22px 10px;display:inline-block;position:relative}.sel>i{background:var(--bg);border:1.5px solid var(--sel);width:9px;height:9px;position:absolute}.sel .tl{top:-5px;left:-5px}.sel .tr{top:-5px;right:-5px}.sel .bl{bottom:-5px;left:-5px}.sel .br{bottom:-5px;right:-5px}.sel-sz{background:var(--sel);color:#fff;font:500 var(--fs-2xs)/1 var(--mono);white-space:nowrap;border-radius:3px;padding:4px 6px;position:absolute;bottom:-25px;left:50%;transform:translate(-50%)}.cursor{filter:drop-shadow(1px 2px #00000059);width:24px;height:24px;animation:2.6s ease-in-out infinite nudge;position:absolute;top:-5px;left:calc(100% - 3px)}@keyframes nudge{50%{transform:translate(-5px,-5px)}}.sel>.tag,.sel>.note{z-index:2;animation:5.5s ease-in-out infinite float;position:absolute}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.tag{white-space:nowrap}.sel>.tag.a{--c:var(--green);animation-duration:5.2s;top:-44px;right:calc(50% + 74px);rotate:-6deg}.sel>.tag.b{--c:var(--yellow);animation-duration:6.1s;animation-delay:-2s;top:-46px;left:calc(50% + 40px);rotate:5deg}.note{white-space:nowrap;color:var(--text-2);align-items:flex-end;gap:2px;display:flex}.note svg{width:38px;height:28px;margin-bottom:16px}.sel>.note.c{animation-duration:5.8s;animation-delay:-1s;top:calc(100% + 9px);right:calc(50% + 96px)}.note.c .sticky{transform:rotate(-4deg)}.sel>.note.d{flex-direction:row-reverse;animation-duration:6.6s;animation-delay:-3.4s;top:calc(100% + 9px);left:calc(50% + 96px)}.note.d svg{transform:scaleX(-1)}.note.d .sticky{--c:var(--green);transform:rotate(3deg)}.avail{font:500 var(--fs-2xs) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:70px}.avail span{background:var(--bg);padding:0 6px}.avail .dot{background:var(--sel);box-shadow:none}.tape{z-index:3;opacity:.78;background:var(--tc);width:56px;height:18px;position:absolute}.tape.t1{--tc:var(--blue);top:12px;left:-16px;transform:rotate(-40deg)}.tape.t2{--tc:var(--yellow);top:12px;right:-16px;transform:rotate(40deg)}#about{--c:var(--yellow)}#skills{--c:var(--green)}#experience{--c:var(--pink)}#projects{--c:var(--blue);--ci:#fff}#credentials{--c:var(--orange)}.tb-n b{font:600 var(--fs-xs)/1 var(--mono);color:var(--ci,var(--ink));background:var(--c);clip-path:polygon(0 0,calc(100% - 6px) 0,100% 100%,0 100%);transition:transform var(--t);border-radius:3px 0 0;align-items:center;gap:5px;padding:6px 12px 6px 7px;display:inline-flex}.tb-n b:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}section.is-active .tb-n b{transform:translateY(-3px)}[data-theme=light] .nudge{color:var(--pink)}@supports (color:color-mix(in lab, red, red)){[data-theme=light] .nudge{color:color-mix(in srgb,var(--pink) 62%,#000)}}.srow>.n{font:600 var(--fs-md)/1 var(--mono);color:var(--text-2);transition:color var(--t);place-self:center}.cur{font:600 var(--fs-2xs)/1 var(--mono);color:var(--ink);background:var(--green);letter-spacing:.07em;padding:5px 9px}.btnw{margin-top:26px;display:inline-block;position:relative}.btnw .btn{margin-top:0}.nudge{font:600 22px/1 var(--hand);color:var(--pink);white-space:nowrap;align-items:flex-end;gap:4px;display:flex;position:absolute;top:-14px;right:calc(100% + 10px);transform:rotate(-4deg)}.nudge svg{width:40px;height:26px;color:var(--text-2)}@media (width<=767px){.hero{padding:62px 16px 34px}.note,.tag.b,.nudge{display:none}.avail{margin-top:40px}.sel>.tag.a{top:-42px;right:calc(50% + 24px)}}.rv{opacity:0;transition:opacity var(--dur-4) var(--ease) var(--d,0s),transform var(--dur-4) var(--ease) var(--d,0s);transform:translateY(12px)}.rv.in{opacity:1;transform:none}.ticker:hover .track{animation-play-state:paused}.ticker{pointer-events:auto}.hero .tag,.hero .note{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:translate var(--dur-3) var(--ease),filter var(--t)}.hero .tag:hover,.hero .note:hover{filter:drop-shadow(0 4px 6px #0000004d)}.hero .drag{cursor:grabbing;z-index:5;transition:filter var(--t);filter:drop-shadow(0 10px 14px #0006);animation-play-state:paused}.fab{transition:transform var(--t),box-shadow var(--t),opacity .25s}@media (width<=767px){.fab{border-radius:50%;justify-content:center;width:48px;height:48px;padding:0}.fab .fl{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}[data-theme=light] .pill,[data-theme=light] .sbtn,[data-theme=light] .more,[data-theme=light] .box,[data-theme=light] .avatar img,[data-theme=light] .tb{background:#fff}#experience .gt{font-size:var(--fs-h3);flex-wrap:wrap;align-items:center;gap:8px 12px;line-height:1.3;display:flex}.pulse{background:var(--ink);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:6px;animation:1.6s ease-in-out infinite blinkdot;display:inline-block}@keyframes blinkdot{50%{opacity:.25}}.pj{grid-template-columns:minmax(0,1fr) min(240px,42%);align-items:start;gap:24px;display:grid}.pj-t{min-width:0}.shots{aspect-ratio:3/2;border:1px solid var(--ln-object);border-radius:var(--r-md);background:var(--surface);overflow:hidden}@media (width<=767px){.pj{grid-template-columns:1fr}.shots{width:min(240px,100%)}}.pname,.tb h2,.cta h2{background:linear-gradient(100deg,var(--text) 40%,var(--neon) 50%,var(--text) 60%) 0 0/300% 100%;color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;animation:6s linear infinite sheen}.pname .i,.tb h2 .count,.cta h2 :is(i,b,em){-webkit-text-fill-color:currentColor;background:0 0}@keyframes sheen{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.pname,.tb h2,.cta h2{color:var(--text);-webkit-text-fill-color:currentColor;background:0 0;animation:none}}::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal;animation:none}.vt *,.vt :before,.vt :after{transition:none!important}@media (width<=767px){.lnk a{min-height:44px;text-decoration:underline;-webkit-text-decoration-color:var(--ln-object);-webkit-text-decoration-color:var(--ln-object);text-decoration-color:var(--ln-object);text-underline-offset:4px;border-bottom:0;align-items:center;display:inline-flex}.lk,.tg,.ibtn,.sbtn{width:44px;height:44px}#skills .pill{padding-block:6px}.more{padding:10px 18px}}@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation:none!important}}:root{--fs-2xs:.75rem;--fs-xs:.75rem;--fs-sm:.875rem;--fs-md:1rem;--fs-base:1rem;--fs-h3:1.25rem;--fs-h2:clamp(1.5rem, 3vw, 2rem);--fs-name:clamp(1.5rem, 3vw, 2.25rem);--leading-heading:1.2;--leading-body:1.6;--leading-detail:1.35;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--r-lg:12px;--content-inset:12px;--control-size:44px;--pad:var(--content-inset);--ln-construct:#ffffff09;--ln-object:#ffffff1d;--ln-center:#ffffff21;--ln-dim:#ffffff38;--mark:#ffffff47;--hatch:#ffffff09;--signature-line:#ffffff30}[data-theme=light]{--bg:#fff;--surface:#fafbfc;--glow:#09090b04;--dot:#09090b14;--ln-construct:#09090b09;--ln-object:#09090b1f;--ln-center:#09090b26;--ln-dim:#09090b40;--mark:#09090b4d;--hatch:#09090b09;--signature-line:#09090b3b}.frame{border-inline-width:.75px}header{border-bottom-width:.75px}.p-left{border-right-width:.75px}.srow,.acc,.pname,.prole,.moreW{border-top-width:.75px}.box,.pill,.sbtn,.shots,.strip{border-width:.75px}#skills .pill{cursor:default}#skills .pill:hover{border-color:var(--brand);outline:1px solid var(--brand)}.tech-logo{object-fit:contain;filter:grayscale();opacity:.7;transition:filter var(--t), opacity var(--t), transform var(--t)}#skills .pill:hover .tech-logo{filter:none;opacity:1}.profile{grid-template-columns:224px minmax(0,1fr)}.pname,#experience .gt{overflow-wrap:anywhere}.ttl em{white-space:normal;overflow-wrap:anywhere;-webkit-box-decoration-break:clone;box-decoration-break:clone;max-width:calc(100% - 8px);display:inline-block}.p-left{min-height:224px}.avatar{width:auto;height:auto;position:absolute;inset:24px}.avatar img{object-fit:cover;border-radius:0}.avatar:after{border-radius:0;animation:none}.avatar img{transition:transform .2s,filter .2s,border-color .2s,box-shadow .2s}@media (hover:hover){.avatar:hover img{filter:brightness(1.08);border-color:var(--neon-line);box-shadow:0 0 16px var(--neon-soft)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.avatar:hover img{transform:translateY(-2px)scale(1.025)}}.tb{z-index:2;background:var(--bg);grid-template-columns:1fr auto}.tb-n,.gut:after{display:none}.tb h2{padding-block:8px}.tb:before,.gut:after{content:none;display:none}.pname,.prole{padding-block:8px}.meta{row-gap:10px;padding-block:12px}.socials{padding-block:10px}.about{gap:8px;padding-block:12px}.sl,.srow .pills,.bd,.acc>.cell{padding-block:10px}.pin{padding-bottom:12px}.rm{margin-bottom:6px}.desc{margin-block:4px 8px}.moreW{padding-block:10px}.cta{padding-block:44px 40px}.cta p{margin-top:10px}.btnw{margin-top:18px}.cmeta{margin-top:16px}.hero{padding-block:56px 24px}:is(.pname,.prole,.meta,.socials,.tb h2,.sl,.srow .pills,.bd,.pin,.cta,.hero){padding-inline:var(--content-inset)}.about{width:100%;max-width:none;padding-inline:calc(var(--gut) + var(--content-inset)) var(--content-inset)}.about li{padding-left:14px}#about .tb h2,#skills .tb h2{color:var(--text);-webkit-text-fill-color:currentColor;background:0 0;animation:none}#about .about{gap:8px;padding:20px 26px}#about .about li{line-height:var(--leading-body);padding-left:20px}#about .about li:before{border-radius:50%;width:6px;height:6px;top:.65em;left:0}#skills .srow{grid-template-columns:minmax(0,26%) minmax(0,1fr)}#skills .sl{border-right:1px dashed var(--ln-object);line-height:var(--leading-body);padding:18px 18px 18px 26px;display:block}.stack-number{color:var(--muted);font-family:var(--mono);margin-right:4px;font-style:italic}#skills .srow .pills{grid-column:auto;align-content:center;align-items:center;gap:6px;padding:18px 16px}#skills .pill{color:var(--text);font-size:var(--fs-sm);padding:2px 10px;line-height:1.5}#skills .tech-logo{width:17px;height:17px}@media (width<=540px){#about .about{padding:16px}#skills .srow{grid-template-columns:minmax(0,1fr)}#skills .sl{border-right:0;padding:12px 16px 0}#skills .srow .pills{padding:10px 16px 16px}}@media (width<=767px){:root{--content-inset:10px;--pad:var(--content-inset)}header nav{padding-inline:var(--content-inset)}.p-left{min-height:140px}.avatar{inset:18px}.tb .fnote{padding-left:20px}.sl{padding-block:8px 0}.srow .pills{padding-block:8px 10px}.cta{padding-block:32px}:root{--content-inset:14px;--gut:40px;--fs-name:1.5rem}header nav{gap:2px;max-height:calc(100dvh - 56px);padding:8px;overflow-y:auto}header nav a{border-radius:4px;align-self:stretch;align-items:center;min-height:44px;padding:8px 14px;display:flex}header nav a.is-active{background:var(--neon-soft)}.hero{padding-block:64px 20px}.hello{font-size:clamp(24px,7vw,46px)}.sel{padding-inline:16px}.sel>.tag{font-size:var(--fs-xs);display:block}.sel>.tag.a{top:-42px;right:calc(50% + 10px)}.sel>.tag.b{top:-42px;left:calc(50% + 10px)}.sel>.note{font-size:var(--fs-xs);gap:0;display:flex}.sel>.note.c{top:calc(100% + 28px);right:calc(50% + 18px)}.sel>.note.d{top:calc(100% + 28px);left:calc(50% + 18px)}.hero .note svg{width:20px;height:24px;margin-bottom:10px}.hero .avail{margin-top:94px}.avail{letter-spacing:.025em;font-size:var(--fs-xs)}.band{height:22px}.band:after{display:none}.profile{grid-template-columns:108px minmax(0,1fr)}.p-left{min-height:154px;padding:0;overflow:hidden}.avatar{width:auto;height:auto;inset:0}.avatar img{object-position:center}.avatar .cl,.avatar:after{display:none}.ticker{min-height:36px;padding-bottom:6px}.pname{overflow-wrap:normal;gap:6px;line-height:1.2}.pname .i{width:18px;height:18px}.prole{font-size:var(--fs-xs);line-height:1.5}.prole:before{margin-right:6px}.role-window{min-height:3em}.role-line{overflow-wrap:anywhere}.meta{row-gap:12px}.m{font-size:var(--fs-xs);gap:10px}.socials{gap:8px}.tb h2{padding:8px 14px;line-height:1.25}#about .about{gap:12px;padding:16px 14px}#about .about li{font-size:var(--fs-md);padding-left:16px}.about-collapsible .about-copy{max-height:150px;transition:max-height .5s;overflow:hidden;-webkit-mask-image:linear-gradient(#000 55%,#0000 100%);mask-image:linear-gradient(#000 55%,#0000 100%)}.about-collapsible.about-expanded .about-copy{max-height:var(--about-height,2000px);-webkit-mask-image:none;mask-image:none}.about-more{padding-block:6px}#skills .srow{grid-template-columns:minmax(0,1fr)}#skills .sl{font-size:var(--fs-sm);border-right:0;padding:12px 14px 0}#skills .srow .pills{padding:10px 14px 16px}#skills .pill{font-size:var(--fs-xs);padding:3px 9px}#skills .tech-logo{width:15px;height:15px}.acc{grid-template-columns:var(--gut) minmax(0, 1fr) 44px}.acc .box{width:28px;height:28px}.acc>.cell{padding-top:14px}.bd{padding:12px 8px}.ac{flex-direction:column;gap:0;padding:0}.ttl{line-height:1.4}.sub,.rm{font-size:var(--fs-xs);overflow-wrap:anywhere;line-height:1.6}.pin{padding:0 14px 16px 8px}.pj{gap:14px}.shots{width:100%;max-width:360px}.lnk{gap:4px 16px}.more{min-height:44px}.cta{padding:32px 18px}.cta h2{font-size:25px}.cta p{font-size:var(--fs-sm);line-height:1.65}.cmeta{font-size:var(--fs-xs);gap:10px 16px}.fab{bottom:max(14px, env(safe-area-inset-bottom))}}@media (width<=359px){.profile{grid-template-columns:92px minmax(0,1fr)}.pname{font-size:1.375rem}.avatar{inset:0}}@media (width>=768px){.about-more{display:none}}@media (hover:none){#skills .tech-logo{filter:none;opacity:1}}:is(.more,.btn,.fab){height:var(--control-size);min-height:var(--control-size);font-size:var(--fs-sm);justify-content:center;padding:0 16px;line-height:1}:is(.ibtn,.sbtn,.lk,.tg){width:var(--control-size);height:var(--control-size);min-width:var(--control-size);padding:0}@media (width<=767px){.more{height:var(--control-size);min-height:var(--control-size)}.fab{width:var(--control-size);padding:0}}@media (prefers-reduced-motion:no-preference){:is(#certificate-viewer,#cv-viewer)[open]::backdrop{animation:.22s ease-out both viewer-backdrop-in}:is(#certificate-viewer,#cv-viewer)[data-closing]::backdrop{animation:.16s ease-in both viewer-backdrop-out}}@keyframes viewer-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes viewer-backdrop-out{0%{opacity:1}to{opacity:0}}body{line-height:var(--leading-body)}.pname,.tb h2,.cta h2{font-family:var(--display);font-weight:600}.tb h2{line-height:var(--leading-heading)}.cta h2{font-size:clamp(1.5rem,3.5vw,2.375rem);line-height:var(--leading-heading)}.ttl{font:600 var(--fs-base)/var(--leading-heading) var(--sans)}.desc,.cta p{font:400 var(--fs-md)/var(--leading-body) var(--sans)}.prole{font-family:var(--sans);font-size:var(--fs-sm);line-height:var(--leading-detail)}.m,.sub,.rm,.lnk a{font-size:var(--fs-sm);line-height:var(--leading-detail)}.m{font-family:var(--sans)}.count,.state,.cmeta{font-size:var(--fs-xs);line-height:var(--leading-detail)}:is(.more,.btn,.fab){font-family:var(--sans);font-size:var(--fs-sm);font-weight:500}@media (width<=767px){.prole,.m,.sub,.rm{font-size:var(--fs-xs)}}.lnk{align-items:center;gap:8px 18px}.lnk :is(a,button){min-height:var(--control-size);color:var(--text);font:500 var(--fs-sm)/var(--leading-detail) var(--sans);text-decoration:underline;-webkit-text-decoration-color:var(--ln-dim);-webkit-text-decoration-color:var(--ln-dim);text-decoration-color:var(--ln-dim);text-underline-offset:5px;transition:color var(--t), text-decoration-color var(--t);background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;gap:6px;margin:0;padding:8px 0;display:inline-flex}.lnk :is(a,button):hover{color:var(--neon);text-decoration-color:currentColor}:is(.ibtn,.sbtn,.lk,.tg){border-radius:var(--r-sm)}.tg:hover{color:var(--neon);background:var(--neon-soft)}#projects .acc:not(.open) .panel{visibility:hidden}:is(button,a[href]):focus-visible{outline:2px solid var(--neon);outline-offset:3px}button:disabled{cursor:default;opacity:.4}button:disabled:hover{box-shadow:none;transform:none}:is(button,.btn,.sbtn,.ibtn,.lk,.tg,.lnk a){-webkit-tap-highlight-color:transparent}@media (width<=767px){.lnk :is(a,button){min-height:var(--control-size)}}@media (prefers-reduced-motion:reduce){:is(button,.btn,.sbtn,.ibtn,.lk,.tg,.lnk a){transition:none}:is(.btn,.sbtn,.lk):hover{transform:none}}:is(.cv-controls,.pdf-controls) button{min-width:var(--control-size);min-height:var(--control-size);font:500 var(--fs-sm)/var(--leading-detail) var(--sans)}:is(.cv-toolbar,.viewer-toolbar,.study-toolbar){gap:var(--space-3)}:is(.cv-actions,.viewer-actions,.study-links){gap:var(--space-2)}.cv-controls button{border-color:var(--ln-object)}@media (width<=767px){#about .about{gap:8px;padding-block:12px}#about .about li,.project-description,#credentials .desc{font-size:var(--fs-sm);line-height:1.55}.meta{row-gap:8px;padding-block:10px}.bd{padding-block:10px}.ttl{line-height:1.35}.sub,.rm{line-height:1.45}.pills{gap:6px}#projects .bd>.pills{margin-top:6px}.pin{padding-bottom:12px}.cta p{line-height:1.55}header nav{border-radius:0 0 var(--r-lg) var(--r-lg);transform-origin:top;clip-path:inset(0 0 100%);transition:opacity .22s ease, transform .28s var(--ease), clip-path .28s var(--ease), visibility 0s linear .28s;gap:4px;padding:8px;transform:translateY(-8px)scale(.98);box-shadow:0 16px 32px #0002}header nav a{font-size:var(--fs-sm);opacity:0;transition:opacity .16s ease, transform .16s ease, color var(--t), background var(--t);padding:10px 14px;transform:translateY(-6px)}header nav a:after{display:none}header nav a:first-child{--nav-index:0}header nav a:nth-child(2){--nav-index:1}header nav a:nth-child(3){--nav-index:2}header nav a:nth-child(4){--nav-index:3}header nav a:nth-child(5){--nav-index:4}header nav a:nth-child(6){--nav-index:5}header.open nav{clip-path:inset(0);transition:opacity .22s ease, transform .28s var(--ease), clip-path .28s var(--ease), visibility 0s;transform:translateY(0)scale(1)}header.open nav a{opacity:1;transition-delay:calc(35ms * var(--nav-index));transform:translateY(0)}#menu .i{transition:transform .22s var(--ease)}header.open #menu .i{transform:rotate(90deg)}}@media (width<=767px) and (prefers-reduced-motion:reduce){header nav,header.open nav,header nav a,header.open nav a,#menu .i{transition:none;transform:none}header nav,header.open nav{clip-path:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
