*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.grid{display:grid}.hidden{display:none}.w-full{width:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.paused{animation-play-state:paused}:root{color-scheme:dark;--bg-primary: #0a0f0e;--bg-secondary: #101b16;--surface: #111d18;--surface-elevated: #18251f;--text-primary: #edf7f0;--text-secondary: #b6c9bd;--accent: #6ee7b7;--border: #2a4938;--badge-bg: #12372b;--badge-text: #a7f3d0;--action-bg: #10b981;--action-hover: #34d399;--action-text: #031c12;--focus: #6ee7b7;--ambient: rgba(16,185,129,.1);--header-bg: rgba(10,15,14,.88);--shadow: 0 12px 32px rgba(0,0,0,.15);--shadow-accent: 0 12px 28px rgba(16,185,129,.09);--error-bg: #361a1d;--error-text: #fecaca;--error-border: #9f4349}:root[data-theme=light]{color-scheme:light;--bg-primary: #f6f7f2;--bg-secondary: #edf2eb;--surface: #ffffff;--surface-elevated: #f8fbf7;--text-primary: #18281f;--text-secondary: #4b6356;--accent: #047857;--border: #d3e2d6;--badge-bg: #e5f4ec;--badge-text: #065f46;--focus: #047857;--ambient: rgba(16,185,129,.075);--header-bg: rgba(246,247,242,.92);--shadow: 0 10px 28px rgba(35,70,47,.055);--shadow-accent: 0 12px 28px rgba(16,120,83,.085);--error-bg: #fff1f2;--error-text: #9f1239;--error-border: #fda4af}html{scroll-behavior:smooth;scrollbar-gutter:stable}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(1000px 700px at 80% -10%,var(--ambient),transparent 65%),var(--bg-primary);color:var(--text-primary)}button,input,textarea{font:inherit}button,a,input[type=range]{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed}:where(a,button,input,textarea,select):focus-visible{outline:2px solid var(--focus);outline-offset:4px}::-moz-selection{background:var(--badge-bg);color:var(--accent)}::selection{background:var(--badge-bg);color:var(--accent)}.app{min-height:100vh}#root{position:relative;z-index:1;isolation:isolate}.shell{width:min(1150px,92%);margin-inline:auto;min-width:0}main,.grid>*{min-width:0}main:focus{outline:none}section[id],#main-content{scroll-margin-top:6rem}.page-section{border-top:1px solid var(--border);padding-block:4rem}.section-title{font-size:1.7rem;font-weight:650;letter-spacing:-.025em;color:var(--text-primary);margin-bottom:1.5rem}.secondary-text{color:var(--text-secondary);line-height:1.7}.body-copy{line-height:1.8;color:var(--text-primary)}.accent-text{color:var(--accent)}.surface-card{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:1rem;box-shadow:var(--shadow)}.action-primary,.action-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.65rem 1rem;border-radius:.75rem;border:1px solid transparent;font-size:.875rem;font-weight:600;line-height:1.4;cursor:pointer;text-align:center;transition:background-color .2s,border-color .2s,transform .2s}.action-primary{background:var(--action-bg);color:var(--action-text);border-color:var(--action-bg)}.action-primary:hover{background:var(--action-hover);border-color:var(--action-hover)}.action-secondary{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border)}.action-secondary:hover{background:var(--badge-bg);border-color:var(--accent)}.action-primary svg,.action-secondary svg{flex:0 0 auto}.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:.75rem;border:1px solid var(--border);background:var(--surface-elevated);color:var(--accent);transition:background-color .2s,border-color .2s,transform .2s}.icon-button:hover:not(:disabled){background:var(--badge-bg);border-color:var(--accent)}.icon-button:disabled{opacity:.45}.skip-link{position:fixed;top:.5rem;left:.5rem;z-index:100;background:var(--action-bg);color:var(--action-text);padding:.8rem;border-radius:.5rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.header-sentinel{height:1px;margin-bottom:-1px}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border);background:var(--header-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:box-shadow .2s}.site-header[data-scrolled=true]{box-shadow:var(--shadow)}.header-inner{display:flex;align-items:center;gap:.75rem;min-height:76px}.brand{display:flex;align-items:center;gap:.6rem;font-weight:650;font-size:.85rem;margin-right:auto;min-width:0}.brand>span:last-child{overflow-wrap:anywhere}.brand-mark{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:.7rem;background:var(--action-bg);color:var(--action-text);font-size:.75rem}.navigation-panel{display:none}.navigation-panel[data-open=true]{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:1rem;padding:1rem 4%;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow);max-height:calc(100dvh - 76px);overflow-y:auto}.navigation-panel nav{display:flex;flex-direction:column;gap:.25rem}.navigation-panel nav a{padding:.75rem .5rem;color:var(--text-secondary);font-size:.875rem;border-radius:.5rem}.navigation-panel nav a:hover{background:var(--badge-bg);color:var(--accent)}.header-controls{display:flex;align-items:center;gap:.5rem}.header-contact{display:none}.language-toggle{display:flex;align-items:center;gap:.1rem;border:1px solid var(--border);border-radius:.75rem;padding:0 .3rem;background:var(--surface-elevated)}.language-toggle span{color:var(--text-secondary);font-size:.75rem}.language-toggle button{min-height:42px;padding:0 .5rem;color:var(--text-secondary);font-size:.75rem;font-weight:600;border-radius:.5rem}.language-toggle button[aria-pressed=true]{color:var(--accent)}.music-control{position:relative;display:flex;align-items:center}.music-button[aria-pressed=true],.music-button[aria-pressed=true]:hover{background:var(--action-bg);border-color:var(--action-bg);color:var(--action-text)}.music-volume{display:none;align-items:center;gap:.5rem;position:absolute;right:0;top:100%;padding:.8rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;box-shadow:var(--shadow);color:var(--accent)}.music-volume input{width:90px;accent-color:var(--accent)}.music-play-hint{position:absolute;left:0;top:calc(100% + 8px);z-index:1;display:grid;place-items:center;width:44px;min-height:44px;padding:.4rem;border:1px solid #5eead4;border-radius:.65rem;background:#111d18;color:#f0fdf4;box-shadow:0 0 12px #5eead424;font-size:.65rem;font-weight:650;line-height:1;letter-spacing:.04em;animation:music-play-hint-float 2.8s ease-in-out infinite}.music-play-hint:before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}.music-play-hint:after{content:"";position:absolute;left:50%;top:-5px;width:8px;height:8px;background:#111d18;border-left:1px solid #5eead4;border-top:1px solid #5eead4;transform:translate(-50%) rotate(45deg);pointer-events:none}.music-play-hint:hover{background:#18251f}.music-play-hint:focus-visible{outline:2px solid #5eead4;outline-offset:3px}@keyframes music-play-hint-float{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.hero{position:relative;isolation:isolate;padding-block:1rem 3rem}.hero-particles{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.hero-particles>div{width:100%;height:100%}.hero-particles canvas{display:block;pointer-events:none}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;align-items:center;padding-block:3rem 2rem}.hero-copy{min-width:0;animation:hero-enter .5s ease both}.eyebrow{display:inline-block;font-size:.65rem;letter-spacing:.12em;line-height:1.7;color:var(--accent);background:var(--badge-bg);border:1px solid var(--border);border-radius:2rem;padding:.4rem .8rem;margin-bottom:1rem}.hero h1{font-size:clamp(2.15rem,4vw + 1rem,4rem);font-weight:700;line-height:1.08;letter-spacing:-.045em;overflow-wrap:break-word}.hero-description{margin-top:1rem;max-width:60ch;color:var(--text-secondary);line-height:1.75}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.hero-portrait{display:grid;justify-items:center;min-width:0;animation:hero-enter .5s .07s ease both}.portrait-frame{width:min(360px,100%);padding:6px;background:var(--badge-bg);border:1px solid var(--border);border-radius:1.75rem;box-shadow:var(--shadow-accent);transition:transform .3s}.portrait{display:block;width:100%;height:auto;aspect-ratio:3 / 4;-o-object-fit:cover;object-fit:cover;border-radius:1.35rem;background:var(--surface)}.availability{display:flex;align-items:flex-start;gap:.5rem;max-width:38ch;margin-top:1rem;color:var(--text-secondary);font-size:.875rem;line-height:1.6}.availability span{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:.5rem}.hero-links{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.cv-button{padding:1rem 2rem;border-radius:2rem;text-transform:uppercase;letter-spacing:.025em;font-size:1rem}.social-links{display:flex;gap:1rem}.social-link{display:grid;place-items:center;width:50px;height:50px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--accent);transition:transform .2s,border-color .2s}.technology-strip{--technology-gap: 1.5rem;--technology-logo-width: 154px;--technology-logo-height: 98px;display:flex;flex-direction:column;justify-content:center;min-height:180px;min-width:0;margin-top:3rem;padding:1.25rem clamp(1rem,4vw,2rem);overflow:hidden;background:var(--bg-secondary);border:1px solid var(--border);border-radius:1rem}.technology-strip-header{margin-bottom:1rem;color:var(--text-secondary);font-size:.75rem;line-height:1.5;text-transform:uppercase;letter-spacing:.12em}.technology-marquee{width:100%;min-width:0;overflow:hidden}.technology-marquee:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:.5rem}.technology-marquee-track{display:flex;width:-moz-max-content;width:max-content;animation:technology-marquee 40s linear infinite;will-change:transform}.technology-marquee-group{display:flex;align-items:center;gap:var(--technology-gap);flex-shrink:0;margin:0;padding:0 var(--technology-gap) 0 0;list-style:none}.technology-marquee-group li{flex:0 0 var(--technology-logo-width)}.technology-strip img{display:block;width:var(--technology-logo-width);height:var(--technology-logo-height);-o-object-fit:contain;object-fit:contain}.technology-marquee:focus-within .technology-marquee-track{animation-play-state:paused}@keyframes technology-marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.about-practices{display:grid;gap:.85rem;color:var(--text-secondary);line-height:1.6}.service-icon{display:grid;place-items:center;width:44px;height:44px;background:var(--badge-bg);border:1px solid var(--border);color:var(--accent);border-radius:.75rem}.service-title{font-weight:650;margin-top:1rem}.contact-form{display:grid;gap:1rem}.contact-form label{display:block;font-size:.8rem;color:var(--text-secondary);margin-bottom:.4rem}.contact-form input,.contact-form textarea{width:100%;min-width:0;border:1px solid var(--border);border-radius:.75rem;background:var(--surface-elevated);color:var(--text-primary);padding:.8rem 1rem}.contact-form textarea{resize:vertical;min-height:120px}.contact-form :is(input,textarea)::-moz-placeholder{color:var(--text-secondary);opacity:1}.contact-form :is(input,textarea)::placeholder{color:var(--text-secondary);opacity:1}.contact-form [aria-invalid=true]{border-color:var(--error-border)}.contact-status{padding:.8rem 1rem;background:var(--badge-bg);border:1px solid var(--border);border-radius:.75rem;color:var(--badge-text);font-size:.875rem}.contact-status[data-error=true]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.contact-heading{font-size:1.25rem;font-weight:650;margin-bottom:1.5rem}.contact-links{display:grid;gap:1rem}.contact-links li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;color:var(--text-secondary)}.contact-links a{min-width:0;overflow-wrap:anywhere;color:var(--accent);text-decoration:underline;text-underline-offset:3px}.site-footer{border-top:1px solid var(--border);padding-block:1.5rem;color:var(--text-secondary);font-size:.875rem}.demo-dialog{width:min(900px,94%);max-height:90dvh;padding:0;border:1px solid var(--border);border-radius:1rem;background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow)}.demo-dialog::backdrop{background:#000000a6;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.demo-dialog-inner{padding:1rem}.demo-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.demo-dialog-header h3{font-weight:650;overflow-wrap:anywhere}.demo-frame{width:100%;aspect-ratio:16 / 9;background:#000;border-radius:.75rem;overflow:hidden}.demo-frame iframe{display:block;border:none;width:100%;height:100%}.demo-dialog-footer{display:flex;justify-content:flex-end;margin-top:1rem}.preloader{position:fixed;inset:0;z-index:70;display:grid;place-items:center;background:var(--bg-primary);color:var(--accent);pointer-events:none;animation:preload-exit .45s ease forwards}.preloader span{font-weight:700;font-size:1.5rem;padding:1.5rem;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%}@keyframes preload-exit{0%,55%{opacity:1}to{opacity:0}}@keyframes hero-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (min-width: 640px){.header-contact{display:inline-flex}.hero-links{flex-direction:row}.music-control:hover .music-volume,.music-control:focus-within .music-volume{display:flex}}@media (max-width: 639px){.music-volume{display:flex;position:static;gap:.25rem;margin-left:.35rem;padding:.35rem;background:transparent;border:none;box-shadow:none}.music-volume input{width:60px}}@media (min-width: 768px){.hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}.technology-strip{--technology-logo-width: 165px;--technology-logo-height: 105px;--technology-gap: 2rem;min-height:200px;padding-block:1.5rem}}@media (min-width: 1024px){.technology-strip{--technology-logo-width: 176px;--technology-logo-height: 112px;min-height:220px}}@media (min-width: 640px) and (max-width: 1279px){.music-volume{display:flex;position:static;margin-left:.5rem;padding:.5rem;background:transparent;border:none;box-shadow:none}}@media (max-width: 1279px){.header-controls:has(.music-control[data-play-hint=true]){padding-bottom:60px}}@media (min-width: 1280px){.menu-toggle{display:none}.navigation-panel,.navigation-panel[data-open=true]{display:flex;position:static;flex-direction:row;align-items:center;padding:0;gap:1rem;border:0;background:transparent;box-shadow:none;overflow:visible}.navigation-panel nav{flex-direction:row;gap:.2rem}.navigation-panel nav a{padding:.5rem}.header-controls{gap:.35rem}.music-control[data-play-hint=true] .music-volume{top:calc(100% + 8px);right:calc(100% + 12px)}.music-control[data-play-hint=true] .music-volume:before{content:"";position:absolute;top:-8px;bottom:0;right:-12px;width:12px}}@media (hover: hover) and (pointer: fine){.action-primary:hover,.action-secondary:hover{transform:translateY(-1px)}.portrait-frame:hover{transform:translateY(-3px)}.social-link:hover{transform:translateY(-2px);border-color:var(--accent)}.technology-marquee:hover .technology-marquee-track{animation-play-state:paused}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.hero-copy,.hero-portrait,.portrait-frame,.social-link,.technology-strip img,.action-primary,.action-secondary{transform:none!important}.technology-marquee-track{animation:none!important;transform:none;width:100%;will-change:auto}.technology-marquee-group{width:100%;flex-wrap:wrap;justify-content:center;padding:0}.technology-marquee-group[aria-hidden=true]{display:none}.technology-marquee-group li{flex-basis:min(var(--technology-logo-width),100%)}.technology-strip img{max-width:100%}.music-play-hint{animation:none!important;transform:none}}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@font-face{font-family:swiper-icons;src:url(data:application/font-woff;charset=utf-8;base64,\ d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA);font-weight:400;font-style:normal}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.projects-carousel{min-width:0}.projects-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.projects-heading .section-title{margin-bottom:.5rem}.projects-heading .secondary-text{max-width:60ch;font-size:.875rem}.carousel-arrows{display:flex;gap:.5rem}.projects-carousel .swiper{padding:8px 4px 16px;margin:-8px -4px -16px;touch-action:pan-y pinch-zoom}.projects-carousel .swiper-wrapper{align-items:stretch}.projects-carousel .swiper-slide{display:flex;height:auto;min-width:0}.project-reveal{display:flex;width:100%;min-width:0}.projects-carousel[data-entered=true] .project-reveal{animation:project-enter .4s ease both;animation-delay:var(--reveal-delay, 0ms)}.project-card{display:flex;flex-direction:column;width:100%;min-width:0;border:1px solid var(--border);border-radius:1rem;overflow:hidden;background:var(--surface);box-shadow:var(--shadow);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.project-card:focus-within{border-color:var(--accent)}.project-card-image{position:relative;aspect-ratio:16 / 9;flex-shrink:0;overflow:hidden;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.project-card-image img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;transition:transform .35s ease}.project-image-fallback{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;height:100%;padding:1.5rem;text-align:center;background:radial-gradient(ellipse at top right,var(--ambient),transparent 70%);color:var(--accent)}.project-image-fallback span{font-size:1.25rem;font-weight:600}.project-image-fallback small{font-size:.65rem;letter-spacing:.1em;color:var(--text-secondary)}.project-card-body{display:flex;flex:1;flex-direction:column;min-width:0;padding:1.25rem}.featured-badge{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;background:var(--badge-bg);color:var(--badge-text);border:1px solid var(--border);border-radius:2rem;font-size:.7rem;font-weight:600;padding:.3rem .65rem;margin-bottom:.9rem}.projects-carousel[data-entered=true] .featured-badge{animation:badge-enter .3s ease both;animation-delay:var(--reveal-delay, 0ms)}.project-card h3{font-size:1.2rem;font-weight:650;letter-spacing:-.02em;line-height:1.4;overflow-wrap:anywhere}.project-role{margin-top:.35rem;font-size:.8rem;font-weight:600;color:var(--accent)}.project-description{margin-top:.8rem;color:var(--text-secondary);font-size:.875rem;line-height:1.65}.project-extra{margin-top:.6rem}.project-meta{margin-top:.75rem;font-size:.7rem;line-height:1.6;color:var(--text-secondary)}.project-stack{margin-top:1.2rem}.project-stack>p{font-size:.65rem;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:.6rem}.project-stack ul{display:flex;flex-wrap:wrap;gap:.4rem}.project-stack li{max-width:100%;overflow-wrap:anywhere;border:1px solid var(--border);border-radius:.5rem;background:var(--badge-bg);color:var(--badge-text);padding:.25rem .6rem;font-size:.7rem;font-weight:500;line-height:1.5;transition:border-color .2s,background-color .2s}.project-card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto;padding-top:1.5rem}.project-card-actions .action-primary{min-height:44px;font-size:.8rem;padding-inline:.85rem}.carousel-pagination{display:flex;justify-content:center;align-items:center;margin-top:1.25rem}.carousel-pagination button{display:grid;place-items:center;width:44px;height:44px;border-radius:.6rem}.carousel-pagination button span{width:20px;height:4px;background:var(--border);border-radius:2rem;transition:background-color .2s,width .2s}.carousel-pagination button[aria-current=true] span{width:30px;background:var(--accent)}@keyframes project-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes badge-enter{0%{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:none}}@media (hover: hover) and (pointer: fine){.project-card:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:var(--shadow-accent)}.project-card:hover .project-card-image img{transform:scale(1.02)}.project-stack li:hover{border-color:var(--accent);background:var(--surface-elevated)}}@media (prefers-reduced-motion: reduce){.project-reveal,.featured-badge{animation:none!important;opacity:1!important;transform:none!important}.project-card:hover,.project-card:hover .project-card-image img{transform:none}.projects-carousel .swiper-wrapper{transition-duration:0ms!important}}
