:root{--bg-0:#101013;--bg-1:#16161a;--bg-2:#1c1c21;--bg-3:#232329;--bg-4:#2c2c33;--line-0:#00000080;--line-1:#ffffff0f;--line-2:#ffffff1c;--line-3:#ffffff33;--tx-0:#f2f2ef;--tx-1:#b9b9b4;--tx-2:#7d7d78;--tx-3:#55554f;--accent:#ffb224;--accent-hi:#ffc95e;--accent-dim:#8a5f0e;--accent-soft:#ffb2241f;--ok:#57c785;--ok-ink:#57c785;--err:#e5646c;--warn-ink:#fbbf24;--on-accent:#16130a;--r-win:10px;--r-lg:12px;--r-md:8px;--r-el:6px;--r-sm:4px;--font-ui:"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,"Inter",sans-serif;--font-mono:"Cascadia Mono","JetBrains Mono",Consolas,"Courier New",monospace;--shadow-win:0 1px 0 #ffffff08 inset,0 24px 70px -12px #000000d0,0 4px 18px #00000090;--shadow-pop:0 16px 48px -8px #000000cc,0 2px 8px #00000080;--shadow-el:0 1px 2px #00000060;--taskbar-h:48px;--ease-out:cubic-bezier(.22,1,.36,1);--ease-snap:cubic-bezier(.5,1.6,.4,1)}[data-theme=light]{--bg-0:#dcdde3;--bg-1:#e7e8ed;--bg-2:#f1f2f6;--bg-3:#ffffff;--bg-4:#e0e2e9;--line-0:#0000002e;--line-1:#00000014;--line-2:#00000026;--line-3:#0000004d;--tx-0:#16171d;--tx-1:#3d3f4b;--tx-2:#6a6d7c;--tx-3:#9a9dab;--accent:#c26a00;--accent-hi:#a85b00;--accent-dim:#e8930c;--accent-soft:#c26a001f;--on-accent:#ffffff;--ok:#16a34a;--ok-ink:#15803d;--warn-ink:#b45309;--shadow-win:0 1px 0 #ffffffcc inset,0 30px 80px -16px #1a1d2e4d,0 10px 28px -8px #1a1d2e33,0 2px 6px #1a1d2e1f;--shadow-pop:0 20px 55px -12px #1a1d2e45,0 4px 12px #1a1d2e26;--shadow-el:0 1px 2px #1a1d2e14,0 2px 6px #1a1d2e0f}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg-0);color:var(--tx-0);font-family:var(--font-ui);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}::selection{background:var(--accent);color:#fff}a,button{color:inherit}button{font:inherit;background:none;border:none;padding:0;cursor:pointer}img{display:block;max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb,#3a3a42) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--scroll-thumb,#33333a);border:3px solid transparent;background-clip:content-box;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hi,#45454e);background-clip:content-box;border:3px solid transparent}::-webkit-scrollbar-corner{background:transparent}:root{--scroll-thumb:#3a3a42;--scroll-thumb-hi:#45454e}[data-theme=light]{--scroll-thumb:#b9bcc7;--scroll-thumb-hi:#9ea2b0}.px-corners{-webkit-clip-path:polygon(0 4px,2px 4px,2px 2px,4px 2px,4px 0,calc(100% - 4px) 0,calc(100% - 4px) 2px,calc(100% - 2px) 2px,calc(100% - 2px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 2px) calc(100% - 4px),calc(100% - 2px) calc(100% - 2px),calc(100% - 4px) calc(100% - 2px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 2px),2px calc(100% - 2px),2px calc(100% - 4px),0 calc(100% - 4px));clip-path:polygon(0 4px,2px 4px,2px 2px,4px 2px,4px 0,calc(100% - 4px) 0,calc(100% - 4px) 2px,calc(100% - 2px) 2px,calc(100% - 2px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 2px) calc(100% - 4px),calc(100% - 2px) calc(100% - 2px),calc(100% - 4px) calc(100% - 2px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 2px),2px calc(100% - 2px),2px calc(100% - 4px),0 calc(100% - 4px))}.dither-bg{background-image:radial-gradient(var(--dither-1,#ffffff09) 1px,transparent 1px),radial-gradient(var(--dither-2,#ffffff06) 1px,transparent 1px);background-size:6px 6px,6px 6px;background-position:0 0,3px 3px}[data-theme=light] .dither-bg{--dither-1:#00000010;--dither-2:#00000009}.kbd,.mono{font-family:var(--font-mono)}.kbd{font-size:11px;padding:1px 6px;border:solid var(--line-2);border-width:1px 1px 2px;border-radius:var(--r-sm);background:var(--bg-3);color:var(--tx-1)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}*,.card,.contactBtnPrimary,.contactBtnSecondary,.ctrl,.dicon,.lightboxClose,.linkBtn,.projectLinkInline,.shotBtn,.showcaseBtn,:after,:before,[class*=titlebar],[role=button],a,body,body.is-dragging-window,body.is-dragging-window *,button,html,input,select,summary,textarea{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M3 3l7.5 17 3.2-6.8 6.8-3.2L3 3z' fill='%23ffb224' stroke='%23101013' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 0 0,default!important}[class*=handleN],[class*=handleS],body.is-resizing-n,body.is-resizing-n *,body.is-resizing-s,body.is-resizing-s *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l4 5h-3v10h3l-4 5-4-5h3V7H8l4-5z' fill='%23ffb224' stroke='%23101013' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 12 12,ns-resize!important}[class*=handleE],[class*=handleW],body.is-resizing-e,body.is-resizing-e *,body.is-resizing-w,body.is-resizing-w *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M2 12l5-4v3h10V8l5 4-5 4v-3H7v3l-5-4z' fill='%23ffb224' stroke='%23101013' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 12 12,ew-resize!important}[class*=handleNW],[class*=handleSE],body.is-resizing-nw,body.is-resizing-nw *,body.is-resizing-se,body.is-resizing-se *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h7l-2.5 2.5 7 7L18 11v7h-7l2.5-2.5-7-7L4 11V4z' fill='%23ffb224' stroke='%23101013' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 12 12,nwse-resize!important}[class*=handleNE],[class*=handleSW],body.is-resizing-ne,body.is-resizing-ne *,body.is-resizing-sw,body.is-resizing-sw *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M20 4v7l-2.5-2.5-7 7L13 18H6v-7l2.5 2.5 7-7L13 4h7z' fill='%23ffb224' stroke='%23101013' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 12 12,nesw-resize!important}