.theme-switch[data-astro-cid-hds7qqbe]{width:96px;height:38px;padding:0;border:0;outline:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s}.theme-switch[data-astro-cid-hds7qqbe]:active{transform:scale(.96)}.theme-switch[data-astro-cid-hds7qqbe]:focus-visible{outline:2px solid #eec583;outline-offset:4px;border-radius:999px}.theme-switch__track[data-astro-cid-hds7qqbe]{position:relative;display:block;width:100%;height:100%;border:1px solid var(--border-color);border-radius:999px;background:var(--surface-background);box-shadow:inset 0 2px 5px #2a2a2a14,0 5px 14px #2a2a2a1f;transition:background-color .26s,border-color .26s,box-shadow .26s}.theme-switch__thumb[data-astro-cid-hds7qqbe]{position:absolute;top:2px;left:2px;width:32px;height:32px;border-radius:50%;background:#fff;box-shadow:0 3px 9px #2a2a2a33,inset 0 1px #ffffffe6;transform:translate(0);transition:transform .32s cubic-bezier(.22,1,.36,1),background-color .26s,box-shadow .26s}html[data-theme=dark] .theme-switch__track[data-astro-cid-hds7qqbe]{border-color:var(--border-color);background:var(--surface-background);box-shadow:inset 0 2px 6px #00000052,0 0 16px #c38d3614,0 5px 14px #0000002e}html[data-theme=dark] .theme-switch__thumb[data-astro-cid-hds7qqbe]{background:linear-gradient(135deg,#e7b765,#eec583 52%,#f3d9a5);box-shadow:0 0 8px #f3d9a594,0 0 18px #eec58352,0 3px 8px #00000047;transform:translate(58px)}@media(prefers-reduced-motion:reduce){.theme-switch[data-astro-cid-hds7qqbe],.theme-switch__track[data-astro-cid-hds7qqbe],.theme-switch__thumb[data-astro-cid-hds7qqbe]{transition-duration:1ms}}.social-icon[data-astro-cid-g5kwm3ld]{display:inline-grid;width:22px;height:22px;flex:0 0 22px;place-items:center}.social-icon[data-astro-cid-g5kwm3ld] svg[data-astro-cid-g5kwm3ld]{display:block;width:20px;height:20px}.resume-modal[data-astro-cid-3chsf3rs]{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:3vh 3vw;color:#141414;visibility:hidden}.resume-modal[data-astro-cid-3chsf3rs][hidden]{display:none}.resume-modal[data-astro-cid-3chsf3rs].is-open,.resume-modal[data-astro-cid-3chsf3rs].is-closing{visibility:visible}.resume-modal__backdrop[data-astro-cid-3chsf3rs]{position:absolute;inset:0;background:#08080861;backdrop-filter:blur(16px);opacity:0;transition:opacity .24s}.resume-modal__dialog[data-astro-cid-3chsf3rs]{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(94vw,1500px);height:94vh;overflow:hidden;border:1px solid #fff3;border-radius:22px;background:#e9e9e7;box-shadow:0 30px 90px #00000057;opacity:0;transform:translateY(20px) scale(.985);transition:opacity .32s,transform .34s cubic-bezier(.22,1,.36,1)}.resume-modal[data-astro-cid-3chsf3rs].is-open .resume-modal__backdrop[data-astro-cid-3chsf3rs]{opacity:1}.resume-modal[data-astro-cid-3chsf3rs].is-open .resume-modal__dialog[data-astro-cid-3chsf3rs]{opacity:1;transform:none}.resume-modal__toolbar[data-astro-cid-3chsf3rs]{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:10px 14px;border-bottom:1px solid #1414141a;background:#f5f5f3e0;backdrop-filter:blur(18px)}.resume-modal__actions[data-astro-cid-3chsf3rs]{display:flex;align-items:center;gap:10px}.resume-modal__font-controls[data-astro-cid-3chsf3rs]{display:inline-flex;align-items:center;gap:3px;padding:3px;border:1px solid #1414141a;border-radius:999px;background:#1414140f}.resume-modal__font-controls[data-astro-cid-3chsf3rs] button[data-astro-cid-3chsf3rs]{display:grid;width:38px;min-height:38px;padding:0;place-items:center;border:0;border-radius:50%;background:none;color:#202020;font:600 20px/1 system-ui,sans-serif;cursor:pointer;transition:opacity .18s,background .18s}.resume-modal__font-controls[data-astro-cid-3chsf3rs] output[data-astro-cid-3chsf3rs]{min-width:43px;color:#555;font:600 11px/1 system-ui,sans-serif;text-align:center}.resume-modal__font-controls[data-astro-cid-3chsf3rs] button[data-astro-cid-3chsf3rs]:hover:not(:disabled){background:#ffffffc7}.resume-modal__font-controls[data-astro-cid-3chsf3rs] button[data-astro-cid-3chsf3rs]:disabled{opacity:.32;cursor:not-allowed}.resume-modal__segmented[data-astro-cid-3chsf3rs]{display:inline-flex;gap:2px;padding:3px;border:1px solid #1414141a;border-radius:999px;background:#1414140f}.resume-modal__segmented[data-astro-cid-3chsf3rs] button[data-astro-cid-3chsf3rs],.resume-modal__download[data-astro-cid-3chsf3rs],.resume-modal__close[data-astro-cid-3chsf3rs]{min-height:38px;border:0;color:#202020;font:600 13px/1 system-ui,sans-serif;cursor:pointer}.resume-modal__segmented[data-astro-cid-3chsf3rs] button[data-astro-cid-3chsf3rs]{min-width:70px;padding:0 15px;border-radius:999px;background:none;transition:background .18s,box-shadow .18s}.resume-modal__segmented[data-astro-cid-3chsf3rs] button[data-astro-cid-3chsf3rs][aria-pressed=true]{background:#fff;box-shadow:0 1px 5px #00000021}.resume-modal__download[data-astro-cid-3chsf3rs]{display:inline-flex;align-items:center;justify-content:center;padding:0 18px;border-radius:999px;background:#171717;color:#fff;text-decoration:none;transition:transform .18s,background .18s}.resume-modal__close[data-astro-cid-3chsf3rs]{display:grid;width:38px;padding:0;place-items:center;border-radius:50%;background:#14141414}.resume-modal__close[data-astro-cid-3chsf3rs] svg[data-astro-cid-3chsf3rs]{width:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.6px}.resume-modal__segmented[data-astro-cid-3chsf3rs] button[data-astro-cid-3chsf3rs]:hover,.resume-modal__close[data-astro-cid-3chsf3rs]:hover{background:#ffffffb8}.resume-modal__download[data-astro-cid-3chsf3rs]:hover{background:#333;transform:translateY(-1px)}.resume-modal[data-astro-cid-3chsf3rs] button[data-astro-cid-3chsf3rs]:focus-visible,.resume-modal[data-astro-cid-3chsf3rs] a[data-astro-cid-3chsf3rs]:focus-visible{outline:2px solid #2962ff;outline-offset:2px}.resume-modal__viewport[data-astro-cid-3chsf3rs]{min-height:0;overflow:auto;padding:34px 24px 52px;overscroll-behavior:contain;scrollbar-gutter:stable}.resume-modal__viewport[data-astro-cid-3chsf3rs] [data-astro-cid-3chsf3rs][data-resume-document][hidden]{display:none}.resume-modal__sr-only[data-astro-cid-3chsf3rs]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(width<=1024px){.resume-modal[data-astro-cid-3chsf3rs]{padding:2vh 2vw}.resume-modal__dialog[data-astro-cid-3chsf3rs]{width:96vw;height:96vh}}@media(width<=640px){.resume-modal[data-astro-cid-3chsf3rs]{padding:0}.resume-modal__dialog[data-astro-cid-3chsf3rs]{width:100vw;height:100dvh;border:0;border-radius:0}.resume-modal__toolbar[data-astro-cid-3chsf3rs]{min-height:58px;padding:8px 10px}.resume-modal__actions[data-astro-cid-3chsf3rs]{gap:6px}.resume-modal__segmented[data-astro-cid-3chsf3rs] button[data-astro-cid-3chsf3rs]{min-width:48px;padding:0 10px}.resume-modal__font-controls[data-astro-cid-3chsf3rs] button[data-astro-cid-3chsf3rs]{width:36px;min-height:36px}.resume-modal__font-controls[data-astro-cid-3chsf3rs] output[data-astro-cid-3chsf3rs]{min-width:38px}.resume-modal__download[data-astro-cid-3chsf3rs]{padding:0 11px}.resume-modal__viewport[data-astro-cid-3chsf3rs]{padding:18px 12px 36px}}@media(width<=430px){.resume-modal__toolbar[data-astro-cid-3chsf3rs]{gap:7px}.resume-modal__actions[data-astro-cid-3chsf3rs]{min-width:0}.resume-modal__segmented[data-astro-cid-3chsf3rs] button[data-astro-cid-3chsf3rs],.resume-modal__download[data-astro-cid-3chsf3rs],.resume-modal__close[data-astro-cid-3chsf3rs]{min-height:36px;font-size:12px}.resume-modal__font-controls[data-astro-cid-3chsf3rs] output[data-astro-cid-3chsf3rs]{display:none}.resume-modal__download[data-astro-cid-3chsf3rs]{position:relative;overflow:hidden;width:38px;padding:0;color:#0000}.resume-modal__download[data-astro-cid-3chsf3rs]:after{position:absolute;color:#fff;content:"↓";font-size:19px}}@media(prefers-reduced-motion:reduce){.resume-modal__backdrop[data-astro-cid-3chsf3rs],.resume-modal__dialog[data-astro-cid-3chsf3rs]{transition-duration:1ms}}.contact-modal[data-astro-cid-cawgf6m4]{position:fixed;z-index:10000;inset:0;width:100vw;height:100dvh;isolation:isolate}.contact-modal[data-astro-cid-cawgf6m4][hidden]{display:none}.contact-modal__backdrop[data-astro-cid-cawgf6m4]{position:fixed;z-index:0;inset:0;width:100vw;height:100dvh;background:#f5f2eb85;opacity:0;transition:opacity .3s;pointer-events:auto;transform:translateZ(0);will-change:opacity,backdrop-filter}html[data-theme=dark] .contact-modal__backdrop[data-astro-cid-cawgf6m4]{background:#08080885}@supports (backdrop-filter: blur(1px)){.contact-modal__backdrop[data-astro-cid-cawgf6m4]{background:#f5f2eb38;backdrop-filter:blur(16px) saturate(.88);-webkit-backdrop-filter:blur(16px) saturate(.88)}html[data-theme=dark] .contact-modal__backdrop[data-astro-cid-cawgf6m4]{background:#08080847}}.contact-modal__viewport[data-astro-cid-cawgf6m4]{position:absolute;z-index:1;display:grid;padding:16px;overflow-y:auto;inset:0;place-items:center;pointer-events:none}.contact-modal__panel[data-astro-cid-cawgf6m4]{position:relative;z-index:1;width:min(420px,100vw - 32px);max-height:calc(100dvh - 32px);padding:clamp(24px,5vw,34px);overflow-y:auto;border:1px solid var(--border-color);border-radius:20px;background:var(--surface-background);color:var(--text-primary);filter:none;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 24px 70px #19140d38;opacity:0;transform:translateY(14px) scale(.97);transition:opacity .3s,transform .3s cubic-bezier(.22,1,.36,1);pointer-events:auto}.contact-modal[data-astro-cid-cawgf6m4].is-open .contact-modal__backdrop[data-astro-cid-cawgf6m4],.contact-modal[data-astro-cid-cawgf6m4].is-open .contact-modal__panel[data-astro-cid-cawgf6m4]{opacity:1}.contact-modal[data-astro-cid-cawgf6m4].is-open .contact-modal__panel[data-astro-cid-cawgf6m4]{transform:translateY(0) scale(1)}.contact-modal__close[data-astro-cid-cawgf6m4]{position:absolute;top:14px;right:14px;display:grid;width:40px;height:40px;padding:0;border-radius:50%;cursor:pointer;place-items:center}.contact-modal__close[data-astro-cid-cawgf6m4]:before,.contact-modal__close[data-astro-cid-cawgf6m4]:after{border-radius:50%}.contact-modal__close[data-astro-cid-cawgf6m4] span[data-astro-cid-cawgf6m4],.contact-modal__close[data-astro-cid-cawgf6m4] span[data-astro-cid-cawgf6m4]:after{width:16px;height:1.5px;background:currentColor;content:""}.contact-modal__close[data-astro-cid-cawgf6m4] span[data-astro-cid-cawgf6m4]{transform:rotate(45deg)}.contact-modal__close[data-astro-cid-cawgf6m4] span[data-astro-cid-cawgf6m4]:after{display:block;transform:rotate(90deg)}.contact-modal__header[data-astro-cid-cawgf6m4]{padding-right:44px}.contact-modal__header[data-astro-cid-cawgf6m4] h2[data-astro-cid-cawgf6m4]{margin:0;font-size:clamp(1.75rem,6vw,2.35rem);line-height:1.1}.contact-modal__header[data-astro-cid-cawgf6m4] p[data-astro-cid-cawgf6m4]{margin:10px 0 0;color:var(--text-secondary);line-height:1.5}.contact-modal__links[data-astro-cid-cawgf6m4]{display:grid;margin-top:26px;gap:10px}.contact-modal__link[data-astro-cid-cawgf6m4]{display:flex;min-height:56px;padding:11px 14px;align-items:center;gap:13px;border-radius:14px}.contact-modal__link[data-astro-cid-cawgf6m4]:after{border-radius:12px}.contact-modal__link[data-astro-cid-cawgf6m4]>span[data-astro-cid-cawgf6m4]:last-child{display:grid;min-width:0}.contact-modal__link[data-astro-cid-cawgf6m4] strong[data-astro-cid-cawgf6m4]{font-size:.98rem;font-weight:650}.contact-modal__link[data-astro-cid-cawgf6m4] small[data-astro-cid-cawgf6m4]{color:var(--text-secondary);font-size:.84rem;overflow-wrap:anywhere}@media(width<=480px){.contact-modal__panel[data-astro-cid-cawgf6m4]{padding:24px 20px}.contact-modal__link[data-astro-cid-cawgf6m4]{min-height:52px}}@media(prefers-reduced-motion:reduce){.contact-modal__backdrop[data-astro-cid-cawgf6m4],.contact-modal__panel[data-astro-cid-cawgf6m4]{transition-duration:60ms}.contact-modal__panel[data-astro-cid-cawgf6m4]{transform:none}}.cursor-glow[data-astro-cid-bptwm647]{--cursor-x: -160px;--cursor-y: -160px;position:fixed;top:0;left:0;z-index:9999;width:100px;height:84px;border-radius:50%;pointer-events:none;background:radial-gradient(#ffe6b417,#e8bb6829 32%,#d7a85814,#d7a85800 84%);filter:blur(14px);opacity:0;transform:translate3d(var(--cursor-x),var(--cursor-y),0) translate(-50%,-50%);transition:opacity .24s;will-change:transform,opacity}.cursor-glow[data-astro-cid-bptwm647].is-visible{opacity:.64}@media(width<=767px),(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.cursor-glow[data-astro-cid-bptwm647]{display:none}}html.has-custom-scrollbar{scrollbar-width:none}html.has-custom-scrollbar::-webkit-scrollbar{width:0;height:0}body.is-site-scrollbar-dragging{user-select:none}.site-scrollbar{position:fixed;z-index:10000;top:0;right:0;width:32px;height:100vh;pointer-events:none}.site-scrollbar__track{position:relative;width:32px;height:100%;margin-left:auto;pointer-events:auto;cursor:pointer;background:#eec58306}.site-scrollbar__thumb{position:absolute;top:0;right:4px;width:12px;min-height:48px;border-radius:999px;cursor:grab;touch-action:none;background:linear-gradient(180deg,#f3d9a5,#eec583 48%,#e7b765);box-shadow:inset 1px 0 #ffffff61,0 0 5px #eec58347,0 0 10px #e7b7651f;transition:width .18s ease,box-shadow .18s ease,filter .18s ease;will-change:transform}.site-scrollbar.is-hovered .site-scrollbar__thumb{width:16px;filter:saturate(1.04);box-shadow:inset 1px 0 #ffffff7a,0 0 7px #eec5837a,0 0 15px #e7b76538}.site-scrollbar.is-dragging .site-scrollbar__thumb{width:18px;cursor:grabbing;filter:saturate(1.08);box-shadow:inset 1px 0 #ffffff94,0 0 8px #eec583bf,0 0 20px #e7b7656b,0 0 34px #d9a05233}.site-scrollbar.is-hidden{display:none}@media(max-width:767px),(hover:none),(pointer:coarse){.site-scrollbar{display:none}}@media(prefers-reduced-motion:reduce){.site-scrollbar__thumb{transition:none}}.back-to-top[data-astro-cid-nivby3vt]{display:grid;width:48px;height:48px;padding:0;border:1px solid var(--border-color-strong);border-radius:50%;place-items:center;justify-self:end;background:none;color:var(--text-primary);cursor:pointer;box-shadow:0 1px 3px #1414141f;transition:background .22s,border-color .22s,box-shadow .22s,color .22s,transform .22s}.back-to-top[data-astro-cid-nivby3vt] svg[data-astro-cid-nivby3vt]{width:22px;height:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px}.back-to-top[data-astro-cid-nivby3vt]:focus-visible{outline:2px solid #eec583;outline-offset:3px}@media(hover:hover)and (pointer:fine){.back-to-top[data-astro-cid-nivby3vt]:hover{border-color:#d9a052;background:linear-gradient(135deg,#e7b765,#eec583 48%,#f3d9a5);color:#2a2a2a;box-shadow:0 0 8px #eec5838c,0 0 20px #e7b76547;transform:translateY(-2px)}}.back-to-top[data-astro-cid-nivby3vt]:active{transform:translateY(0) scale(.96)}@media(width<=640px){.back-to-top[data-astro-cid-nivby3vt]{width:44px;height:44px}}@media(prefers-reduced-motion:reduce){.back-to-top[data-astro-cid-nivby3vt]{transition:none}}:root{--page-background: #ffffff;--site-background-start: #ffffff;--site-background-end: #ffffff;--surface-background: #f3f3f3;--surface-background-strong: #eaeaea;--text-primary: #2a2a2a;--text-secondary: #6f6f6f;--text-inverse: #ffffff;--border-color: rgba(42, 42, 42, .18);--border-color-strong: rgba(42, 42, 42, .42);--footer-background: #2a2a2a;--footer-text: #ffffff;--dialog-backdrop: rgba(20, 20, 20, .62);--color-bg: var(--page-background);--color-dark: #2A2A2A;--color-surface: var(--surface-background-strong);--color-placeholder: var(--surface-background);--color-text: var(--text-primary);--color-muted: var(--text-secondary);--color-border: var(--border-color);--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--container-width: 1200px;--space-xs: .5rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2.5rem;--space-xl: 5rem;--space-2xl: 8rem;--radius-sm: .5rem;--radius-md: 1rem;--radius-round: 50%}html[data-theme=dark]{--page-background: #1f1f1f;--site-background-start: #242424;--site-background-end: #1f1f1f;--surface-background: #262626;--surface-background-strong: #303030;--text-primary: #f5f3ee;--text-secondary: #b8b5ae;--text-inverse: #1b1b1b;--border-color: rgba(255, 255, 255, .16);--border-color-strong: rgba(255, 255, 255, .42);--footer-background: #111111;--footer-text: #ffffff;--dialog-backdrop: rgba(0, 0, 0, .74)}*{box-sizing:border-box}html{scroll-behavior:auto}html,body{overflow-x:clip}body{position:relative;margin:0;background:transparent;color:var(--color-text);font-family:var(--font-sans);font-size:1rem;isolation:isolate;line-height:1.6}.site-background{position:fixed;z-index:0;overflow:hidden;background:var(--page-background);inset:0;pointer-events:none;transition:background-color .48s cubic-bezier(.22,1,.36,1)}html[data-theme=dark] .site-background{background:radial-gradient(ellipse at 38% 8%,var(--site-background-start) 0%,#222222 42%,var(--site-background-end) 100%)}.site-background__warm-shape{position:absolute;top:clamp(-260px,-15vw,-100px);left:clamp(-520px,-24vw,-180px);width:clamp(1200px,145vw,2500px);height:clamp(360px,42vw,780px);border-radius:50%;background:radial-gradient(ellipse at center,#c38d363d,#c38d362b 34%,#c38d3612 62%,#c38d3600 78%);filter:blur(clamp(130px,14vw,280px));opacity:0;transform:translate3d(var(--background-parallax-x, 0px),var(--background-parallax-y, 0px),0) rotate(-12deg);transition:opacity .48s cubic-bezier(.22,1,.36,1);will-change:transform}html[data-theme=dark] .site-background__warm-shape{opacity:.19}.site-background__noise{position:absolute;background-image:url(/textures/site-noise.svg);background-repeat:repeat;background-size:180px 180px;inset:0;mix-blend-mode:soft-light;opacity:.02;pointer-events:none;transition:opacity .48s cubic-bezier(.22,1,.36,1)}html[data-theme=dark] .site-background__noise{opacity:.07}main,.hero,.section,.content-page,.project-page{background:var(--page-background)}html[data-theme=dark] main,html[data-theme=dark] .hero,html[data-theme=dark] .section,html[data-theme=dark] .content-page,html[data-theme=dark] .project-page{background:transparent}html.theme-transitions-enabled,html.theme-transitions-enabled body,html.theme-transitions-enabled main,html.theme-transitions-enabled .hero,html.theme-transitions-enabled .section,html.theme-transitions-enabled .content-page,html.theme-transitions-enabled .project-page,html.theme-transitions-enabled .site-header,html.theme-transitions-enabled .site-footer,html.theme-transitions-enabled .portrait-placeholder,html.theme-transitions-enabled .project-card__cover,html.theme-transitions-enabled .project-gallery__media,html.theme-transitions-enabled .skills,html.theme-transitions-enabled .language-switch{transition:background-color .48s cubic-bezier(.22,1,.36,1),color .48s cubic-bezier(.22,1,.36,1),border-color .48s cubic-bezier(.22,1,.36,1)}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.25em}.interactive-link{--button-rotate-x: 0deg;--button-rotate-y: 0deg;--button-lift: 0px;--button-scale: 1;position:relative;display:inline-block;padding:9px 14px;border:1px solid var(--border-color-strong);border-radius:12px;background:transparent;color:var(--text-primary);text-decoration:none;isolation:isolate;box-shadow:0 1px 3px #2a2a2a0f;transform:perspective(500px) rotateX(var(--button-rotate-x)) rotateY(var(--button-rotate-y)) translateY(var(--button-lift)) scale(var(--button-scale));transition:transform .22s cubic-bezier(.2,.8,.2,1),border-color .22s ease,box-shadow .22s ease,color .22s ease}.interactive-link:before{position:absolute;z-index:-2;pointer-events:none;content:"";inset:-3px;border-radius:inherit;background:linear-gradient(90deg,#dfa85b,#eec583,#f6e1b5,#eec583,#dfa85b);background-size:600%;filter:blur(5px);opacity:0;animation:button-glow-flow 8s linear infinite;transition:opacity .22s ease,filter .22s ease}.interactive-link:after{position:absolute;z-index:-1;pointer-events:none;content:"";inset:1px;border-radius:10px;background:transparent;transition:background-color .22s ease}@keyframes button-glow-flow{0%{background-position:0% 50%}50%{background-position:400% 50%}to{background-position:0% 50%}}.interactive-link:visited,.interactive-link:hover,.interactive-link:active,.interactive-link:focus,.interactive-link:focus-visible{text-decoration:none}@media(hover:hover)and (pointer:fine){.interactive-link:hover{--button-lift: -2px;--button-scale: 1.035;border-color:#d9a052;color:var(--color-dark);box-shadow:0 0 8px #eec5838c,0 0 20px #e7b76547,0 8px 22px #d9a05224}.interactive-link:hover:before{opacity:1;filter:blur(9px)}.interactive-link:hover:after{background:linear-gradient(135deg,#e7b765,#eec583 48%,#f3d9a5)}}.interactive-link:focus-visible{outline:2px solid #d9a052;outline-offset:2px;border-color:#d9a052;color:var(--color-dark);box-shadow:0 0 8px #eec5838c,0 0 20px #e7b76547,0 8px 22px #d9a05224}.interactive-link:focus-visible:before{opacity:1;filter:blur(8px)}.interactive-link:focus-visible:after{background:linear-gradient(135deg,#e7b765,#eec583 48%,#f3d9a5)}.interactive-link:active{--button-lift: 0px;--button-scale: .96;box-shadow:0 0 5px #eec58357,inset 0 0 8px #d9a0521f}.interactive-link:active:before{opacity:.55;filter:blur(5px)}.interactive-link:active:after{background:#e3b46a}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.05;letter-spacing:-.035em}h1{margin-bottom:var(--space-md);font-size:clamp(3.25rem,8vw,8.5rem);font-weight:600}h2{font-size:clamp(2.25rem,5vw,4.5rem);font-weight:600}.container{width:min(calc(100% - 48px),var(--container-width));margin-inline:auto}.page-shell{position:relative;z-index:2;display:flex;min-height:100vh;flex-direction:column}@media(max-width:767px){.site-background__warm-shape{top:-110px;left:-650px;width:1500px;height:430px;filter:blur(150px);transform:rotate(-12deg);will-change:auto}html[data-theme=dark] .site-background__noise{opacity:.055}}@media(prefers-reduced-motion:reduce){.site-background__warm-shape{transform:rotate(-12deg);will-change:auto}}main{flex:1}.site-header{padding-block:var(--space-md);border-bottom:1px solid var(--color-border)}.header-inner{display:grid;align-items:center;grid-template-columns:1fr auto 1fr;gap:var(--space-lg)}.logo{justify-self:start}.header-inner nav{justify-self:center}.header-controls{display:flex;align-items:center;justify-self:end;gap:12px}.header-spacer{justify-self:end}.language-switch{position:relative;display:grid;width:96px;height:38px;padding:0;border:1px solid var(--border-color);border-radius:999px;grid-template-columns:1fr 1fr;align-items:center;justify-self:end;overflow:hidden;background:var(--surface-background);color:var(--text-primary);font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;box-shadow:0 3px 10px #2a2a2a14;transition:box-shadow .22s ease}.language-switch>span:not(.language-switch__thumb){position:relative;z-index:2}.language-switch[data-language=en]>span:first-child,.language-switch[data-language=ru]>span:nth-child(2){color:var(--text-inverse)}.language-switch__thumb{position:absolute;z-index:1;width:46px;height:32px;border-radius:999px;background:var(--text-primary);transform:translate(2px);transition:transform .32s cubic-bezier(.2,.8,.2,1);box-shadow:0 3px 8px #2a2a2a38}.language-switch[data-language=ru] .language-switch__thumb{transform:translate(46px)}.language-switch:focus-visible{outline:2px solid var(--text-primary);outline-offset:3px}@media(hover:hover)and (pointer:fine){.language-switch:hover{box-shadow:0 4px 14px #2a2a2a2e}}.logo{color:var(--text-primary);font-size:1.15rem;font-weight:750;letter-spacing:.16em;text-decoration:none}.nav-list,.social-links{display:flex;margin:0;padding:0;flex-wrap:wrap;gap:var(--space-md);list-style:none}.nav-list a{color:var(--text-primary);text-decoration:none}.nav-list a[aria-current=page]{color:var(--color-text);text-decoration:none}.nav-resume{font:inherit;cursor:pointer}.hero{position:relative;display:grid;padding-block:var(--space-xl);grid-template-areas:". controls" "visual content";grid-template-columns:minmax(0,.37fr) minmax(0,.63fr);grid-template-rows:auto auto;column-gap:clamp(2.5rem,7vw,8rem);row-gap:clamp(28px,4vw,52px)}.hero__top-controls{display:flex;width:100%;grid-area:controls;align-items:flex-start;justify-content:flex-start;gap:var(--space-md)}.hero__visual-column{display:grid;min-width:0;overflow:visible;grid-area:visual;align-self:center;place-items:center}.portrait-placeholder{display:grid;width:100%;height:100%;place-items:center;overflow:hidden;border-radius:var(--radius-md);background:var(--color-placeholder);color:var(--color-muted)}.portrait-placeholder img{width:100%;height:100%;object-fit:cover}.eyebrow{margin-bottom:var(--space-sm);color:var(--color-muted);font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.hero__subtitle{max-width:760px;margin-bottom:var(--space-md);font-size:clamp(1.45rem,3vw,2.75rem);line-height:1.2}.hero-name{font-weight:600;overflow:visible}.hero__content{min-width:0;overflow:visible;grid-area:content;align-self:center}.hero__content h1{max-width:none;padding-top:0;font-size:clamp(4rem,7vw,7rem)}.hero__description{max-width:650px;margin-bottom:var(--space-lg);color:var(--color-muted);font-size:1.1rem}.section{padding-block:var(--space-xl) var(--space-2xl)}.section-heading{margin-bottom:var(--space-lg)}.section-heading h2{margin-bottom:0}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg) var(--space-md);overflow:visible}.projects-grid-tilt-area{--tilt-safe-area: clamp(16px, 2vw, 20px);padding:var(--tilt-safe-area);margin:calc(var(--tilt-safe-area) * -1);overflow:visible}.works-bottom-actions{display:flex;width:100%;margin-top:clamp(32px,4vw,56px);align-items:center;justify-content:flex-end}.project-card__link{display:block;overflow:visible;text-decoration:none;transform:perspective(1000px) rotateX(var(--card-rotate-x, 0deg)) rotateY(var(--card-rotate-y, 0deg)) translateZ(var(--card-translate-z, 0)) scale(var(--card-scale, 1));transform-style:preserve-3d;transition:transform .18s cubic-bezier(.22,1,.36,1);will-change:transform}.project-card__link.is-tilting{transition-duration:60ms}.project-card{overflow:visible}.project-card__cover{position:relative;aspect-ratio:16 / 10;overflow:hidden;border-radius:var(--radius-md);background:var(--color-placeholder)}.project-card__media img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform .55s cubic-bezier(.22,1,.36,1)}.project-card__media--has-image:after{position:absolute;content:"";border-radius:inherit;background:radial-gradient(circle 180px at var(--card-glow-x, 50%) var(--card-glow-y, 50%),rgba(243,217,165,.28) 0%,rgba(238,197,131,.15) 35%,rgba(231,183,101,.06) 60%,transparent 75%);inset:0;opacity:var(--card-glow-opacity, 0);pointer-events:none;transition:opacity .22s ease}@media(hover:hover)and (pointer:fine){.project-card:hover .project-card__media img{transform:scale(1.07)}}@media(max-width:767px),(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.project-card__link,.project-card__link.is-tilting{transform:none;transition:none;will-change:auto}.project-card__media--has-image:after{display:none}}.project-card__content{display:flex;padding-top:var(--space-sm);justify-content:space-between;gap:var(--space-sm)}.project-card h3{margin-bottom:.25rem;font-size:clamp(1.4rem,2vw,2rem);font-weight:600}.project-card p,.project-card span,.project-meta{margin-bottom:0;color:var(--color-muted)}.content-page,.project-page{padding-block:var(--space-xl) var(--space-2xl)}.content-page>h1,.project-page__header{max-width:1050px}.content-page__body{display:grid;margin-top:var(--space-xl);grid-template-columns:1.3fr .7fr;gap:clamp(2.5rem,8vw,9rem)}.content-page__body p{max-width:760px;font-size:clamp(1.15rem,2vw,1.5rem)}.skills{padding:var(--space-lg);border-radius:var(--radius-md);background:var(--color-surface)}.skills h2{font-size:1.5rem}.skills ul{margin-bottom:0;padding-left:1.2rem}.back-link{display:inline-block;margin-bottom:var(--space-lg)}.project-back-action{padding:18px;margin:-18px;overflow:visible}.project-page__header{overflow:visible}.project-meta{font-size:1.15rem}.project-description{max-width:800px;margin-block:var(--space-lg) var(--space-xl);color:var(--color-muted);font-size:clamp(1.15rem,2vw,1.5rem)}.project-hero-placeholder{display:grid;min-height:420px;aspect-ratio:16 / 8;place-items:center;border-radius:var(--radius-md);background:var(--color-placeholder);color:var(--color-muted)}.project-gallery{display:grid;margin-top:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}.project-gallery--frames{display:block;width:100%;margin-top:clamp(64px,8vw,120px)}.project-gallery--frames>h2{margin-bottom:var(--space-lg)}.project-gallery__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(12px,1.5vw,24px);margin-top:24px}.project-gallery__item{min-width:0;margin:0}.project-gallery__item--full{grid-column:span 12}.project-gallery__item--half{grid-column:span 6}.project-gallery__item--third{grid-column:span 4}.project-gallery__media{position:relative;display:grid;width:100%;aspect-ratio:16 / 9;place-items:center;overflow:hidden;border:1px solid var(--border-color);border-radius:16px;background:var(--surface-background);color:var(--color-muted)}.project-gallery__item--native-ratio .project-gallery__media{border:0;aspect-ratio:var(--media-width) / var(--media-height)}.project-gallery__placeholder{position:absolute;display:grid;color:var(--text-secondary);font-size:14px;inset:0;place-items:center}.project-gallery__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1);transition:transform .55s cubic-bezier(.22,1,.36,1)}@media(hover:hover)and (pointer:fine){.project-gallery__item:hover .project-gallery__media img{transform:scale(1.06)}.project-gallery__item--native-ratio:hover .project-gallery__media img{transform:scale(1.015)}}.architecture-gallery{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,24px)}.architecture-gallery__item{min-width:0;margin:0}.architecture-gallery__item--full{grid-column:1 / -1}.architecture-gallery__item--half{grid-column:span 1}.architecture-gallery__media{position:relative;width:100%;aspect-ratio:var(--media-width) / var(--media-height);overflow:hidden;border-radius:16px;background:var(--surface-background)}.architecture-gallery__media img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;transform:scale(1);transition:transform .55s cubic-bezier(.22,1,.36,1)}@media(hover:hover)and (pointer:fine){.architecture-gallery__item:hover .architecture-gallery__media img{transform:scale(1.025)}}.cinematics-gallery{display:grid;width:100%;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(10px,1.4vw,20px)}.cinematics-gallery__item{min-width:0;margin:0}.cinematics-gallery__item--full{grid-column:span 6}.cinematics-gallery__item--half{grid-column:span 3}.cinematics-gallery__item--third{grid-column:span 2}.cinematics-gallery__media{position:relative;width:100%;overflow:hidden;border:1px solid var(--border-color);border-radius:16px;background:var(--surface-background)}.cinematics-gallery__item--landscape .cinematics-gallery__media{aspect-ratio:16 / 9}.cinematics-gallery__item--portrait .cinematics-gallery__media{aspect-ratio:9 / 16}.cinematics-gallery__video{display:block;width:100%;height:100%;border:0;outline:0;object-fit:cover;object-position:center;pointer-events:none}.fungals-project,.fungals-section,.fungals-media-grid{width:100%;overflow:visible}.fungals-section{margin-top:clamp(80px,10vw,150px)}.fungals-section__title{max-width:100%;margin-bottom:var(--space-sm);overflow-wrap:anywhere;font-size:clamp(34px,4vw,64px);line-height:1.05}.fungals-section__description{max-width:850px;margin-bottom:clamp(28px,4vw,52px);color:var(--color-muted);font-size:clamp(16px,1.5vw,21px);line-height:1.65}.fungals-media-grid{margin-top:clamp(12px,1.6vw,24px)}.fungals-media-grid--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,24px)}.fungals-media-grid--one{display:grid;grid-template-columns:1fr}.fungals-media{min-width:0;margin:0}.fungals-media__frame{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden;border-radius:16px;background:var(--color-placeholder)}.fungals-media__video{display:block;width:100%;height:100%;border:0;outline:0;object-fit:cover;object-position:center;pointer-events:none;transform:scale(1);transition:transform .45s cubic-bezier(.22,1,.36,1)}.fungals-media figcaption{margin-top:12px;color:var(--color-muted);line-height:1.5}.fungals-model-frame{display:grid;min-width:0;margin:0;overflow:hidden;border-radius:16px;background:var(--surface-background);place-items:center}.fungals-model-frame img{display:block;width:100%;height:auto;object-fit:contain}.fungals-project-cta{padding:clamp(28px,5vw,64px);margin-top:clamp(80px,10vw,150px);overflow:visible;border-radius:var(--radius-md);background:var(--surface-background)}.fungals-project-cta h2{margin-bottom:var(--space-sm);font-size:clamp(32px,4vw,56px);line-height:1.08}.fungals-project-cta p{max-width:720px;color:var(--color-muted);font-size:clamp(16px,1.4vw,20px);line-height:1.6}.fungals-project-links{display:flex;margin-top:var(--space-md);flex-wrap:wrap;gap:var(--space-sm);overflow:visible}@media(hover:hover)and (pointer:fine){.fungals-media:hover .fungals-media__video{transform:scale(1.015)}}@media(max-width:767px){.fungals-media-grid--two{grid-template-columns:1fr}.fungals-section__title{overflow-wrap:break-word}.cinematics-gallery{grid-template-columns:1fr}.cinematics-gallery__item--full,.cinematics-gallery__item--half,.cinematics-gallery__item--third{grid-column:1}}.gallery-placeholder{display:grid;min-height:420px;place-items:center;border-radius:var(--radius-md);background:var(--color-placeholder);color:var(--color-muted)}.gallery-placeholder--wide{min-height:560px;grid-column:1 / -1}.project-page__back{margin:0}.project-bottom-actions,.page-bottom-actions{display:flex;width:100%;margin-top:clamp(48px,6vw,88px);margin-bottom:clamp(48px,6vw,80px);align-items:center;justify-content:space-between;gap:24px}.page-bottom-actions{justify-content:flex-end}.project-bottom-actions{flex-wrap:wrap}.has-scroll-reveal .reveal-item{opacity:0;clip-path:inset(20% 0 0 0);transform:translateY(32px);transition:opacity .7s cubic-bezier(.22,1,.36,1) var(--reveal-delay, 0ms),transform .7s cubic-bezier(.22,1,.36,1) var(--reveal-delay, 0ms),clip-path .7s cubic-bezier(.22,1,.36,1) var(--reveal-delay, 0ms)}.has-scroll-reveal .reveal-item.is-revealed{opacity:1;clip-path:inset(0 0 0 0);transform:translateY(0)}.has-scroll-reveal .project-card.reveal-item,.has-scroll-reveal .project-card.reveal-item.is-revealed,.has-scroll-reveal .project-page__header.reveal-item,.has-scroll-reveal .project-page__header.reveal-item.is-revealed{clip-path:none}.has-scroll-reveal .fungals-project .reveal-item{clip-path:none;overflow:visible;transform:translateY(28px) scale(.99)}.has-scroll-reveal .fungals-project .reveal-item.is-revealed{clip-path:none;overflow:visible;transform:translateY(0) scale(1)}.site-footer{padding-block:var(--space-xl) var(--space-lg);background:var(--footer-background);color:var(--footer-text)}.footer-inner{display:grid;gap:var(--space-xl)}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(4,minmax(0,1fr));gap:var(--space-lg)}.site-footer p,.site-footer a{margin:0}.site-footer a{color:var(--footer-text)}.site-footer .interactive-link{border-color:#ffffff73;color:#fff;background:transparent}.site-footer .interactive-link:hover,.site-footer .interactive-link:focus-visible{border-color:#d9a052;color:var(--color-dark)}.site-footer .footer-heading{color:var(--footer-text);font-weight:700}.footer-label,.site-footer .footer-copyright,.footer-grid>div>p:not(.footer-heading){color:#f4f1eba6}.footer-contact{display:flex;align-items:flex-start;gap:.65rem}.footer-contact__link{display:flex;min-width:0;flex-direction:column;line-height:1.35;text-decoration:none;overflow-wrap:anywhere}@media(hover:hover)and (pointer:fine){.footer-contact__link:hover .footer-label{color:inherit}}.footer-contact__link:focus-visible .footer-label{color:inherit}.footer-copyright{padding-top:var(--space-md);border-top:1px solid rgba(244,241,235,.2);font-size:.9rem}@media(max-width:900px){.portrait-placeholder{width:100%;height:auto;aspect-ratio:4 / 5}.content-page__body{grid-template-columns:1fr}.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-gallery__item--third{grid-column:span 6}}@media(max-width:999px){.hero__content h1{max-width:none}}@media(max-width:767px){.hero{min-height:auto;grid-template-areas:"controls" "visual" "content";grid-template-columns:1fr;grid-template-rows:auto auto auto;row-gap:var(--space-lg)}.hero__top-controls{align-items:center}.hero__visual-column,.hero__content{width:100%}.container{width:min(calc(100% - 32px),var(--container-width))}}@media(prefers-reduced-motion:reduce){.fungals-media__video,.fungals-media:hover .fungals-media__video{transform:none;transition:none}.project-gallery__media img,.project-gallery__item:hover .project-gallery__media img,.architecture-gallery__media img,.architecture-gallery__item:hover .architecture-gallery__media img,.project-card__media img,.project-card:hover .project-card__media img{transform:scale(1);transition:none}.interactive-link{transition:none}.interactive-link:before{animation:none}.interactive-link:hover,.interactive-link:focus-visible,.interactive-link:active{transform:none}.language-switch__thumb{transition:none}.has-scroll-reveal .reveal-item,.has-scroll-reveal .reveal-item.is-revealed{opacity:1;clip-path:none;transform:none;transition:none}}@media(max-width:767px){.architecture-gallery{grid-template-columns:1fr}.architecture-gallery__item--full,.architecture-gallery__item--half{grid-column:1}}@media(max-width:640px){:root{--space-xl: 3.5rem;--space-2xl: 5rem}.container{width:min(calc(100% - 32px),var(--container-width))}.header-inner{align-items:flex-start;grid-template-columns:1fr;gap:var(--space-sm)}.header-inner nav{width:100%;justify-self:center}.header-spacer{display:none}.language-switch,.header-controls{justify-self:center}.nav-list{justify-content:center;gap:var(--space-sm)}.footer-grid,.project-grid,.project-gallery{grid-template-columns:1fr}.project-gallery__item--full,.project-gallery__item--half,.project-gallery__item--third{grid-column:span 12}.project-hero-placeholder,.gallery-placeholder,.gallery-placeholder--wide{min-height:280px}}html[data-theme=dark] .heading-gradient{color:#f8f7f2;background-image:linear-gradient(112deg,#fff,#fbfaf7 42%,#f7f4ec 70%,#f1e7d2 88%,#eec583 125%);background-repeat:no-repeat;background-size:100% 100%;background-position:center;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}html[data-theme=light] .heading-gradient{color:#242424;background:none;-webkit-text-fill-color:currentColor}@supports not ((background-clip: text) or (-webkit-background-clip: text)){html[data-theme=dark] .heading-gradient{color:#f8f7f2;background:none;-webkit-text-fill-color:currentColor}}@media(max-width:767px){main h1{overflow-wrap:break-word;font-size:clamp(2.35rem,11vw,3.25rem)}main .hero-name{font-size:clamp(3rem,14vw,4rem)}}
