:root{--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:"Instrument Serif", ui-serif, Georgia, serif;--font-mono:"Geist Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--radius-sm:8px;--radius:14px;--radius-lg:22px;--gutter:clamp(16px, 4vw, 40px);--max:1280px;--bg:#f7f6f3;--bg-raised:#fff;--bg-sunken:#efede8;--fg:#141414;--fg-muted:#5c5b57;--fg-faint:#8f8d87;--line:#14141414;--line-strong:#14141424;--accent:#3d5cf5;--accent-fg:#fff;--live:#1f9d6b;--glass:#f7f6f3b8;--shadow-card:0 1px 0 #ffffffb3 inset, 0 1px 2px #1414140a, 0 8px 24px -12px #1414141f;--shadow-pop:0 0 0 1px var(--line), 0 16px 48px -12px #14141440;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#0b0b0c;--bg-raised:#141416;--bg-sunken:#0f0f11;--fg:#f2f1ee;--fg-muted:#a3a29d;--fg-faint:#6d6c68;--line:#ffffff12;--line-strong:#ffffff21;--accent:#7c9cff;--accent-fg:#0b0b0c;--live:#5fd4a8;--glass:#0b0b0ca8;--shadow-card:0 1px 0 #ffffff0a inset, 0 0 0 1px var(--line), 0 12px 32px -16px #0009;--shadow-pop:0 0 0 1px var(--line-strong), 0 24px 64px -16px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.6;overflow-x:clip}img{max-width:100%;display:block}a{color:inherit}input,textarea,select{font:inherit;font-size:16px}button,a,[role=button]{touch-action:manipulation}button,[role=button],.chip,.btn{-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}html.theme-switching *,html.theme-switching :before,html.theme-switching :after{transition:none!important}::selection{background:color-mix(in oklab, var(--accent) 30%, transparent)}.container{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mono{font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase;color:var(--fg-faint);font-size:12px}.serif{font-family:var(--font-serif);letter-spacing:-.01em;font-style:italic;font-weight:400}.btn{white-space:nowrap;height:44px;transition:transform .16s var(--ease-out), background-color .2s ease, box-shadow .2s ease;border:0;border-radius:999px;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--fg);color:var(--bg)}.btn-ghost{color:var(--fg);box-shadow:0 0 0 1px var(--line-strong) inset;background:0 0}.btn svg{flex-shrink:0;width:16px;height:16px}@media (hover:hover) and (pointer:fine){.btn-primary:hover{background:color-mix(in oklab, var(--fg) 86%, var(--bg))}.btn-ghost:hover{background:var(--bg-sunken)}}.icon-btn{width:40px;height:40px;color:var(--fg-muted);transition:transform .16s var(--ease-out), background-color .2s ease, color .2s ease;background:0 0;border:0;border-radius:999px;place-items:center;display:inline-grid}.icon-btn:active{transform:scale(.94)}.icon-btn svg{width:18px;height:18px}@media (hover:hover) and (pointer:fine){.icon-btn:hover{background:var(--bg-sunken);color:var(--fg)}}kbd{font-family:var(--font-mono);background:var(--bg-sunken);box-shadow:0 0 0 1px var(--line-strong) inset;color:var(--fg-muted);border-radius:5px;padding:3px 5px;font-size:11px;line-height:1}.nav{z-index:50;padding-top:env(safe-area-inset-top,0px);background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(1.6);backdrop-filter:blur(16px)saturate(1.6);position:sticky;top:0;-webkit-mask-image:linear-gradient(#000 calc(100% - 8px),#0000);mask-image:linear-gradient(#000 calc(100% - 8px),#0000)}.nav-inner{align-items:center;gap:16px;height:64px;display:flex}.brand{font-family:var(--font-serif);align-items:baseline;gap:1px;font-size:26px;font-style:italic;line-height:1;text-decoration:none;display:inline-flex}.brand-dot{background:var(--accent);border-radius:999px;width:6px;height:6px}.nav-links{gap:4px;margin-left:auto;display:flex}.nav-link{color:var(--fg-muted);border-radius:999px;padding:8px 12px;font-size:14px;text-decoration:none;transition:color .2s,background-color .2s}.nav-link[data-active]{color:var(--fg)}@media (hover:hover) and (pointer:fine){.nav-link:hover{color:var(--fg);background:var(--bg-sunken)}}.nav-actions{align-items:center;gap:4px;display:flex}.k-trigger{background:var(--bg-sunken);height:36px;box-shadow:0 0 0 1px var(--line) inset;color:var(--fg-muted);transition:transform .16s var(--ease-out);border:0;border-radius:999px;align-items:center;gap:10px;padding:0 8px 0 12px;font-size:13px;display:inline-flex}.k-trigger:active{transform:scale(.97)}@media (width<=760px){.nav-links{display:none}.nav-actions{margin-left:auto}}@media (pointer:coarse){.k-trigger kbd,.footer-kbd{display:none}.k-trigger{padding:0 14px}}section{position:relative}.section{padding-block:clamp(72px,12vw,140px)}.section-head{gap:14px;max-width:640px;margin-bottom:clamp(32px,5vw,56px);display:grid}.section-title{letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:clamp(32px,5vw,52px);font-weight:600;line-height:1.05}.section-title .serif{font-size:1.08em}.section-lede{color:var(--fg-muted);text-wrap:pretty;margin:0;font-size:17px}.reveal{opacity:0;transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);transition-delay:var(--delay,0s);transform:translateY(12px)}.reveal[data-visible]{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{transition:opacity .4s;transform:none}}.hero{align-items:center;min-height:calc(100svh - 64px);padding-block:clamp(40px,8vw,96px);display:grid}.pill{background:var(--bg-raised);height:30px;box-shadow:var(--shadow-card);color:var(--fg-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:0 12px 0 10px;font-size:13px;display:inline-flex}.pulse{background:var(--live);border-radius:999px;flex-shrink:0;width:8px;height:8px;position:relative}.pulse:after{content:"";border-radius:inherit;background:var(--live);animation:pulse 2.4s var(--ease-out) infinite;position:absolute;inset:0}@keyframes pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(3)}}@media (prefers-reduced-motion:reduce){.pulse:after{animation:none}}.hero-name{letter-spacing:-.045em;text-wrap:balance;margin:0;font-weight:600;line-height:.95}.hero-headline{color:var(--fg-muted);text-wrap:pretty;margin:0}.hero-ctas{flex-wrap:wrap;gap:10px;display:flex}.enter{opacity:0;filter:blur(4px);animation:enter .8s var(--ease-out) forwards;animation-delay:calc(var(--i,0) * 70ms + 80ms);transform:translateY(12px)}@keyframes enter{to{opacity:1;filter:none;transform:none}}@media (prefers-reduced-motion:reduce){.enter{filter:none;animation:.4s forwards fade;transform:none}}@keyframes fade{to{opacity:1}}.portrait{border-radius:var(--radius-lg);background:var(--bg-sunken);box-shadow:var(--shadow-card);aspect-ratio:4/5;position:relative;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%}.stats{border-block:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stat{gap:4px;padding:28px 20px;display:grid}.stat+.stat{border-left:1px solid var(--line)}.stat-value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(36px,5vw,56px);font-weight:600;line-height:1}.stat-label{color:var(--fg-muted);font-size:14px}@media (width<=760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(3){border-left:0}.stat:nth-child(n+3){border-top:1px solid var(--line)}}.projects{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;display:grid}.project{grid-column:span 2}.project:first-child,.project:nth-child(2){grid-column:span 3}.project:nth-child(3n):last-child,.project:only-child{grid-column:span 6}.project:nth-child(3n):nth-last-child(2),.project:nth-child(3n+4):last-child{grid-column:span 3}@media (width<=960px){.project,.project:first-child,.project:nth-child(2),.project:nth-child(3n):nth-last-child(2),.project:nth-child(3n+4):last-child{grid-column:span 3}.project:nth-child(odd):last-child{grid-column:span 6}}@media (width<=640px){.projects{flex-direction:column;display:flex}}.project-card{border-radius:var(--radius-lg);background:var(--bg-raised);width:100%;height:100%;min-height:260px;box-shadow:var(--shadow-card);text-align:left;isolation:isolate;transition:transform .2s var(--ease-out), box-shadow .2s ease;border:0;flex-direction:column;gap:14px;padding:22px;display:flex;position:relative;overflow:hidden}.project-card:active{transform:scale(.985)}@media (hover:hover) and (pointer:fine){.project-card:hover{transform:translateY(-2px)}.project-card:hover .project-arrow{color:var(--fg);transform:translate(2px,-2px)}}.project-top{align-items:center;gap:10px;min-width:0;display:flex}.project-swatch{background:var(--card-accent);width:10px;height:10px;box-shadow:0 0 16px var(--card-accent);border-radius:3px;flex-shrink:0}.project-kicker{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.project-status{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;background:color-mix(in oklab, var(--card-accent) 16%, transparent);color:color-mix(in oklab, var(--card-accent) 70%, var(--fg));white-space:nowrap;border-radius:999px;flex-shrink:0;margin-left:auto;padding:3px 8px;font-size:11px}.project-title{letter-spacing:-.03em;overflow-wrap:anywhere;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:auto 0 0;font-size:clamp(24px,3vw,30px);font-weight:600;line-height:1.1;display:-webkit-box;overflow:hidden}.project-summary{color:var(--fg-muted);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:15px;display:-webkit-box;overflow:hidden}.project-foot{align-items:center;gap:8px;min-width:0;display:flex}.chips{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.project-card .chips{flex-wrap:nowrap;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.swap{width:18px;height:18px;display:inline-grid;position:relative}.swap>svg{transition:opacity .2s ease, filter .2s ease, transform .2s var(--ease-out);grid-area:1/1}.swap>svg:last-child,.swap[data-done]>svg:first-child{opacity:0;filter:blur(2px);transform:scale(.8)}.swap[data-done]>svg:last-child{opacity:1;filter:none;color:var(--live);transform:none}@media (prefers-reduced-motion:reduce){.swap>svg{transform:none!important}}.chip{background:var(--bg-sunken);color:var(--fg-muted);white-space:nowrap;border-radius:999px;padding:6px 9px;font-size:12px;line-height:1}.project-arrow{width:20px;height:20px;color:var(--fg-faint);transition:transform .2s var(--ease-out), color .2s ease;flex-shrink:0;margin-left:auto}.dialog-backdrop{z-index:80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity .25s var(--ease-out);background:#0000006b;position:fixed;inset:0}.dialog-backdrop[data-starting-style],.dialog-backdrop[data-ending-style]{opacity:0}.dialog-popup{z-index:90;overscroll-behavior:contain;border-radius:var(--radius-lg);background:var(--bg-raised);width:min(640px,100vw - 32px);max-height:min(86dvh,760px);box-shadow:var(--shadow-pop);transform-origin:50%;transition:opacity .25s var(--ease-out), transform .25s var(--ease-out);padding:28px;position:fixed;top:50%;left:50%;overflow-y:auto;translate:-50% -50%}.dialog-popup[data-starting-style],.dialog-popup[data-ending-style]{opacity:0;transform:scale(.96)}.dialog-popup[data-ending-style],.dialog-backdrop[data-ending-style]{transition-duration:.15s}@media (prefers-reduced-motion:reduce){.dialog-popup[data-starting-style],.dialog-popup[data-ending-style]{transform:none}}@media (width<=640px){.dialog-popup{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:88dvh;padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));transition:opacity .4s var(--ease-drawer), transform .4s var(--ease-drawer);top:auto;bottom:0;left:0;translate:none}.dialog-popup[data-starting-style],.dialog-popup[data-ending-style]{opacity:1;transform:translateY(100%)}.dialog-popup[data-ending-style]{transition-duration:.25s}}.dialog-head{align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.dialog-title{letter-spacing:-.03em;overflow-wrap:anywhere;margin:6px 0 0;font-size:32px;font-weight:600;line-height:1.1}.dialog-desc{color:var(--fg-muted);margin:0 0 20px;font-size:17px}.dialog-points{gap:12px;margin:0 0 24px;padding:0;list-style:none;display:grid}.dialog-points li{padding-left:22px;font-size:15px;position:relative}.dialog-points li:before{content:"";background:var(--card-accent);border-radius:2px;width:8px;height:8px;position:absolute;top:.62em;left:2px}.dialog-close{flex-shrink:0;margin-left:auto}.dialog-popup .btn{white-space:normal;max-width:100%;height:auto;min-height:44px;padding-block:10px}.timeline{border-top:1px solid var(--line);gap:0;display:grid}.role{border-bottom:1px solid var(--line);grid-template-columns:56px minmax(0,1fr) auto;align-items:start;gap:4px 20px;padding:28px 0;display:grid}.role-logo{width:56px;height:56px;box-shadow:var(--shadow-card);background:#fff;border-radius:14px;flex-shrink:0;grid-row:span 3;place-items:center;display:grid;overflow:hidden}.role-logo img{object-fit:contain;width:76%;height:76%}.role-title{letter-spacing:-.015em;margin:0;font-size:19px;font-weight:600}.role-company{color:var(--fg-muted);font-size:15px}.role-period{white-space:nowrap;font-variant-numeric:tabular-nums;grid-area:1/3}.role-points{color:var(--fg-muted);grid-column:2/-1;gap:6px;max-width:680px;margin:10px 0 0;padding:0;font-size:15px;list-style:none;display:grid}@media (width<=640px){.role{grid-template-columns:44px minmax(0,1fr)}.role-logo{border-radius:11px;grid-row:span 2;width:44px;height:44px}.role-period{grid-area:auto/2}.role-points{grid-column:1/-1}}.edu{border-radius:var(--radius-lg);background:var(--bg-raised);box-shadow:var(--shadow-card);flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:28px;padding:20px 22px;display:flex}.edu-degree{font-weight:600}.edu-award{color:var(--fg-muted);align-items:center;gap:8px;margin-left:auto;font-size:14px;display:inline-flex}.skills{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}@media (width<=960px){.skills{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.skills{grid-template-columns:minmax(0,1fr)}}.skill-card{border-radius:var(--radius-lg);background:var(--bg-raised);box-shadow:var(--shadow-card);padding:20px}.skill-card h3{margin:0 0 14px}.contact{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(24px,5vw,64px);display:grid}@media (width<=860px){.contact{grid-template-columns:minmax(0,1fr)}}.contact-title{letter-spacing:-.045em;text-wrap:balance;margin:0 0 18px;font-size:clamp(40px,7vw,80px);font-weight:600;line-height:.98}.contact-list{border-top:1px solid var(--line);margin:28px 0 0;padding:0;list-style:none}.contact-row{border-bottom:1px solid var(--line);align-items:center;gap:14px;min-height:60px;display:flex}.contact-row .mono{flex-shrink:0;width:84px}.contact-value{overflow-wrap:anywhere;min-width:0;font-size:16px;text-decoration:none}.contact-row .icon-btn{flex-shrink:0;margin-left:auto}.globe-wrap{aspect-ratio:1;width:100%;max-width:520px;margin-inline:auto;position:relative}.globe-wrap canvas{cursor:grab;touch-action:pan-y;opacity:0;width:100%;height:100%;transition:opacity 1.2s}.globe-wrap canvas[data-ready]{opacity:1}.globe-wrap canvas:active{cursor:grabbing}.globe-label{white-space:nowrap;position:absolute;bottom:4%;left:50%;translate:-50%}.footer{padding-block:32px calc(32px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);color:var(--fg-faint);font-size:14px}.footer-inner{flex-wrap:wrap;justify-content:space-between;gap:8px 24px;display:flex}.cmdk-overlay{z-index:100;background:#00000052;position:fixed;inset:0}.cmdk-dialog{z-index:101;border-radius:var(--radius-lg);background:var(--bg-raised);width:min(580px,100vw - 32px);box-shadow:var(--shadow-pop);position:fixed;top:14vh;left:50%;overflow:hidden;translate:-50%}.cmdk-dialog [cmdk-input]{border:0;border-bottom:1px solid var(--line);width:100%;height:56px;color:var(--fg);background:0 0;outline:none;padding:0 20px}.cmdk-dialog [cmdk-input]::placeholder{color:var(--fg-faint)}.cmdk-dialog [cmdk-list]{overscroll-behavior:contain;max-height:min(380px,60dvh);padding:8px;overflow-y:auto}.cmdk-dialog [cmdk-group-heading]{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-faint);padding:10px 12px 6px;font-size:11px}.cmdk-dialog [cmdk-item]{min-height:44px;color:var(--fg-muted);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:12px;padding:0 12px;font-size:15px;display:flex}.cmdk-dialog [cmdk-item] svg{flex-shrink:0;width:16px;height:16px}.cmdk-dialog [cmdk-item][data-selected=true]{background:var(--bg-sunken);color:var(--fg)}.cmdk-dialog [cmdk-item] .cmdk-hint{color:var(--fg-faint);margin-left:auto;font-size:12px}.cmdk-dialog [cmdk-empty]{text-align:center;color:var(--fg-faint);padding:28px;font-size:14px}.chat-fab{z-index:60;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--fg);height:48px;color:var(--bg);transition:transform .16s var(--ease-out);border:0;border-radius:999px;align-items:center;gap:8px;padding:0 18px 0 14px;font-size:14px;font-weight:500;display:inline-flex;position:fixed;box-shadow:0 10px 30px -10px #00000080}.chat-fab:active{transform:scale(.96)}.chat-fab svg{width:18px;height:18px}.chat-popup{border-radius:var(--radius-lg);background:var(--bg-raised);width:min(380px,100vw - 32px);height:min(540px,100dvh - 120px);box-shadow:var(--shadow-pop);transform-origin:var(--transform-origin);transition:opacity .2s var(--ease-out), transform .2s var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.chat-popup[data-starting-style],.chat-popup[data-ending-style]{opacity:0;transform:scale(.95)}.chat-popup[data-ending-style]{transition-duration:.14s}@media (prefers-reduced-motion:reduce){.chat-popup[data-starting-style],.chat-popup[data-ending-style]{transform:none}}.chat-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 14px 14px 18px;display:flex}.chat-head img{object-fit:cover;border-radius:999px;flex-shrink:0;width:32px;height:32px}.chat-head-text{min-width:0;line-height:1.25}.chat-head-text strong{font-size:15px;display:block}.chat-head-text span{color:var(--fg-faint);font-size:12px}.chat-log{overscroll-behavior:contain;flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow-y:auto}.msg{overflow-wrap:anywhere;white-space:pre-wrap;max-width:85%;transition:opacity .25s var(--ease-out), transform .25s var(--ease-out);border-radius:16px;padding:10px 14px;font-size:15px;line-height:1.5}@starting-style{.msg{opacity:0;transform:translateY(6px)}}.msg-ai{background:var(--bg-sunken);border-bottom-left-radius:6px;align-self:flex-start}.msg-me{background:var(--fg);color:var(--bg);border-bottom-right-radius:6px;align-self:flex-end}.typing{gap:4px;padding:4px 0;display:inline-flex}.typing i{background:var(--fg-faint);width:6px;height:6px;animation:typing 1s var(--ease-in-out) infinite;border-radius:999px}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes typing{0%,to{opacity:.3}50%{opacity:1}}.chat-suggest{flex-wrap:wrap;gap:6px;display:flex}.chat-suggest button{box-shadow:0 0 0 1px var(--line-strong) inset;color:var(--fg-muted);transition:transform .16s var(--ease-out), color .2s ease;background:0 0;border:0;border-radius:999px;padding:7px 11px;font-size:13px}.chat-suggest button:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.chat-suggest button:hover{color:var(--fg)}}.chat-form{border-top:1px solid var(--line);gap:8px;padding:12px;display:flex}.chat-form input{background:var(--bg-sunken);min-width:0;height:44px;color:var(--fg);border:0;border-radius:999px;outline:none;flex:1;padding:0 14px}.chat-form input:focus-visible{box-shadow:0 0 0 2px var(--accent)}.chat-form .btn{justify-content:center;width:44px;height:44px;padding:0}.data-toggle{z-index:2147483646;background:#e8e8e8;border-radius:999px;gap:2px;padding:3px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px;display:flex;position:fixed;bottom:16px;left:50%;translate:-50%;box-shadow:0 4px 16px #0003}.data-toggle a{white-space:nowrap;color:#555;border-radius:999px;padding:6px 12px;text-decoration:none}.data-toggle a[data-active]{color:#111;background:#fff}.scroll-progress{background:var(--accent);opacity:.7;transform-origin:0;height:1.5px;display:none;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){.scroll-progress{animation:linear both grow-x;animation-timeline:scroll(root);display:block}.hero-v1-inner{animation:linear both hero-leave;animation-timeline:view();animation-range:exit 30%}.timeline{view-timeline:--roles block;position:relative}.timeline:before{content:"";background:var(--accent);opacity:.55;transform-origin:top;border-radius:2px;width:2px;animation:linear both grow-y;animation-timeline:--roles;animation-range:entry 40% cover 60%;position:absolute;top:56px;bottom:56px;left:27px;transform:scaleY(0)}.role-logo{z-index:1;position:relative}}}@keyframes grow-x{to{transform:scaleX(1)}}@keyframes grow-y{to{transform:scaleY(1)}}@keyframes hero-leave{to{opacity:.65;transform:translateY(-20px)}}@media (width<=640px){.timeline:before{left:21px}}.hero-v1{isolation:isolate;position:relative;overflow:clip}.hero-v1-bg{z-index:-1;pointer-events:none;background:radial-gradient(circle at 1px 1px, var(--line-strong) 1px, transparent 0) 0 0 / 26px 26px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 55% at 50% 32%,#000 30%,#0000 75%);mask-image:radial-gradient(60% 55% at 50% 32%,#000 30%,#0000 75%)}.hero-v1-inner{text-align:center;justify-items:center;gap:22px;max-width:880px;display:grid}.avatar{background:var(--accent);border-radius:999px;width:112px;height:112px;margin-bottom:4px;padding:4px;position:relative}.avatar img{border-radius:inherit;object-fit:cover;border:3px solid var(--bg);background:var(--bg-sunken);width:100%;height:100%}.avatar-dot{background:var(--live);border:3px solid var(--bg);border-radius:999px;width:16px;height:16px;position:absolute;bottom:8px;right:8px}.hero-v1 .hero-name{font-size:clamp(48px,9vw,112px);line-height:1}.name-accent{color:var(--accent)}.hero-role{letter-spacing:-.02em;color:var(--fg-muted);align-items:center;gap:10px;margin:-4px 0 0;font-size:clamp(20px,2.6vw,28px);font-weight:500;display:inline-flex}.role-sep{color:var(--fg-faint)}.caret{background:var(--accent);border-radius:2px;align-self:flex-end;width:.55em;height:3px;margin-bottom:.32em;margin-left:-4px;animation:1.1s step-end infinite caret}@keyframes caret{50%{opacity:0}}.hero-v1 .hero-headline{max-width:600px;font-size:clamp(16px,1.6vw,18px);line-height:1.65}.hero-v1 .hero-ctas{justify-content:center;margin-top:6px}.hero-meta{color:var(--fg-muted);flex-wrap:wrap;justify-content:center;gap:8px 22px;margin:10px 0 0;padding:0;font-size:14px;list-style:none;display:flex}.hero-meta li{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.hero-meta svg{width:16px;height:16px;color:var(--fg-faint);flex-shrink:0}@media (prefers-reduced-motion:reduce){.caret{animation:none}}@media (width<=520px){.hero-role{flex-wrap:wrap;justify-content:center;gap:6px}.hero-meta{flex-direction:column;align-items:center}}.margin{width:var(--sw);pointer-events:none;display:none;position:absolute;top:0;bottom:0}.margin-left{left:max(8px, calc(50% - var(--half) - var(--sw)))}.margin-right{right:max(8px, calc(50% - var(--half) - var(--sw)))}.hero-margin{--half:470px;--sw:clamp(240px, calc(50vw - 470px - 48px), 380px);top:64px;bottom:40px}@media (width>=1240px){.hero-margin{display:block}}.margin.deco{--half:620px;--sw:clamp(150px, calc(50vw - 640px), 340px)}@media (width>=1580px){.margin.deco{display:block}}.float-slot{pointer-events:auto;position:absolute}.margin.deco .float-slot{pointer-events:none}.float-card,.float-mark,.float-chip,.float-company,.term,.scan{rotate:var(--r,0deg);animation:drift var(--dur,7s) ease-in-out infinite alternate;animation-delay:calc(var(--i,0) * -1.3s)}@keyframes drift{0%{translate:0 -7px}to{translate:0 7px}}.float-card{background:color-mix(in oklab, var(--bg-raised) 94%, transparent);min-width:168px;box-shadow:var(--shadow-card);color:var(--fg);text-align:left;transition:scale .2s var(--ease-out), box-shadow .2s ease;border:0;border-radius:16px;gap:4px;padding:12px 14px;font-size:13px;line-height:1.3;display:grid}.float-card strong{letter-spacing:-.01em;font-size:15px}.float-card:active{scale:.97}@media (hover:hover) and (pointer:fine){button.float-card:hover{box-shadow:var(--shadow-pop);scale:1.03}}.float-mark{place-items:center;width:30px;height:30px;display:grid}.float-mark img{object-fit:contain;opacity:.85;width:100%;height:100%}[data-theme=light] .float-mark img.mono-white{filter:invert()}.float-chip{white-space:nowrap;color:var(--fg-muted);background:color-mix(in oklab, var(--bg-raised) 90%, transparent);box-shadow:0 0 0 1px var(--line) inset;border-radius:999px;align-items:center;gap:7px;padding:7px 12px 7px 9px;font-size:12.5px;display:inline-flex}.float-chip-icon{width:15px;height:15px;color:var(--accent);display:grid}.float-chip-icon svg{width:100%;height:100%}.float-company{width:46px;height:46px;box-shadow:var(--shadow-card);opacity:.9;background:#fff;border-radius:14px;place-items:center;display:grid}.float-company img{object-fit:contain;width:30px;height:30px}.plane{width:26px;height:26px;color:var(--accent);opacity:.7;animation:16s ease-in-out infinite glide;position:absolute;top:70%;left:0}.plane svg{width:100%;height:100%}@keyframes glide{0%{opacity:0;translate:0}10%{opacity:.7}80%{opacity:.7}to{translate:calc(var(--sw) - 40px) -260px;opacity:0}}.fc-row{align-items:center;gap:8px;display:flex}.fc-col{gap:2px;display:grid}.fc-sub{color:var(--fg-muted);font-size:12.5px}.fc-tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;background:color-mix(in oklab, var(--live) 18%, transparent);color:var(--live);border-radius:999px;padding:2px 7px;font-size:10.5px}.fc-tag.gold{color:#d99a2b;background:oklab(80.8662% .0365727 .122353/.2)}.fc-live{background:var(--live);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in oklab, var(--live) 25%, transparent);border-radius:999px}.fc-trophy{font-size:15px;line-height:1}.fc-grade{color:#5fe0c3;background:#0d1b2a;border-radius:11px;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:20px;font-weight:700;display:grid}.fc-bars{gap:5px;margin-top:6px;display:grid}.fc-bars i{background:var(--bg-sunken);border-radius:3px;height:5px;display:block}.fc-progress{background:var(--bg-sunken);border-radius:2px;height:4px;margin-top:8px;position:relative}.fc-progress i{border-radius:inherit;background:#e5243b;position:absolute;inset:0 58% 0 0}.fc-progress i:after{content:"";background:#e5243b;border-radius:999px;width:10px;height:10px;position:absolute;top:-3px;right:-5px}.fc-dots{gap:5px;margin-top:6px;display:flex}.fc-dots i{border-radius:999px;width:8px;height:8px}@media (width>=1600px){.float-card{min-width:196px;padding:14px 16px;font-size:14px}.float-card strong{font-size:16px}}@media (prefers-reduced-motion:reduce){.float-card,.float-mark,.float-chip,.float-company,.plane{animation:none}.plane{opacity:.7}}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){.hero-margin{animation:linear both side-part;animation-timeline:scroll(root);animation-range:0 100vh}.hero-margin.margin-left{--part:-60px}.hero-margin.margin-right{--part:60px}.margin.deco{animation:linear both deco-in,linear both deco-depth;animation-timeline:view(),view();animation-range:entry 10% cover 35%,cover}.margin.deco.margin-left{--depth:70px}.margin.deco.margin-right{--depth:30px}}}@keyframes side-part{to{translate:var(--part,0) -40px;opacity:.4}}@keyframes deco-in{0%{opacity:0}to{opacity:1}}@keyframes deco-depth{0%{translate:0 var(--depth,40px)}to{translate:0 calc(var(--depth,40px) * -1)}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.float-slot{animation:linear forwards slot-exit;animation-timeline:view();animation-range:exit}.float-slot.enter{animation:enter .8s var(--ease-out) forwards, slot-exit linear forwards;animation-delay:calc(var(--i,0) * 70ms + 80ms), 0s;animation-timeline:auto,view();animation-range:normal,exit}.project,.role,.edu,.skill-card{animation:linear forwards card-exit;animation-timeline:view();animation-range:exit 5% exit 95%}}}@keyframes slot-exit{to{opacity:0}}@keyframes card-exit{to{opacity:0}}.role-btn,.edu-btn{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color .2s ease, transform .16s var(--ease-out);background:0 0;border:0;position:relative}.role-item{border-bottom:1px solid var(--line)}.role-btn{border-bottom:0;border-radius:18px;width:calc(100% + 28px);margin-inline:-14px;padding-inline:14px}.role-btn:active,.edu-btn:active{transform:scale(.99)}.role-btn .role-title,.role-btn .role-points>span{display:block}.role-arrow{width:18px;height:18px;color:var(--fg-faint);transition:transform .2s var(--ease-out), color .2s ease;position:absolute;bottom:28px;right:14px}.edu-btn .role-arrow{margin-left:4px;position:static}@media (hover:hover) and (pointer:fine){.role-btn:hover{background:var(--bg-sunken)}.edu-btn:hover{box-shadow:var(--shadow-pop)}.role-btn:hover .role-arrow,.edu-btn:hover .role-arrow{color:var(--fg);transform:translate(2px,-2px)}}.dialog-logo{flex-shrink:0;grid-row:auto;width:52px;height:52px}.dialog-head .role-company{margin-top:4px;display:block}@media (width<=640px){.role-arrow{bottom:22px}}.cmdk-logo{object-fit:contain;background:#fff;border-radius:4px;flex-shrink:0;width:16px;height:16px}.dialog-fx{isolation:isolate}.dialog-fx>*{z-index:1;position:relative}@media (width>=641px){.dialog-fx{transition:opacity .26s var(--ease-out), transform .56s var(--ease-drawer)}.dialog-fx[data-starting-style],.dialog-fx[data-ending-style]{opacity:0;transform:translate(var(--dx,0px), var(--dy,0px)) scale(.18)}.dialog-fx[data-ending-style]{transition:opacity .2s var(--ease-out), transform .28s var(--ease-out)}}.dialog-fx .dialog-head,.dialog-fx .dialog-desc,.dialog-fx .project-foot{animation:dlg-rise .6s var(--ease-out) both}.dialog-fx .dialog-head{animation-delay:.14s}.dialog-fx .dialog-desc{animation-delay:.21s}.dialog-fx .dialog-points li{animation:dlg-rise .6s var(--ease-out) both;animation-delay:calc(.27s + var(--n,0) * 55ms)}.dialog-fx .dialog-points li:first-child{--n:0}.dialog-fx .dialog-points li:nth-child(2){--n:1}.dialog-fx .dialog-points li:nth-child(3){--n:2}.dialog-fx .dialog-points li:nth-child(4){--n:3}.dialog-fx .dialog-points li:nth-child(5){--n:4}.dialog-fx .dialog-points li:nth-child(6){--n:5}.dialog-fx .project-foot{animation-delay:.52s}@keyframes dlg-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.dialog-object{perspective:400px;flex-shrink:0;place-items:center;width:82px;height:82px;margin:-6px 2px -6px -6px;display:grid}.dialog-object>.m3-stage{animation:.9s cubic-bezier(.34,1.36,.64,1) .16s both obj-spin-in;scale:1.35}@keyframes obj-spin-in{0%{opacity:0;transform:rotateY(-150deg)rotateX(20deg)scale(.4)}to{opacity:1;transform:none}}.dialog-flip{animation:.8s cubic-bezier(.34,1.3,.64,1) .16s both tile-flip-in}@keyframes tile-flip-in{0%{opacity:0;transform:perspective(400px)rotateY(100deg)scale(.7)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.dialog-fx[data-starting-style],.dialog-fx[data-ending-style]{transform:none}.dialog-fx .dialog-head,.dialog-fx .dialog-desc,.dialog-fx .project-foot,.dialog-fx .dialog-points li,.dialog-object>.m3-stage,.dialog-flip{animation:none}}.hero-role-line{white-space:nowrap;align-items:center;gap:10px;display:inline-flex}.typed-slot{text-align:left;display:inline-grid}.typed-ghost,.typed-text{grid-area:1/1}.typed-ghost{visibility:hidden}.typed-text{color:var(--fg);align-items:center;display:inline-flex}.typed-text .caret{margin-left:3px}@media (width<=520px){.hero-role-line{flex-direction:column;gap:2px}.hero-role-line .role-sep{display:none}.typed-slot{text-align:center}}.dialog-foot{align-items:center;gap:16px}.dialog-foot .chips{flex-wrap:wrap;flex:1;min-width:0}.dialog-foot .btn{flex-shrink:0;margin-left:auto}@media (width<=480px){.dialog-foot{flex-wrap:wrap}}.msg-ai{white-space:normal}.msg-ai p{margin:0}.msg-ai p+p,.msg-ai p+.msg-list,.msg-ai .msg-list+p{margin-top:8px}.msg-list{gap:4px;margin:6px 0 0;padding-left:18px;display:grid}.msg-link{color:var(--accent);text-underline-offset:2px;overflow-wrap:anywhere;text-decoration:underline}.m3-stage{perspective:260px;flex-shrink:0;place-items:center;width:58px;height:58px;display:grid;position:relative}.fc-3d{grid-template-columns:58px minmax(0,1fr);align-items:center;gap:12px;display:grid}.badge3d{width:38px;height:52px;transform-style:preserve-3d;animation:badge-flip 7s var(--ease-in-out) infinite;position:relative}.badge3d:before{content:"";background:#cfd3da;border-radius:2px;width:12px;height:5px;position:absolute;top:-7px;left:50%;translate:-50%}.badge3d-face{backface-visibility:hidden;background:#fff;border-radius:6px;position:absolute;inset:0;overflow:hidden;box-shadow:0 6px 14px -6px #00000073}.badge3d-front{align-content:start;justify-items:center;gap:4px;display:grid}.b3-head{color:#f5c400;width:100%;font:800 8px/1 var(--font-sans);letter-spacing:.08em;text-align:center;background:#111;padding:3px 0}.b3-avatar{background:#e6e1d4;border-radius:999px;width:14px;height:14px}.b3-line{background:#222;border-radius:2px;width:24px;height:3px}.b3-line.short{background:#f5c400;width:16px}.badge3d-back{color:#111;font:700 8px/1.15 var(--font-sans);text-align:center;background:#f5c400;place-content:center;gap:2px;display:grid;transform:rotateY(180deg)}@keyframes badge-flip{0%,38%{transform:rotateY(-14deg)rotateX(6deg)}50%,88%{transform:rotateY(166deg)rotateX(6deg)}to{transform:rotateY(346deg)rotateX(6deg)}}.coin3d{width:42px;height:42px;transform-style:preserve-3d;animation:coin-flip 6s var(--ease-in-out) infinite;position:relative}.coin3d-edge,.coin3d-face{border-radius:999px;position:absolute;inset:0}.coin3d-edge{background:#c99a2e}.coin3d-face{font:800 20px/1 var(--font-sans);backface-visibility:hidden;place-items:center;display:grid;box-shadow:inset 0 0 0 4px #e8b84a}.coin3d-a{color:#fff;background:#14b8a6;transform:translateZ(4px)}.coin3d-f{color:#fff;background:#e5243b;transform:rotateY(180deg)translateZ(4px)}@keyframes coin-flip{0%,38%{transform:rotateY(-18deg)}50%,88%{transform:rotateY(162deg)}to{transform:rotateY(342deg)}}.ribbon{color:#3b2410;font:800 9px/1 var(--font-sans);background:#f2b35b;border-radius:4px;padding:2px 5px;position:absolute;top:-6px;right:-12px;rotate:12deg}.tv3d{width:48px;height:36px;transform-style:preserve-3d;animation:tv-sway 8s var(--ease-in-out) infinite alternate;position:relative;transform:rotateY(-24deg)rotateX(10deg)}.tv3d-front,.tv3d-top,.tv3d-side{background:#f3e9d2;position:absolute}.tv3d-front{border-radius:6px;padding:4px 9px 4px 4px;inset:0;transform:translateZ(8px)}.tv3d-top{transform-origin:top;background:#e3d6b8;border-radius:4px;width:48px;height:16px;top:0;left:0;transform:rotateX(90deg)translateZ(-8px)}.tv3d-side{transform-origin:100%;background:#d8c9a6;border-radius:4px;width:16px;height:36px;top:0;right:0;transform:rotateY(90deg)translateZ(-8px)}.tv3d-screen{background:#241016;border-radius:4px;place-items:center;width:100%;height:100%;display:grid;position:relative}.tv3d-play{border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:8px solid #fff;width:0;height:0;margin-top:-4px;margin-left:2px}.tv3d-bar{background:#ffffff40;border-radius:1px;height:2px;position:absolute;bottom:3px;left:3px;right:3px}.tv3d-fill{border-radius:inherit;transform-origin:0;background:#e5243b;animation:6s ease-out infinite tv-play;position:absolute;inset:0;transform:scaleX(.68)}.tv3d-line{opacity:.8;background:#fff;width:1px;height:8px;position:absolute;top:-3px;left:70%}.tv3d-antenna{transform-origin:bottom;background:#c5cad3;width:1.5px;height:12px;position:absolute;top:-11px;left:50%;transform:translateZ(8px)}.tv3d-antenna.left{rotate:-28deg}.tv3d-antenna.right{rotate:28deg}@keyframes tv-play{0%{transform:scaleX(.05)}70%,to{transform:scaleX(.68)}}@keyframes tv-sway{to{transform:rotateY(18deg)rotateX(8deg)}}.term{color:#c9d1d9;width:190px;font:500 11px/1.4 var(--font-mono);box-shadow:0 0 0 1px #ffffff0f inset, var(--shadow-card);background:#0f1115;border-radius:12px;gap:3px;padding:10px 12px 12px;display:grid}.term-dots{color:#6e7681;align-items:center;gap:4px;margin-bottom:4px;font-size:10px;display:flex}.term-dots i{background:#3a3f47;border-radius:999px;width:6px;height:6px}.term-dots span{margin-left:6px}.term-line{opacity:0;animation:10s step-end infinite term-type;animation-delay:calc(var(--n) * .9s)}.term-line.ok{color:#5fd4a8}@keyframes term-type{0%{opacity:0}4%,76%{opacity:1}80%,to{opacity:0}}.scan{width:170px;box-shadow:var(--shadow-card);background:#fff;border-radius:12px;gap:6px;padding:12px 12px 30px;display:grid;position:relative;overflow:hidden}.scan-title{font:700 11px/1 var(--font-sans);color:#111;margin-bottom:2px}.scan-line{background:#d9d9d9;border-radius:3px;height:5px}.scan-line.hit{animation:7s linear infinite scan-hit}.scan-bar{background:#14b8a6;height:2px;margin-top:6px;animation:7s ease-in-out infinite scan-sweep;position:absolute;top:22px;left:0;right:0}.scan-flag{color:#7a5c00;font:600 10px/1 var(--font-sans);opacity:0;background:#f5c40040;border-radius:999px;padding:3px 7px;animation:7s ease-out infinite scan-flag;position:absolute;bottom:8px;left:12px}@keyframes scan-sweep{0%{opacity:0;transform:translateY(0)}6%{opacity:1}45%{opacity:1;transform:translateY(58px)}52%,to{opacity:0;transform:translateY(58px)}}@keyframes scan-hit{0%,18%{background:#d9d9d9}21%,92%{background:#f5c400}to{background:#d9d9d9}}@keyframes scan-flag{0%,22%{opacity:0;transform:translateY(4px)}28%,90%{opacity:1;transform:none}to{opacity:0}}.float-card{contain:paint;position:relative}@media (prefers-reduced-motion:reduce){.badge3d,.coin3d,.tv3d,.tv3d-fill,.term-line,.scan-bar,.scan-line.hit,.scan-flag{animation:none}.term-line,.scan-flag{opacity:1}.scan-line.hit{background:#f5c400}.scan-bar{display:none}}.mini-card{background:color-mix(in oklab, var(--bg-raised) 94%, transparent);min-width:200px;box-shadow:var(--shadow-card);color:var(--fg);rotate:var(--r,0deg);animation:drift var(--dur,7s) ease-in-out infinite alternate;animation-delay:calc(var(--i,0) * -1.3s);contain:paint;border-radius:16px;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:12px;padding:10px 14px 10px 10px;font-size:13px;line-height:1.3;display:grid}.mini-card strong{letter-spacing:-.01em;font-size:14.5px}.ndt3d{background:linear-gradient(#ffffff14 1px,#0000 1px) 0 0/8px 8px,linear-gradient(90deg,#ffffff14 1px,#0000 1px) 0 0/8px 8px,#3d444d;border-radius:6px;width:46px;height:46px;position:relative;overflow:hidden;transform:rotateX(52deg)rotate(-30deg);box-shadow:0 10px 14px -8px #0009}.ndt3d-beam{background:#5fd4a8;width:2px;margin-left:4px;animation:6s ease-in-out infinite ndt-sweep;position:absolute;top:0;bottom:0;left:0}.ndt3d-defect{opacity:0;border:2px solid #ff4d5e;border-radius:999px;width:9px;height:9px;animation:6s ease-out infinite ndt-found;position:absolute;top:14px;left:28px}@keyframes ndt-sweep{0%{translate:-12px}55%,to{translate:50px}}@keyframes ndt-found{0%,38%{opacity:0;scale:.6}44%{opacity:1;scale:1.3}52%,90%{opacity:1;scale:1}to{opacity:0}}.pdf3d{perspective:160px;width:34px;height:44px;position:relative}.pdf3d-page{background:linear-gradient(#cfcfcf,#cfcfcf) 6px 18px/20px 2px no-repeat,linear-gradient(#cfcfcf,#cfcfcf) 6px 23px/16px 2px no-repeat,linear-gradient(#cfcfcf,#cfcfcf) 6px 28px/22px 2px no-repeat,linear-gradient(#cfcfcf,#cfcfcf) 6px 33px/14px 2px no-repeat,#fff;border-radius:3px;position:absolute;inset:0;box-shadow:0 6px 12px -6px #00000080}.pdf3d-page.base b{color:#fff;font:800 7px/1.2 var(--font-sans);background:#e5243b;border-radius:2px;padding:1px 3px;position:absolute;top:4px;left:4px}.pdf3d-page.turn{transform-origin:0;animation:page-turn 5s var(--ease-in-out) infinite}@keyframes page-turn{0%,30%{opacity:1;transform:rotateY(0)}65%,to{opacity:0;transform:rotateY(-165deg)}}.pdf3d-lock{background:#14b8a6;border-radius:3px;width:15px;height:12px;position:absolute;bottom:-5px;right:-6px;box-shadow:0 3px 6px -2px #0006}.pdf3d-lock:before{content:"";box-sizing:border-box;border:2px solid #14b8a6;border-bottom:0;border-radius:5px 5px 0 0;width:9px;height:8px;position:absolute;top:-6px;left:3px}.steps3d{perspective:300px;align-items:center;gap:6px;display:flex}.step3d{width:36px;height:30px;font:700 10px/1 var(--font-mono);color:var(--fg-muted);background:var(--bg-sunken);box-shadow:0 0 0 1px var(--line-strong) inset;animation:6s ease-out infinite step-light;animation-delay:calc(var(--n) * .7s);border-radius:8px;place-items:center;display:grid;transform:rotateX(18deg)}@keyframes step-light{0%,6%{background:var(--bg-sunken);color:var(--fg-muted);transform:rotateX(18deg)translateY(0)}12%,70%{color:#132006;background:#a3e635;transform:rotateX(0)translateY(-3px)}80%,to{background:var(--bg-sunken);color:var(--fg-muted);transform:rotateX(18deg)translateY(0)}}.visa3d{width:48px;height:31px;animation:tv-sway 9s var(--ease-in-out) infinite alternate;background:#e0b74f;border-radius:5px;position:relative;overflow:hidden;transform:rotateY(-20deg)rotateX(12deg);box-shadow:0 8px 14px -6px #0000008c}.visa3d-chip{background:#e9e3d0;border-radius:2px;width:9px;height:7px;position:absolute;top:9px;left:6px;box-shadow:inset 0 0 0 1px #00000026}.visa3d-text{font:800 7px/1 var(--font-sans);color:#5a3f05;letter-spacing:.08em;position:absolute;bottom:5px;right:6px}.visa3d-sheen{background:#ffffff73;width:14px;animation:5s ease-in-out infinite sheen;position:absolute;top:-50%;bottom:-50%;left:0;rotate:20deg}@keyframes sheen{0%,55%{translate:-20px}85%,to{translate:70px}}.clock3d{background:#f4f2ec;border-radius:999px;width:42px;height:42px;position:relative;transform:rotateY(-22deg)rotateX(10deg);box-shadow:inset 0 0 0 3px #1b1b1b,4px 5px 0 -1px #2a2a2a,0 10px 16px -8px #0009}.clock3d-hand{transform-origin:bottom;border-radius:2px;width:2px;margin-left:-1px;animation:linear infinite hand;position:absolute;bottom:50%;left:50%}.clock3d-hand.h{background:#1b1b1b;height:11px;animation-duration:43200s}.clock3d-hand.m{background:#1b1b1b;height:15px;animation-duration:3600s}.clock3d-hand.s{background:#e5243b;width:1px;height:16px;margin-left:-.5px;animation-duration:60s}.clock3d-pin{background:#e5243b;border-radius:999px;width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute;top:50%;left:50%}@keyframes hand{to{rotate:360deg}}.pin3d-ground{width:46px;height:46px;margin:-23px 0 0 -23px;position:absolute;top:70%;left:50%;transform:rotateX(68deg)}.pin3d-ripple{border:2px solid var(--pin-c);opacity:0;border-radius:999px;animation:3.2s ease-out infinite ripple;position:absolute;inset:0}.pin3d-ripple.two{animation-delay:1.6s}.pin3d-shadow{background:#00000059;border-radius:999px;width:12px;height:12px;margin:-6px 0 0 -6px;animation:3.2s ease-in-out infinite pin-shadow;position:absolute;top:50%;left:50%}@keyframes ripple{0%{opacity:.9;scale:.2}to{opacity:0;scale:1}}@keyframes pin-shadow{0%,to{scale:1}50%{scale:.65}}.pin3d-pin{background:var(--pin-c);border-radius:50% 50% 50% 0;width:20px;height:20px;margin-left:-10px;animation:3.2s ease-in-out infinite pin-bob;position:absolute;top:8px;left:50%;rotate:-45deg;box-shadow:inset -3px -3px #00000026}.pin3d-pin:after{content:"";background:#ffffffe6;border-radius:999px;position:absolute;inset:6px}@keyframes pin-bob{0%,to{translate:0}50%{translate:3px -3px}}.fliplogo{perspective:400px;width:118px;height:58px;rotate:var(--r,0deg);animation:drift var(--dur,7s) ease-in-out infinite alternate;animation-delay:calc(var(--i,0) * -1.3s);display:block}.fliplogo-inner{width:100%;height:100%;transform-style:preserve-3d;animation:logo-flip 9s var(--ease-in-out) infinite;animation-delay:calc(var(--i,0) * -3s);display:block;position:relative}.fliplogo-face{backface-visibility:hidden;box-shadow:var(--shadow-card);border-radius:14px;place-items:center;display:grid;position:absolute;inset:0}.fliplogo-face.front{background:#fff}.fliplogo-face.front img{object-fit:contain;width:70%;height:70%}.fliplogo-face.back{background:var(--bg-raised);color:var(--fg);font:600 11px/1.3 var(--font-sans);text-align:center;padding:6px 10px;transform:rotateY(180deg)}@keyframes logo-flip{0%,40%{transform:rotateY(0)}50%,90%{transform:rotateY(180deg)}to{transform:rotateY(360deg)}}.float-mark{perspective:220px;pointer-events:auto;position:relative}.float-mark img{animation:logo-turn var(--dur2,9s) var(--ease-in-out) infinite alternate;animation-delay:calc(var(--i,0) * -2.1s);transition:scale .25s var(--ease-out)}@keyframes logo-turn{0%{transform:rotateY(-32deg)rotateX(6deg)}to{transform:rotateY(32deg)rotateX(-6deg)}}.mark-label{background:var(--fg);color:var(--bg);font:600 11px/1.3 var(--font-sans);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .18s var(--ease-out), translate .18s var(--ease-out);border-radius:999px;padding:3px 8px;position:absolute;top:calc(100% + 8px);left:50%;translate:-50% 4px}@media (hover:hover) and (pointer:fine){.float-mark:hover img{scale:1.3}.float-mark:hover .mark-label{opacity:1;translate:-50%}}@media (prefers-reduced-motion:reduce){.mini-card,.coin3d,.ndt3d-beam,.ndt3d-defect,.pdf3d-page.turn,.step3d,.visa3d,.visa3d-sheen,.pin3d-ripple,.pin3d-shadow,.pin3d-pin,.fliplogo,.fliplogo-inner,.float-mark img{animation:none}.ndt3d-defect{opacity:1}.clock3d-hand.s{display:none}}.steps-card{grid-template-columns:auto;gap:8px;padding:12px 14px}.project-object{transform-origin:0;pointer-events:none;align-items:center;height:84px;margin:2px 0 -4px 6px;display:flex;scale:1.4}.project-card .m3-stage{isolation:isolate}@media (hover:hover) and (pointer:fine){.project-object{transition:scale .3s var(--ease-out)}.project-card:hover .project-object{scale:1.5}}[data-offscreen] .float-slot *,[data-offscreen] .plane,.project-object[data-offscreen] *{animation-play-state:paused!important}.fliplogo[data-clickable]{pointer-events:auto;cursor:pointer}@media (hover:hover) and (pointer:fine){.fliplogo[data-clickable]:hover .fliplogo-inner{animation-play-state:paused}}.radar3d{background:#0f2a22;border-radius:999px;width:46px;height:46px;position:relative;overflow:hidden;transform:rotateX(50deg);box-shadow:inset 0 0 0 2px #2f6b55,0 10px 14px -8px #0009}.radar3d-ring{border:1px solid #5fd4a859;border-radius:999px;position:absolute}.radar3d-ring.r1{inset:8px}.radar3d-ring.r2{inset:16px}.radar3d-sweep{transform-origin:0;background:#5fd4a8;width:50%;height:2px;margin-top:-1px;animation:4s linear infinite radar-sweep;position:absolute;top:50%;left:50%}.radar3d-blip{opacity:.15;background:#5fd4a8;border-radius:999px;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;animation:4s linear infinite radar-blip;position:absolute}.radar3d-blip.b1{animation-delay:-3.6s;top:30%;left:72%}.radar3d-blip.b2{background:#f2b35b;animation-delay:-1.5s;top:64%;left:30%}.radar3d-blip.b3{animation-delay:-2.7s;top:74%;left:64%}@keyframes radar-sweep{to{rotate:360deg}}@keyframes radar-blip{0%{opacity:1;scale:1.4}60%,to{opacity:.15;scale:1}}.fridge3d{width:32px;height:46px;transform-style:preserve-3d;position:relative;transform:rotateY(-20deg)rotateX(8deg)}.fridge3d-inside{background:#e8eef0;border-radius:5px;grid-template-columns:1fr 1fr;align-content:center;gap:5px 4px;padding:6px;display:grid;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #cfd8dc}.fridge3d-inside i{border-radius:999px;justify-self:center;width:8px;height:8px}.fridge3d-inside .red{background:#e5243b}.fridge3d-inside .amber{background:#f59e0b}.fridge3d-inside .green{background:#65a30d}.fridge3d-door{transform-origin:0;animation:fridge-door 7s var(--ease-in-out) infinite;background:#f4f6f7;border-radius:5px;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #cfd8dc,inset -5px 0 0 -3px #b0bec5}.fridge3d-door:after{content:"";background:#90a4ae;border-radius:1px;width:2px;height:12px;position:absolute;top:10px;right:4px}@keyframes fridge-door{0%,20%{transform:translateZ(2px)rotateY(0)}40%,75%{transform:translateZ(2px)rotateY(-115deg)}95%,to{transform:translateZ(2px)rotateY(0)}}.idx3d{background:#f4f2ec;border-radius:5px;width:48px;height:32px;position:relative;overflow:hidden;transform:rotateY(-18deg)rotateX(14deg);box-shadow:0 8px 14px -6px #0000008c}.idx3d-photo{background:#c9c3b3;border-radius:2px;width:11px;height:14px;position:absolute;top:6px;left:5px}.idx3d-field{transform-origin:0;height:3px;animation:idx-fill 6s var(--ease-out) infinite;background:#d9d6cc;border-radius:2px;position:absolute;left:20px}.idx3d-field.f1{width:22px;top:7px}.idx3d-field.f2{width:16px;animation-delay:.35s;top:13px}.idx3d-field.f3{width:19px;animation-delay:.7s;top:19px}@keyframes idx-fill{0%,30%{background:#d9d6cc}38%,85%{background:#f5c400}to{background:#d9d6cc}}.idx3d-scan{background:#14b8a6;width:2px;animation:6s ease-in-out infinite idx-scan;position:absolute;top:0;bottom:0;left:0}@keyframes idx-scan{0%{opacity:0;translate:-4px}5%{opacity:1}35%{opacity:1;translate:50px}40%,to{opacity:0;translate:50px}}@media (prefers-reduced-motion:reduce){.radar3d-sweep,.radar3d-blip,.fridge3d-door,.idx3d-field,.idx3d-scan{animation:none}.radar3d-blip{opacity:1}.fridge3d-door{transform:translateZ(2px)rotateY(-115deg)}.idx3d-field{background:#f5c400}.idx3d-scan{display:none}}
