html,body{height:100%;overflow-x:hidden;overflow-y:auto}.bar{height:49.6px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border-bottom:1px solid var(--outline);box-shadow:0 5.1px 18.8px #00000052;backdrop-filter:blur(5.1px);-webkit-backdrop-filter:blur(5.1px);position:sticky;top:0;z-index:2000;overflow:visible;padding:0;margin-bottom:-1px}.bar-inner{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:9.2px;padding:0 12.3px;height:49.6px}.brand{display:inline-flex;align-items:center;gap:7.7px;font-weight:700;letter-spacing:.31px;font-size:12px;white-space:nowrap;min-width:0}.dot{color:var(--accent)}.actions,.actions-wide{display:inline-flex;gap:6.2px;justify-self:end}.ghost,.primary{padding:6.2px 9.2px;border-radius:7.7px;border:1px solid var(--outline);background:var(--panel);transition:transform .12s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;font-weight:600;font-size:10.3px;white-space:nowrap}.ghost:hover{transform:translateY(-.85px);border-color:var(--outline);background:var(--panel-2);box-shadow:0 5.1px 15.4px #00000040}.primary{border-color:var(--outline)}.primary:hover{background:var(--panel-2);transform:translateY(-.85px);box-shadow:0 5.1px 15.4px #00000040}.menu{position:relative;justify-self:end;display:none;z-index:2100}.menu-trigger{height:26.2px;min-width:26.2px;padding:0 7.7px;border-radius:7.7px;border:1px solid var(--outline);background:var(--panel);color:var(--text);font-weight:700;cursor:pointer;transition:transform .12s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease}.menu-trigger:hover{transform:translateY(-.85px);background:var(--panel-2);box-shadow:0 5.1px 15.4px #00000040}.menu-panel{position:absolute;top:calc(100% + 6.2px);right:0;min-width:154px;padding:6.2px;border-radius:9.2px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--outline);box-shadow:0 15.4px 37.6px #00000059;z-index:2500;animation:menu-pop .14s ease both}@keyframes menu-pop{0%{opacity:0;transform:translateY(-3.4px)}to{opacity:1;transform:translateY(0)}}.menu-item{display:block;width:100%;padding:6.9px 7.7px;margin:1.5px 0;text-align:left;border-radius:6.2px;border:1px solid transparent;background:transparent;color:var(--text);font-size:10.3px;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease,transform .08s ease}.menu-item:hover{background:var(--panel-2);border-color:var(--outline);transform:translateY(-.85px)}@media (max-width: 820px){.bar{height:43.1px}.bar-inner{height:43.1px;padding:0 9.2px}.actions-wide{display:none}.menu{display:block}.brand{font-size:11.1px}}@media (prefers-reduced-motion: reduce){.ghost,.primary,.menu-trigger,.menu-item{transition:none!important}}:root:not([data-theme=light]) .mode-toggle,:root:not([data-theme=light]) .mode-toggle:hover{background:#f5f5f5;color:#0f1115}:root[data-theme=light] .mode-toggle,:root[data-theme=light] .mode-toggle:hover{background:#0f1115;color:#f5f5f5}.tabs{height:47.9px;display:flex;gap:5.1px;align-items:center;padding:0 6.8px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border-top:1px solid var(--outline);border-bottom:1px solid var(--outline);box-shadow:0 5.7px 20.9px #00000047;backdrop-filter:blur(5.7px);-webkit-backdrop-filter:blur(5.7px);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{position:relative;height:30.8px;padding:0 10.3px;border-radius:8.6px;background:transparent;color:var(--muted);border:1px solid transparent;font-weight:600;cursor:pointer;transition:color .2s ease,background .2s ease,transform .08s ease,box-shadow .18s ease;font-size:12px;flex-shrink:0}.tab:hover{color:var(--text);background:var(--panel-2);box-shadow:0 5.7px 15.2px #00000038}.tab:active{transform:translateY(.95px)}.tab.is-active{color:#0f1115;background:var(--accent);box-shadow:0 5.7px 17.1px color-mix(in oklab,var(--accent) 30%,transparent)}.indicator{position:absolute;left:50%;bottom:-12px;translate:-50% 0;width:15.4px;height:15.4px;background:radial-gradient(circle at 50% 0,color-mix(in oklab,var(--accent) 60%,transparent),transparent 70%);pointer-events:none}@media (max-width: 640px){.tabs{height:41px;gap:3.4px}.tab{padding:0 8.6px;font-size:11.1px;height:29.1px}.indicator{display:none}}.footer{padding:14.58px 0;background:linear-gradient(180deg,color-mix(in oklab,var(--panel) 90%,transparent),color-mix(in oklab,var(--panel-2) 90%,transparent));border-top:1px solid var(--outline);box-shadow:0 -1.62px 16.2px #0006;backdrop-filter:blur(4.86px);-webkit-backdrop-filter:blur(4.86px);font-size:10.53px;color:var(--muted);overflow:visible;isolation:isolate}.footer-inner{max-width:891px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12.96px 16.2px;padding:0 19.44px;width:100%;box-sizing:border-box}.footer-left{display:flex;align-items:center;gap:11.34px;justify-content:flex-start;margin-left:0}.brand{display:inline-flex;align-items:center;gap:4.86px;font-weight:700;color:var(--text);letter-spacing:.243px}.dot{color:var(--accent);font-size:11.34px;translate:0 .81px}.social-links{display:flex;align-items:center;gap:8.1px}.social-link{position:relative;display:inline-flex;align-items:center;justify-content:center;height:22.68px;width:22.68px;border-radius:50%;background:color-mix(in oklab,var(--panel-2) 85%,transparent);border:1px solid color-mix(in oklab,var(--outline) 80%,transparent);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;will-change:transform,box-shadow;z-index:0;overflow:visible}.social-link:after{content:"";position:absolute;inset:-4.86px;border-radius:50%;background:radial-gradient(circle at 50% 50%,color-mix(in oklab,var(--accent) 38%,transparent),transparent 65%);opacity:0;transform:scale(.9);transition:opacity .2s ease,transform .2s ease;pointer-events:none;z-index:-1}.social-link:hover,.social-link:focus-visible{transform:translateY(-1.62px) scale(1.08);border-color:color-mix(in oklab,var(--accent) 40%,var(--outline));box-shadow:0 0 11.34px color-mix(in oklab,var(--accent) 40%,transparent)}.social-link:hover:after,.social-link:focus-visible:after{opacity:1;transform:scale(1)}.social-icon{width:100%;height:100%;object-fit:contain;filter:grayscale(15%) brightness(.95);transition:filter .18s ease}.social-link:hover .social-icon,.social-link:focus-visible .social-icon{filter:none}.footer-center{display:flex;justify-content:center}.footer-actions{display:inline-flex;align-items:center;gap:8.1px}.link-chip{position:relative;display:inline-flex;align-items:center;gap:4.86px;padding:4.86px 9.72px;font-size:9.72px;font-weight:500;color:var(--text);border-radius:9999px;border:1px solid var(--outline);background:color-mix(in oklab,var(--panel-2) 88%,transparent);transition:all .2s ease;text-decoration:none;line-height:1;cursor:pointer;z-index:0}.link-chip-btn{appearance:none;-webkit-appearance:none;border:0;background:transparent}.link-chip:after{content:"";position:absolute;inset:-6.48px;border-radius:9999px;background:radial-gradient(circle at 50% 50%,color-mix(in oklab,var(--accent) 24%,transparent),transparent 70%);opacity:0;transform:scale(.92);transition:opacity .2s ease,transform .2s ease;pointer-events:none;z-index:-1}.link-chip:hover,.link-chip:focus-visible{background:var(--panel);border-color:color-mix(in oklab,var(--accent) 45%,var(--outline));color:var(--accent);transform:translateY(-.81px);box-shadow:0 0 11.34px color-mix(in oklab,var(--accent) 25%,transparent)}.link-chip:hover:after,.link-chip:focus-visible:after{opacity:1;transform:scale(1)}.icon-16{width:11.34px;height:11.34px}.footer-right{display:flex;align-items:center;justify-content:flex-end;gap:8.1px 9.72px;text-align:right;margin-right:0}.contact-link,.contact-location{display:inline-flex;align-items:center;white-space:nowrap;line-height:1}.contact-link{color:var(--text);text-decoration:none;font-weight:500;transition:color .2s ease,text-shadow .2s ease;max-width:28.1ch;overflow:hidden;text-overflow:ellipsis}.contact-link:hover,.contact-link:focus-visible{color:var(--accent);text-decoration:underline;text-shadow:0 0 6.48px color-mix(in oklab,var(--accent) 35%,transparent)}.contact-location{color:var(--muted);font-size:10.53px}@media (max-width: 720px){.footer-inner{grid-template-columns:1fr;gap:9.72px;text-align:center;padding:0 12.96px}.footer-left,.footer-center,.footer-right{justify-content:center}.footer-right{flex-wrap:wrap;gap:6.48px 8.1px}.footer-actions{flex-wrap:wrap;justify-content:center}}.resume-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:max(env(safe-area-inset-top),12px) max(env(safe-area-inset-right),12px) max(env(safe-area-inset-bottom),12px) max(env(safe-area-inset-left),12px);background:linear-gradient(180deg,#04060ab3,#04060adb),radial-gradient(80% 120% at 50% -10%,rgba(16,22,34,.6),transparent 70%);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:resume-overlay-fade .18s ease forwards;cursor:zoom-out}@keyframes resume-overlay-fade{0%{opacity:0}to{opacity:1}}.resume-dialog{position:relative;width:min(86vw,980px);height:min(82vh,860px);border-radius:14px;overflow:hidden;background:var(--panel, #11161f);border:1px solid var(--outline, rgba(255, 255, 255, .08));box-shadow:0 18px 54px #0000008c;animation:resume-dialog-pop .16s ease forwards;cursor:default}@keyframes resume-dialog-pop{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.resume-frame{width:100%;height:100%;border:none;background:var(--panel-2, #0c1118)}.resume-close{position:absolute;top:clamp(14px,2.2vw,20px);right:clamp(14px,2.2vw,20px);width:clamp(32px,5vw,44px);height:clamp(32px,5vw,44px);border-radius:999px;display:grid;place-items:center;font-size:clamp(18px,3.2vw,22px);font-weight:800;line-height:1;color:#fff;background:#000000bf;border:1.5px solid rgba(255,255,255,.35);box-shadow:0 4px 12px #00000080,inset 0 0 0 1px #0000001f;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,background .15s ease,border-color .15s ease}.resume-close:hover{transform:translateY(-1px) scale(1.03)}.resume-close:active{transform:translateY(0) scale(.98)}.resume-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.resume-download{position:absolute;left:clamp(12px,2vw,18px);bottom:clamp(10px,1.8vw,16px);padding:6px 10px;border-radius:999px;border:1px solid var(--outline, rgba(255, 255, 255, .08));background:color-mix(in oklab,var(--panel-2, #0c1118) 88%,transparent);color:var(--text, #e8eef8);font-size:12px;text-decoration:none;transition:transform .1s ease,background .15s ease}.resume-download:hover{transform:translateY(-1px);background:var(--panel, #11161f)}@media (prefers-reduced-motion: reduce){.resume-overlay,.resume-dialog{animation:none!important}}.certs-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:max(env(safe-area-inset-top),12px) max(env(safe-area-inset-right),12px) max(env(safe-area-inset-bottom),12px) max(env(safe-area-inset-left),12px);background:linear-gradient(180deg,#04060ab3,#04060adb),radial-gradient(80% 120% at 50% -10%,rgba(16,22,34,.6),transparent 70%);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:certs-overlay-fade .18s ease forwards;cursor:zoom-out}@keyframes certs-overlay-fade{0%{opacity:0}to{opacity:1}}.certs-dialog{position:relative;width:min(86vw,980px);height:min(82vh,860px);border-radius:14px;overflow:hidden;background:var(--panel, #11161f);border:1px solid var(--outline, rgba(255, 255, 255, .08));box-shadow:0 18px 54px #0000008c;animation:certs-dialog-pop .16s ease forwards;cursor:default;display:grid;grid-template-rows:auto 1fr}@keyframes certs-dialog-pop{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.certs-tabs{display:flex;gap:8px;padding:10px 12px;background:var(--panel-2, #0c1118);border-bottom:1px solid var(--outline, rgba(255, 255, 255, .08));overflow-x:auto;-webkit-overflow-scrolling:touch}.cert-tab{appearance:none;-webkit-appearance:none;border:1px solid var(--outline, rgba(255, 255, 255, .08));background:color-mix(in oklab,var(--panel) 80%,transparent);color:var(--text, #e8eef8);border-radius:999px;padding:6px 10px;font-size:12px;line-height:1;font-weight:600;cursor:pointer;transition:transform .1s ease,background .15s ease,border-color .15s ease;white-space:nowrap}.cert-tab:hover{transform:translateY(-1px);background:var(--panel, #11161f)}.cert-tab.is-active{color:#0f1115;background:var(--accent, #79f2c0);border-color:color-mix(in oklab,var(--accent) 60%,var(--outline, rgba(255, 255, 255, .08)))}.certs-frame{width:100%;height:100%;border:none;background:var(--panel-2, #0c1118)}.certs-close{position:absolute;top:clamp(14px,2.2vw,20px);right:clamp(14px,2.2vw,20px);width:clamp(32px,5vw,44px);height:clamp(32px,5vw,44px);border-radius:999px;display:grid;place-items:center;font-size:clamp(18px,3.2vw,22px);font-weight:800;line-height:1;color:#fff;background:#000000bf;border:1.5px solid rgba(255,255,255,.35);box-shadow:0 4px 12px #00000080,inset 0 0 0 1px #0000001f;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,background .15s ease,border-color .15s ease}.certs-close:hover{transform:translateY(-1px) scale(1.03)}.certs-close:active{transform:translateY(0) scale(.98)}.certs-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.certs-nav{position:absolute;top:50%;translate:0 -50%;width:clamp(32px,5vw,44px);height:clamp(32px,5vw,44px);border-radius:999px;display:grid;place-items:center;font-size:clamp(20px,3.6vw,26px);font-weight:800;line-height:1;color:#fff;background:#000000b8;border:1.5px solid rgba(255,255,255,.28);box-shadow:0 4px 12px #00000080,inset 0 0 0 1px #0000001f;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,background .15s ease}.certs-prev{left:10px}.certs-next{right:10px}.certs-nav:hover{transform:translateY(-1px)}.certs-nav:active{transform:translateY(0)}.certs-nav:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.certs-download{position:absolute;left:clamp(12px,2vw,18px);bottom:clamp(10px,1.8vw,16px);padding:6px 10px;border-radius:999px;border:1px solid var(--outline, rgba(255, 255, 255, .08));background:color-mix(in oklab,var(--panel-2, #0c1118) 88%,transparent);color:var(--text, #e8eef8);font-size:12px;text-decoration:none;transition:transform .1s ease,background .15s ease}.certs-download:hover{transform:translateY(-1px);background:var(--panel, #11161f)}@media (prefers-reduced-motion: reduce){.certs-overlay,.certs-dialog{animation:none!important}}.avatar-wrap{position:relative;justify-self:center;width:clamp(136px,36vw,200px);aspect-ratio:1 / 1;border-radius:50%;display:grid;place-items:center;background:radial-gradient(60% 60% at 50% 40%,var(--panel-2),transparent 70%);border:1px solid var(--outline);box-shadow:var(--shadow);overflow:hidden;cursor:zoom-in;-webkit-appearance:none;appearance:none;outline:none}.avatar{width:86%;height:86%;object-fit:cover;object-position:50% 95%;border-radius:50%;filter:contrast(1.02) saturate(1.02);transition:transform .18s ease,filter .18s ease;display:block}.ring{position:absolute;inset:4.6px;border-radius:50%;border:1.5px solid color-mix(in oklab,var(--accent) 65%,transparent);box-shadow:inset 0 0 20.5px color-mix(in oklab,var(--accent) 30%,transparent);transition:box-shadow .2s ease,border-color .2s ease;pointer-events:none}.glow{position:absolute;inset:-10%;border-radius:50%;background:radial-gradient(92.3px 61.6px at 80% 10%,color-mix(in oklab,var(--accent) 28%,transparent),transparent 70%),radial-gradient(92.3px 61.6px at 20% 90%,color-mix(in oklab,var(--accent) 22%,transparent),transparent 70%);opacity:.35;pointer-events:none;transition:opacity .18s ease}.avatar-wrap:hover .avatar{transform:scale(.96) translateY(-.85px);filter:contrast(1.04) saturate(1.05)}.avatar-wrap:hover .ring{border-color:color-mix(in oklab,var(--accent) 78%,transparent);box-shadow:inset 0 0 22.2px color-mix(in oklab,var(--accent) 36%,transparent),0 0 25.7px color-mix(in oklab,var(--accent) 28%,transparent)}.avatar-hint{position:absolute;bottom:4.6px;left:50%;transform:translate(-50%,3.4px);padding:3.1px 6.2px;border-radius:999px;font-size:8.5px;color:#0f1115;background:var(--accent);border:1px solid color-mix(in oklab,var(--accent) 60%,var(--outline));opacity:0;transition:transform .18s ease,opacity .18s ease;pointer-events:none}.avatar-wrap:hover .avatar-hint{opacity:1;transform:translate(-50%)}.avatar-overlay{position:fixed;inset:0;width:100vw;height:100vh;z-index:2147483647;box-sizing:border-box;--pad: clamp(10px, 4vw, 24px);padding:max(env(safe-area-inset-top),var(--pad)) max(env(safe-area-inset-right),var(--pad)) max(env(safe-area-inset-bottom),var(--pad)) max(env(safe-area-inset-left),var(--pad));display:grid;place-items:center;background:linear-gradient(180deg,#04060a99,#04060ab3),radial-gradient(80% 120% at 50% -10%,rgba(16,22,34,.6),transparent 70%);backdrop-filter:blur(5.1px);-webkit-backdrop-filter:blur(5.1px);animation:overlay-fade .154s ease forwards;cursor:zoom-out}.avatar-dialog{position:relative;display:inline-grid;grid-template-areas:"stack";isolation:isolate;width:fit-content;height:fit-content;max-width:calc(100dvw - calc(var(--pad) * 2));max-height:calc(100dvh - calc(var(--pad) * 2));border-radius:clamp(10px,2.2vw,16px);overflow:hidden;border:1px solid var(--outline);background:var(--panel);box-shadow:0 17.1px 51.3px #00000080;animation:dialog-pop .137s ease forwards;cursor:default}.avatar-full{grid-area:stack;display:block;width:auto;height:auto;max-width:calc(100dvw - calc(var(--pad) * 2));max-height:calc(100dvh - calc(var(--pad) * 2));object-fit:contain;background:var(--panel-2)}.avatar-dialog .avatar-close{grid-area:stack;align-self:start;justify-self:end;margin:clamp(12px,2vw,18px);width:clamp(32px,5vw,44px);height:clamp(32px,5vw,44px);border-radius:999px;display:grid;place-items:center;font-size:clamp(18px,3.2vw,22px);font-weight:800;line-height:1;color:#fff;background:#000000bf;border:1.5px solid rgba(255,255,255,.35);box-shadow:0 4px 12px #00000080,inset 0 0 0 1px #0000001f;cursor:pointer;z-index:1;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,background .15s ease,border-color .15s ease}.avatar-dialog .avatar-close:hover{transform:translateY(-1px) scale(1.03)}.avatar-dialog .avatar-close:active{transform:translateY(0) scale(.98)}.avatar-dialog .avatar-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.avatar,.ring,.glow,.avatar-hint,.avatar-overlay,.avatar-dialog{transition:none!important;animation:none!important}}.card{background:var(--panel-2);border:1px solid var(--outline);border-radius:12.6px;padding:clamp(10.8px,1.8vw,14.4px);text-align:left;transition:transform .12s ease,background .2s ease,border-color .2s ease;display:block;color:var(--text)}.card:hover{transform:translateY(-1.8px);background:var(--panel);border-color:var(--outline)}.about-card{margin-top:1.5px}.about-chip-row{display:flex;flex-wrap:wrap;gap:6.2px;margin-top:4.6px}.about-chip{display:inline-flex;align-items:center;padding:4.6px 7.7px;border-radius:9999px;border:1px solid var(--outline);background:color-mix(in oklab,var(--panel-2) 92%,transparent);font-size:9.2px;color:var(--text);white-space:nowrap}.about-list{margin:6.2px 0 0;padding-left:13.9px;color:var(--muted);font-size:clamp(10px,1.03vw,10.8px);line-height:1.45}.about-list li{margin:3.1px 0}.about-header{display:flex;align-items:center;justify-content:space-between;gap:6.2px}.about-toggle{display:none;height:23.1px;width:23.1px;border-radius:7.7px;border:1px solid var(--outline);background:var(--panel-2);color:var(--text);cursor:pointer;transition:transform .12s ease,background .15s ease,border-color .15s ease}.about-toggle:hover{transform:translateY(-.85px)}.about-toggle:active{transform:translateY(0)}.chev{width:12.3px;height:12.3px;display:block;margin:0 auto;transition:transform .18s ease}.about-toggle.is-open .chev{transform:rotate(180deg)}@media (max-width: 860px){.about-toggle{display:grid;place-items:center}.about-card .about-body{overflow:hidden;max-height:770px;transition:max-height .22s ease}.about-card.is-collapsed .about-body{max-height:0}.about-card.is-collapsed{padding-bottom:7.7px}.about-home{order:1}.about-work{order:2}}.status-card{background:var(--accent)!important;border-color:color-mix(in oklab,var(--accent) 70%,var(--outline));color:#0f1115}.status-card .card-title,.status-card .card-text{color:#0f1115}.status-card.home-card{gap:clamp(4px,.7vw,6px);padding-block:clamp(8px,1.4vw,12px);padding-inline:clamp(10px,2vw,14px)}.status-card .card-title{margin:0;font-size:clamp(11px,1.1vw,12.5px);line-height:1.15;letter-spacing:.012em}.status-card .card-text{margin:0;padding-block:2px 4px;line-height:1.4;letter-spacing:.01em;word-spacing:.02em;font-weight:700;font-size:clamp(10px,1.02vw,10.8px);display:inline-block;overflow:visible}@media (max-width: 420px){.status-card.home-card{padding-block:10px;padding-inline:12px}}.status-card.home-card:hover{transform:translateY(-2.3px);box-shadow:0 13.7px 34.2px #00000059}.status-card .card-text:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1.5px;background:linear-gradient(90deg,transparent 0%,rgba(15,17,21,0) 35%,rgba(15,17,21,.7) 45%,#0f1115 50%,rgba(15,17,21,.7) 55%,rgba(15,17,21,0) 65%,transparent 100%);transform:translate(-105%);opacity:0;pointer-events:none}.status-card:hover .card-text:after{animation:wave-underline .95s ease-out 1}@keyframes wave-underline{0%{transform:translate(-105%);opacity:0}10%{opacity:1}50%{transform:translate(0);opacity:1}80%{opacity:1}to{transform:translate(105%);opacity:0}}.view{width:min(846.5px,78.7vw);height:auto;max-height:100%;min-height:0;padding:clamp(12.3px,2.6vw,18.5px);display:grid;place-items:center;text-align:center}.home-split{width:100%;height:auto;min-height:0;display:grid;grid-template-columns:.9833fr .727fr;align-items:center;gap:clamp(12.3px,3.4vw,21.5px)}.right-col{display:grid;justify-items:center;align-content:start;gap:10px}.right-col .status-card{width:clamp(154px,27.4vw,200.1px);margin-top:8px}.intro{text-align:left;display:grid;align-content:start;gap:clamp(10.8px,2.05vw,13.9px)}.title{font-size:clamp(21.5px,3.4vw,33.9px);margin:0;color:var(--text)}.accent{color:var(--accent)}.subtitle{color:var(--muted);margin:0;font-size:clamp(10px,1.37vw,11.5px);line-height:1.5}.fit-outer{overflow:hidden;position:relative}.fit-inner{--fit-scale: 1;transform:scale(var(--fit-scale));transform-origin:top center;display:inline-block}#panel-home.view,.panel-home.view{display:block;width:min(846.5px,78.7vw);margin:0 auto;height:auto;min-height:0}#panel-home .home-split,.panel-home .home-split{align-items:start}@media (max-width: 860px){.home-split{grid-template-columns:1fr;grid-template-rows:auto 1fr;align-content:center;text-align:center}.intro{text-align:center;justify-items:center;gap:clamp(10.8px,2.74vw,16.9px)}.right-col{justify-items:center;align-content:start;gap:10px}}@media (max-width: 640px){.view{height:auto;max-height:100%;min-height:0}#panel-home.view,.panel-home.view{display:block;height:auto}}.projects-view{width:min(891px,82.8vw);height:auto;min-height:0;padding:clamp(13px,2.7vw,19.4px);display:grid;place-items:center;text-align:center;margin:0 auto}#panel-projects.view{height:auto!important;min-height:0!important;align-content:start}.projects-wrap{width:100%;height:auto;display:grid;grid-template-rows:auto auto auto;gap:6.5px}.projects-title{font-size:clamp(22.7px,3.6vw,35.6px);margin:0;color:var(--text)}.projects-subtitle{color:var(--muted);margin:0 0 4.9px}.projects-hover-scope{display:grid;gap:0}.projects-grid{width:100%;height:auto;display:grid;gap:clamp(8.1px,1.6vw,13px);grid-template-columns:repeat(2,minmax(194.4px,1fr));grid-auto-rows:auto;align-items:stretch;justify-items:stretch;overflow:visible;position:relative}@media (max-width: 1024px){.projects-grid{grid-template-columns:repeat(2,minmax(178.2px,1fr))}}@media (max-width: 820px){.projects-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:clamp(6.5px,1.4vw,11.3px)}}@media (min-width: 821px){.projects-details{opacity:0;transform:translateY(8px) scale(.99);filter:saturate(.9) blur(.2px);pointer-events:none;overflow:hidden;max-height:0;margin-top:0;padding-block:0;border-radius:16px;background:linear-gradient(135deg,var(--panel-2) 0%,var(--panel) 100%);border:1px solid color-mix(in oklab,var(--accent) 50%,var(--outline));box-shadow:0 4px 20px -6px color-mix(in oklab,var(--accent) 50%,transparent),0 0 0 1px var(--outline);transition:opacity .22s ease,transform .22s ease,filter .22s ease,max-height .26s ease,margin-top .22s ease,padding .22s ease}.projects-details.is-open{opacity:1;transform:translateY(0) scale(1);filter:none;pointer-events:auto;max-height:520px;margin-top:clamp(12px,2vw,24px);padding-block:clamp(16px,3vw,28px)}.projects-details-inner{padding-inline:clamp(16px,3vw,28px);text-align:left}.projects-details-title{margin:0 0 10px;font-size:clamp(16.6px,1.84vw,20.2px);font-weight:800;background:linear-gradient(90deg,var(--accent),var(--text));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.projects-details-text{margin:0;font-size:clamp(12.9px,1.29vw,14.7px);line-height:1.6;color:var(--muted)}.projects-details-btn{margin-top:14px;padding:8px 14px;font-size:14px;font-weight:600;border-radius:999px;background:var(--accent);color:#0f1115;border:none;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 2px 8px color-mix(in oklab,var(--accent) 60%,transparent)}.projects-details-btn:hover{transform:translateY(-2px);box-shadow:0 4px 14px color-mix(in oklab,var(--accent) 60%,transparent)}}@media (max-width: 820px){.projects-details{display:none}}@media (prefers-reduced-motion: reduce){.projects-details,.projects-details.is-open{transition:none!important}}.project-card{position:relative;display:grid;grid-template-rows:auto 1fr auto auto;gap:6.5px;padding:clamp(9.7px,1.8vw,13px);border-radius:13px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--outline);box-shadow:var(--shadow);text-align:left;overflow:visible;isolation:isolate;min-height:0;transition:transform .16s ease,border-color .2s ease,background .2s ease,box-shadow .3s ease;z-index:1}.project-card:hover{transform:translateY(-1.8px);border-color:color-mix(in oklab,var(--accent) 35%,var(--outline));box-shadow:0 10.8px 31.5px #00000059}.project-card.side-right:after,.project-card.side-left:before{content:"";position:absolute;top:0;width:13px;height:100%}.project-card.side-right:after{left:100%}.project-card.side-left:before{right:100%}.project-card-glow{position:absolute;inset:-1.6px;border-radius:14.6px;pointer-events:none;z-index:-1;background:radial-gradient(97.2px 64.8px at 10% -10%,color-mix(in oklab,var(--accent) 40%,transparent),transparent 70%),radial-gradient(97.2px 64.8px at 110% 110%,color-mix(in oklab,var(--accent) 30%,transparent),transparent 72%);opacity:.35;transition:opacity .25s ease,transform .25s ease}.project-card:hover .project-card-glow{opacity:.6;transform:scale(1.01)}.project-card-head{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8.1px}.project-card-dot{color:var(--accent);font-size:14.6px;line-height:1;translate:0 .8px}.project-card-title{font-size:clamp(13px,1.4vw,14.6px);margin:0;color:var(--text);font-weight:700;letter-spacing:.16px}.project-card-blurb{margin:1.6px 0 0;color:var(--muted);font-size:clamp(10.5px,1.1vw,11.3px);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.project-card-cta{display:flex;justify-content:flex-end;opacity:0;transform:translateY(3.2px);transition:opacity .18s ease,transform .18s ease}.project-card:hover .project-card-cta{opacity:1;transform:translateY(0)}.project-card-cta-pill{font-size:9.7px;font-weight:700;color:#0f1115;background:var(--accent);padding:4.9px 8.1px;border-radius:999px;border:1px solid color-mix(in oklab,var(--accent) 60%,var(--outline))}.project-card-cta-btn{appearance:none;-webkit-appearance:none;cursor:pointer}.project-card-cta-btn:focus-visible{outline:2px solid color-mix(in oklab,var(--accent) 60%,var(--outline));outline-offset:2px}.project-card-flyout,.project-card-flyout-inner,.project-card-flyout-title,.project-card-flyout-text,.project-card-live-preview-btn{display:none!important}@media (max-width: 820px){.project-card.side-left:before,.project-card.side-right:after{display:none}.project-card{grid-template-rows:auto auto auto auto auto;gap:4.9px;padding:9.7px;border-radius:11.3px}}@media (max-width: 480px){.project-card{gap:4.9px;padding:8.1px;border-radius:9.7px;grid-template-rows:auto auto auto auto auto}}.stack-row{display:flex;flex-wrap:wrap;gap:6.5px 8.1px;padding:0;margin:0;list-style:none}.stack-pill{display:inline-flex;align-items:center;gap:4.9px;padding:4.9px 8.1px;border:1px solid var(--outline);background:var(--panel-2);color:var(--text);border-radius:999px;font-size:9.7px;line-height:1;transition:background .15s ease,border-color .15s ease,transform .1s ease}.stack-pill:hover{background:var(--panel);transform:translateY(-.9px)}.stack-ico{width:14.6px;height:14.6px;object-fit:contain;display:block}.stack-text{text-transform:none}@media (max-width: 760px){.stack-pill{padding:4.1px 6.5px;font-size:8.9px}.stack-ico{width:13px;height:13px}}@media (max-width: 480px){.stack-pill{padding:3.2px 5.7px;font-size:8.5px}}.preview-overlay{position:fixed;inset:0;z-index:2147483647;display:grid;place-items:center;background:linear-gradient(180deg,#04060ab3,#04060ad9),radial-gradient(80% 120% at 50% -10%,rgba(16,22,34,.6),transparent 70%);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:overlay-fade .18s ease forwards}@keyframes overlay-fade{0%{opacity:0}to{opacity:1}}.preview-dialog{position:relative;width:min(82.8vw,810px);height:min(76.5vh,583.2px);border-radius:14.6px;overflow:hidden;background:var(--panel);border:1px solid var(--outline);box-shadow:0 18px 54px #0000008c;animation:dialog-pop .16s ease forwards}@keyframes dialog-pop{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.preview-frame-large{width:100%;height:100%;border:none;background:var(--panel-2)}.preview-close{position:absolute;top:6.5px;right:6.5px;height:27.5px;width:27.5px;border-radius:8.1px;border:1px solid var(--outline);background:var(--panel-2);color:var(--text);font-size:13px;font-weight:700;cursor:pointer;display:grid;place-items:center;transition:transform .08s ease,background .15s ease,border-color .15s ease}.preview-close:hover{transform:translateY(-.9px)}.preview-close:active{transform:translateY(0)}@media (max-width: 760px){.preview-dialog{width:min(86.4vw,810px);height:min(79.2vh,583.2px)}}#panel-skills.view{width:min(891px,82.8vw);height:auto;min-height:0;padding:clamp(13px,2.7vw,22.7px);display:grid;align-content:start;justify-items:center;text-align:center;margin:0 auto}#panel-skills .skills-wrap{width:100%}#panel-skills .title{font-size:clamp(22.7px,3.6vw,35.6px);margin:0 0 6.5px}#panel-skills .subtitle{color:var(--muted);margin:0 0 13px;font-size:clamp(10.5px,1.6vw,12.1px)}#panel-skills .skill-tabs{display:flex;gap:6.5px;flex-wrap:wrap;justify-content:center;padding:6.5px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--outline);border-radius:11.3px;margin-bottom:13px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;box-shadow:var(--shadow);overflow:hidden}#panel-skills .skill-tab{position:relative;padding:6.5px 11.3px;border-radius:8.1px;border:1px solid transparent;background:transparent;color:var(--muted);font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease,transform .08s ease;font-size:11.3px;white-space:nowrap}#panel-skills .skill-tab:hover{color:var(--text);background:var(--panel-2);box-shadow:0 5px 14px #00000040}#panel-skills .skill-tab.is-active{color:#0f1115;background:var(--accent);box-shadow:0 6px 18px color-mix(in oklab,var(--accent) 30%,transparent)}#panel-skills .skill-tab.is-active:after{content:"";position:absolute;left:50%;bottom:-11.3px;translate:-50% 0;width:14.6px;height:14.6px;background:radial-gradient(circle at 50% 0,color-mix(in oklab,var(--accent) 60%,transparent),transparent 70%);pointer-events:none}#panel-skills .skill-panel{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--outline);border-radius:11.3px;padding:clamp(9.7px,2.3vw,16.2px);box-shadow:var(--shadow)}#panel-skills .pill-list{display:flex;flex-wrap:wrap;gap:9.7px;justify-content:center;padding:0;margin:0;list-style:none}#panel-skills .pill{position:relative;padding:9.7px 11.3px;border:1px solid var(--outline);background:linear-gradient(180deg,var(--panel-2),var(--panel));border-radius:13px;font-size:10.5px;min-width:113px;display:grid;grid-template-rows:auto auto;justify-items:center;align-items:center;gap:6.5px;text-align:center;color:var(--text);transition:transform .12s ease,background .15s ease,box-shadow .2s ease;box-shadow:0 6px 20px #00000040;isolation:isolate}#panel-skills .pill:before{content:"";position:absolute;inset:-1.6px;border-radius:inherit;background:radial-gradient(81px 54px at 10% -10%,color-mix(in oklab,var(--accent) 40%,transparent),transparent 70%);opacity:.3;z-index:-1}#panel-skills .pill:hover{transform:translateY(-1px);background:var(--panel);box-shadow:0 10px 28px #00000059}#panel-skills .pill-title{font-weight:700;line-height:1.2}.logo-50{width:50px;height:50px;object-fit:contain;display:block}.app-shell{min-height:100dvh;height:auto;display:grid;grid-template-rows:52.2px 45.36px minmax(0,1fr) minmax(38.88px,auto);background:var(--bg)}.app-shell>.tabs{margin-top:-1px}@media (max-width: 640px){.app-shell{grid-template-rows:45.36px 38.88px minmax(0,1fr) minmax(38.88px,auto)}.app-shell>.tabs{margin-top:-1px}}.viewport{overflow-x:hidden;padding:clamp(9.72px,3vw,19.44px);display:grid;place-items:center}.panel{background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--outline);box-shadow:var(--shadow);border-radius:14.58px}@media (max-width: 480px){.panel{border-radius:11.34px}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";color:var(--text);background:var(--bg)}:root{--bg: #0f1115;--panel: #161923;--panel-2: #1e2230;--accent: #6ff376;--muted: #a3a8b8;--outline: #2b2f3d;--shadow: 0 6px 24px rgba(0, 0, 0, .35);--text: #e9e9ee;--header: rgba(15, 17, 21, .7);color-scheme:dark}:root[data-theme=light]{--bg: #f7f8fb;--panel: #ffffff;--panel-2: #f0f2f7;--accent: #6ff376;--muted: #4b5563;--outline: #d8dbe3;--shadow: 0 8px 24px rgba(0, 0, 0, .08);--text: #0e1220;--header: rgba(255, 255, 255, .75);color-scheme:light}@media (prefers-color-scheme: light){:root:not([data-theme=dark]):not([data-theme=light]){--bg: #f7f8fb;--panel: #ffffff;--panel-2: #f0f2f7;--accent: #2e7d32;--muted: #4b5563;--outline: #d8dbe3;--shadow: 0 8px 24px rgba(0, 0, 0, .08);--text: #0e1220;--header: rgba(255, 255, 255, .75);color-scheme:light}}a{color:inherit;text-decoration:none}.logo-50{width:45px;height:45px;object-fit:contain;display:block}
