@font-face{font-family:cantarell;src:url(../media/Cantarell_Regular-s.p.d1894cf9.ttf)format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:cantarell;src:url(../media/Cantarell_Italic-s.p.62b4c4dc.ttf)format("truetype");font-display:swap;font-weight:400;font-style:italic}@font-face{font-family:cantarell;src:url(../media/Cantarell_Bold-s.p.f4939fa3.ttf)format("truetype");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:cantarell;src:url(../media/Cantarell_BoldItalic-s.p.d6dfec2c.ttf)format("truetype");font-display:swap;font-weight:700;font-style:italic}@font-face{font-family:cantarell Fallback;src:local(Arial);ascent-override:105.07%;descent-override:30.96%;line-gap-override:0.0%;size-adjust:104.09%}.cantarell_d639965-module__FQRJGW__className{font-family:cantarell,cantarell Fallback}.cantarell_d639965-module__FQRJGW__variable{--font-modern:"cantarell","cantarell Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-modern);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.static{position:static}.hidden{display:none}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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,)}}:root{--bg-gradient-onyx:linear-gradient(to bottom right,#3f3f40 3%,#303030 97%);--bg-gradient-jet:linear-gradient(to bottom right,#2d2d2e40 0%,#1b1b1d00 100%),#202022;--bg-gradient-yellow-1:linear-gradient(to bottom right,#ffda6b 0%,#ffc06100 50%);--bg-gradient-yellow-2:linear-gradient(135deg,#ffda6b40 0%,#ffbb5c00 59.86%),#202022;--border-gradient-onyx:linear-gradient(to bottom right,#404040 0%,#40404000 50%);--text-gradient-yellow:linear-gradient(to right,#ffdb70,#ffbb5c);--jet:#383838;--onyx:#2b2b2c;--eerie-black-1:#202022;--eerie-black-2:#1e1e1f;--smoky-black:#121212;--white-1:#fff;--white-2:#fafafa;--orange-yellow-crayola:#ffdb70;--vegas-gold:#ffdb70;--light-gray:#d6d6d6;--light-gray-70:#d6d6d6b3;--bittersweet-shimmer:#b84c4c;--text-primary:var(--white-1);--text-secondary:var(--light-gray);--text-muted:var(--light-gray-70);--text-accent:var(--orange-yellow-crayola);--accent-rgb:255,209,112;--icon-primary:var(--white-2);--icon-muted:var(--white-2);--icon-soft-bg:#ffdb7024;--ff-poppins:var(--font-modern),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--fs-1:2rem;--fs-2:1.6rem;--fs-3:1.2rem;--fs-4:1.06rem;--fs-5:1rem;--fs-6:.94rem;--fs-7:.8rem;--fs-8:.75rem;--type-hero:clamp(1.88rem,1.76rem + .34vw,2.08rem);--type-display:clamp(2.05rem,1.9rem + .42vw,2.3rem);--type-section:clamp(1.3rem,1.23rem + .2vw,1.45rem);--type-card-title:clamp(1.08rem,1.04rem + .1vw,1.16rem);--type-body:1rem;--type-body-sm:.94rem;--type-caption:.8rem;--type-micro:.75rem;--lh-tight:1.3;--lh-body:1.62;--lh-loose:1.7;--fw-300:300;--fw-400:400;--fw-500:500;--fw-600:600;--shadow-1:0 8px 20px #0003;--shadow-2:0 14px 30px #0000003d;--shadow-3:0 18px 34px #00000042;--shadow-4:0 24px 48px #0000002e;--shadow-5:0 30px 68px #0000004d;--card-soft-bg:#252527d1;--card-soft-border:#424242;--transition-1:.18s ease;--transition-2:.5s ease-in-out;--content-max-width:980px;--radius-panel:20px;--radius-card:16px;--radius-control:12px;--radius-pill:999px}*{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--ff-poppins)}body{font-family:var(--ff-poppins);font-size:var(--type-body);line-height:var(--lh-body);letter-spacing:.002em;color:var(--white-2);transition:background-color var(--transition-1),color var(--transition-1);background:#0d0e12}.skip-link{border-radius:var(--radius-pill);border:1px solid rgba(var(--accent-rgb),.45);background:var(--card-soft-bg);position:fixed;top:10px;left:50%;transform:translate(-50%,-220%)}@supports (color:color-mix(in lab, red, red)){.skip-link{background:color-mix(in oklab,var(--card-soft-bg)92%,transparent)}}.skip-link{color:var(--text-primary);font-size:var(--type-caption);font-weight:var(--fw-500);z-index:10000;transition:transform var(--transition-1),border-color var(--transition-1),background var(--transition-1);padding:8px 12px;line-height:1.2}.skip-link:focus-visible{border-color:var(--orange-yellow-crayola);background:var(--card-soft-bg);transform:translate(-50%)}@supports (color:color-mix(in lab, red, red)){.skip-link:focus-visible{background:color-mix(in oklab,var(--card-soft-bg)84%,rgba(var(--accent-rgb),.14))}}body.light-mode{color:#172230;background:#faf8f5}:focus-visible{outline:2px solid var(--orange-yellow-crayola);outline-offset:2px}::selection{background:var(--orange-yellow-crayola);color:var(--smoky-black)}body.light-mode ::selection{color:var(--white-1)}.shell{background:radial-gradient(980px 520px at 82% -12%,rgba(var(--accent-rgb),.07),transparent 62%),radial-gradient(900px 460px at -6% 102%,rgba(var(--accent-rgb),.05),transparent 68%),var(--smoky-black);min-height:100svh;color:var(--white-2);isolation:isolate;padding:24px;display:block;position:relative}@keyframes introCaretBlink{0%,49%{opacity:1}50%,to{opacity:0}}.shell.light-mode{--bg-gradient-onyx:linear-gradient(to bottom right,#fefdfb 3%,#f1f5f9 97%);--bg-gradient-jet:linear-gradient(to bottom right,#fefdfbfa 0%,#f1f5f9f5 100%);--border-gradient-onyx:linear-gradient(to bottom right,#c0cbd3 0%,#c0cbd300 50%);--smoky-black:#faf8f5;--white-1:#172230;--white-2:#202c3c;--orange-yellow-crayola:#0f766e;--vegas-gold:#0f766e;--accent-rgb:15,118,110;--light-gray:#515c6c;--light-gray-70:#515c6cc2;--text-primary:#172230;--text-secondary:#515c6c;--text-muted:#515c6cbd;--card-soft-bg:#fffffff0;--card-soft-border:#c2cdd6;--icon-primary:#0a5f58;--icon-muted:#515c6c;--icon-soft-bg:#0f766e1c;--shadow-1:0 8px 18px #2d404d17;--shadow-2:0 14px 28px #2d404d1f;--shadow-3:0 18px 34px #2d404d21}.left-panel{z-index:2;background:var(--bg-gradient-jet);border:1px solid var(--card-soft-border);width:300px;height:calc(100svh - 40px);position:fixed;top:20px;left:20px}@supports (color:color-mix(in lab, red, red)){.left-panel{border:1px solid color-mix(in oklab,var(--card-soft-border)90%,var(--orange-yellow-crayola)10%)}}.left-panel{border-radius:var(--radius-panel);box-shadow:var(--shadow-1);scrollbar-width:thin;scrollbar-color:#474747 transparent;flex-direction:column;padding:24px 20px 20px;display:flex;overflow-y:auto}.shell.light-mode .left-panel{border-color:var(--card-soft-border)}@supports (color:color-mix(in lab, red, red)){.shell.light-mode .left-panel{border-color:color-mix(in oklab,var(--card-soft-border)92%,var(--orange-yellow-crayola)8%)}}.shell.light-mode .left-panel{scrollbar-color:#acb6c3 transparent}.profile-toggle{display:none}.avatar-wrap{width:170px;margin:8px auto 16px;position:relative}.avatar{border-radius:26px;height:170px;position:relative;overflow:hidden}.avatar-image{object-fit:cover;object-position:center 24%;transform:scale(1.08)}.status-dot{z-index:2;background:#42d93f;border-radius:50%;width:14px;height:14px;position:absolute;bottom:6px;right:6px;box-shadow:0 0 0 2px #07070a99}.status-dot:before,.status-dot:after{content:"";pointer-events:none;border:1px solid #42d93f8c;border-radius:50%;animation:2s ease-out infinite statusRadarPulse;position:absolute;inset:-2px}.status-dot:after{animation-delay:1s}@keyframes statusRadarPulse{0%{opacity:.65;transform:scale(1)}70%{opacity:0;transform:scale(2.25)}to{opacity:0;transform:scale(2.25)}}.sidebar-name{text-align:center;font-size:var(--type-hero);font-weight:var(--fw-600);color:var(--text-primary);margin-bottom:8px;line-height:1.2}.role{width:fit-content;font-size:var(--type-body-sm);background:var(--card-soft-bg);border:1px solid var(--card-soft-border);color:var(--text-secondary);border-radius:12px;align-items:center;gap:8px;margin:0 auto 2px;padding:8px 14px;display:inline-flex}.role-text-typing{white-space:nowrap;line-height:1.2;display:inline-block;position:relative}.role-text-typing:after{content:"Full-Stack Developer";visibility:hidden;white-space:nowrap;display:block}.role-text-live{white-space:nowrap;align-items:center;max-width:100%;display:inline-flex;position:absolute;inset:0 auto 0 0;overflow:hidden}.role-text-caret{opacity:.95;background:currentColor;border-radius:999px;width:1.5px;height:.95em;margin-left:2px;animation:.85s step-end infinite introCaretBlink;transform:translateY(1px)}.role-icon{background-color:var(--text-primary);flex-shrink:0;width:17px;height:17px;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.divider{background:#404040;width:100%;height:1px;margin:0}.shell.light-mode .divider{background:#ccd5e0}.profile-extra{flex-direction:column;flex:1;gap:12px;margin-top:12px;display:flex}.meta-list{gap:12px;margin-top:0;display:grid}.social-row{border-top:1px solid #3b3b3b;justify-content:center;align-items:center;gap:12px;margin-top:auto;padding-top:12px;display:flex}.shell.light-mode .social-row{border-top-color:#ccd5e0}.social-row a{width:36px;height:36px;color:var(--light-gray);font-size:var(--type-caption);font-weight:var(--fw-600);transition:var(--transition-1);background:#2a2a2c8c;border:1px solid #404040;border-radius:12px;place-items:center;display:grid}.shell.light-mode .social-row a{color:var(--text-secondary);background:#f8fafce6;border-color:#ccd5e0}.social-row a:hover{color:var(--orange-yellow-crayola);border-color:var(--orange-yellow-crayola);transform:translateY(-1px)}.social-icon{background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.meta-item{min-height:44px;transition:var(--transition-1);background:#2a2a2c80;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:9px 10px;display:flex}.shell.light-mode .meta-item{background:#ffffffd9}.meta-item:hover,.meta-item:focus-within{border-color:rgba(var(--accent-rgb),.25);background:#32323494}.shell.light-mode .meta-item:hover,.shell.light-mode .meta-item:focus-within{border-color:rgba(var(--accent-rgb),.35);background:#f5f7f9f5}.meta-icons{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.meta-icon-slash{color:var(--light-gray-70);font-size:var(--type-micro);line-height:1}.meta-icon{background-color:var(--icon-muted);width:16px;height:16px;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.meta-label{text-transform:uppercase;color:var(--light-gray-70);font-size:var(--type-micro);letter-spacing:.08em}.meta-value{font-size:var(--type-body-sm);color:var(--text-primary);line-height:var(--lh-body);overflow-wrap:anywhere}.meta-link{transition:var(--transition-1);align-items:center;text-decoration:none;display:inline-flex}.meta-link:hover{color:var(--orange-yellow-crayola)}.right-panel{z-index:2;border-radius:var(--radius-panel);border:1px solid var(--card-soft-border);width:calc(100% - 320px);min-width:auto;margin-left:320px;position:relative}@supports (color:color-mix(in lab, red, red)){.right-panel{border:1px solid color-mix(in oklab,var(--card-soft-border)90%,var(--orange-yellow-crayola)10%)}}.right-panel{background:var(--bg-gradient-jet);box-shadow:var(--shadow-2);padding:28px 36px 32px;overflow:visible}.shell.light-mode .right-panel{border-color:var(--card-soft-border)}@supports (color:color-mix(in lab, red, red)){.shell.light-mode .right-panel{border-color:color-mix(in oklab,var(--card-soft-border)92%,var(--orange-yellow-crayola)8%)}}.theme-toggle{z-index:3;background:var(--card-soft-bg);color:var(--orange-yellow-crayola);width:38px;height:38px;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.2);cursor:pointer;transition:var(--transition-1);border:1px solid #ffffff57;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:14px;left:14px;transform:none}.shell.light-mode .theme-toggle{color:#1f283d;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.22);border-color:#a6b5c9}.theme-toggle-glyph{background-color:currentColor;width:18px;height:18px;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.theme-toggle:hover{color:var(--text-primary);border-color:var(--orange-yellow-crayola);background:rgba(var(--accent-rgb),.16);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.35)}.content{max-width:var(--content-max-width);margin-inline:auto;padding-top:84px;padding-bottom:16px}.top-tabs{border:1px solid rgba(var(--accent-rgb),.28);border-radius:var(--radius-control);background:var(--card-soft-bg);width:auto;min-height:46px;display:flex;position:absolute;top:12px;right:16px}@supports (color:color-mix(in lab, red, red)){.top-tabs{background:color-mix(in oklab,var(--card-soft-bg)92%,transparent)}}.top-tabs{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-1);align-items:center;gap:5px;margin:0;padding:5px}.shell.light-mode .top-tabs{border-color:rgba(var(--accent-rgb),.24);background:var(--card-soft-bg)}@supports (color:color-mix(in lab, red, red)){.shell.light-mode .top-tabs{background:color-mix(in oklab,var(--card-soft-bg)95%,transparent)}}.mobile-tabs{display:none}.tab-btn{color:var(--text-secondary);border-radius:var(--radius-control);font-size:var(--type-body-sm);font-weight:var(--fw-500);cursor:pointer;transition:var(--transition-1);white-space:nowrap;background:0 0;border:none;flex:none;padding:9px 14px;position:relative}.tab-btn:after{content:none}.tab-btn:hover{background:rgba(var(--accent-rgb),.08);color:var(--text-primary)}.tab-btn.active{color:var(--text-primary);background:rgba(var(--accent-rgb),.14);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.34);border:none}.tab-btn:focus-visible,.mobile-tab-btn:focus-visible,.portfolio-filter-btn:focus-visible,.download-cv-btn:focus-visible,.form-submit-btn:focus-visible,.contact-quick-cta:focus-visible,.copy-btn:focus-visible,.portfolio-media-link:focus-visible,.tech-logo-link:focus-visible,.meta-link:focus-visible,.contact-inline-link:focus-visible{outline:2px solid rgba(var(--accent-rgb),.72);outline-offset:2px}.section-title{color:var(--text-primary);font-size:var(--type-display);line-height:var(--lh-tight);font-weight:var(--fw-600);letter-spacing:.01em;margin-bottom:10px}.title-line{background:var(--orange-yellow-crayola);border-radius:8px;width:68px;height:4px;margin-bottom:30px}.lead{color:var(--text-secondary);font-size:var(--type-body);line-height:var(--lh-loose);text-align:left;text-wrap:pretty;opacity:0;max-width:72ch;margin-bottom:20px;animation:.24s ease-out forwards sectionPopIn;transform:translateY(5px)scale(.995)}.lead:nth-of-type(2){animation-delay:40ms}.section-subtitle{color:var(--text-primary);font-size:var(--type-section);line-height:var(--lh-tight);font-weight:var(--fw-600);opacity:0;margin-top:34px;margin-bottom:16px;animation:.24s ease-out 60ms forwards sectionPopIn;transform:translateY(5px)scale(.995)}.section-subtitle-with-icon{align-items:center;gap:9px;display:inline-flex}.section-subtitle-icon{width:22px;height:22px;color:var(--orange-yellow-crayola);flex-shrink:0;place-items:center;display:inline-grid}.section-subtitle-icon svg{width:100%;height:100%;display:block}.section-subtitle-icon-glyph{background:currentColor;width:100%;height:100%;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.tech-marquee{opacity:0;margin-bottom:12px;animation:.24s ease-out 80ms forwards sectionPopIn;transform:translateY(5px)scale(.995)}.tech-marquee-window{border-radius:var(--radius-card);scroll-snap-type:x proximity;touch-action:pan-x;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);scrollbar-width:none;cursor:grab;-webkit-user-select:none;user-select:none;background:#94a3b81f;border:1px solid #94a3b86b;padding:14px 0;overflow:auto hidden;box-shadow:inset 0 1px #ffffff29,inset 0 -1px #0f172a38;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 10% 90%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 10% 90%,#0000 100%)}.tech-marquee-window::-webkit-scrollbar{display:none}.tech-marquee-window:focus-visible{outline:2px solid rgba(var(--accent-rgb),.55);outline-offset:2px}.tech-marquee-window.is-dragging{cursor:grabbing}.tech-marquee-track{--logo-gap:16px;align-items:stretch;gap:var(--logo-gap);will-change:transform;backface-visibility:hidden;width:max-content;animation:48s linear infinite techMarqueeMoveRight;display:flex;transform:translateZ(0)}.tech-marquee-group{align-items:stretch;gap:var(--logo-gap);display:flex}.tech-marquee-group+.tech-marquee-group{margin-left:6px;padding-left:20px;position:relative}.tech-marquee-group+.tech-marquee-group:before{content:"";background:linear-gradient(180deg,rgba(var(--accent-rgb),.12)0%,rgba(var(--accent-rgb),.44)52%,rgba(var(--accent-rgb),.12)100%);border-radius:999px;width:2px;position:absolute;top:0;bottom:0;left:6px}.shell.light-mode .tech-marquee-group+.tech-marquee-group:before{background:linear-gradient(180deg,rgba(var(--accent-rgb),.16)0%,rgba(var(--accent-rgb),.48)52%,rgba(var(--accent-rgb),.16)100%)}.tech-group-block{align-content:start;gap:8px;padding-inline:4px;display:grid;position:relative}.tech-group-block+.tech-group-block{margin-left:6px;padding-left:20px}.tech-group-block+.tech-group-block:before{content:"";background:linear-gradient(180deg,rgba(var(--accent-rgb),.12)0%,rgba(var(--accent-rgb),.44)52%,rgba(var(--accent-rgb),.12)100%);border-radius:999px;width:2px;position:absolute;top:0;bottom:0;left:6px}.shell.light-mode .tech-group-block+.tech-group-block:before{background:linear-gradient(180deg,rgba(var(--accent-rgb),.16)0%,rgba(var(--accent-rgb),.48)52%,rgba(var(--accent-rgb),.16)100%)}.tech-group-title{color:var(--text-muted);font-size:var(--type-micro);font-weight:var(--fw-500);letter-spacing:.08em;text-transform:uppercase;text-align:center;width:100%;margin:0}.tech-group-logos{perspective:560px;align-items:center;gap:4px;display:flex}.tech-marquee:hover .tech-marquee-track,.tech-marquee-window.is-dragging .tech-marquee-track,.tech-marquee:hover .tech-logo-card,.tech-marquee-window.is-dragging .tech-logo-card{animation-play-state:paused}.tech-logo-card{min-width:92px;box-shadow:none;scroll-snap-align:start;transition:var(--transition-1);will-change:transform;transform-style:preserve-3d;background:0 0;border:none;border-radius:0;justify-items:center;gap:0;padding:6px 5px;animation:8.4s ease-in-out infinite techLogoOrbit;display:grid;position:relative}.tech-logo-card:after{content:"";background:radial-gradient(circle,rgba(var(--accent-rgb),.2)0%,rgba(var(--accent-rgb),0)70%);opacity:0;transition:opacity var(--transition-1);pointer-events:none;border-radius:999px;position:absolute;inset:8px}.tech-logo-link{color:inherit;text-decoration:none;display:block}.tech-logo-link:hover .tech-logo-card,.tech-logo-link:focus-visible .tech-logo-card{animation-play-state:paused;transform:translateY(-2px)rotateX(8deg)rotateY(-8deg)scale(1.03)}.tech-logo-link:hover .tech-logo-card:after,.tech-logo-link:focus-visible .tech-logo-card:after{opacity:1}.tech-logo-image{object-fit:contain;width:74px;height:74px;transition:transform var(--transition-1);background:0 0;display:block;transform:translateZ(0)}.tech-logo-link:hover .tech-logo-image,.tech-logo-link:focus-visible .tech-logo-image{transform:translateZ(8px)scale(1.1)}.shell.light-mode .tech-logo-card{box-shadow:none;background:0 0;border:none}@keyframes techMarqueeMoveRight{0%{transform:translate(0)}to{transform:translateX(calc(-50% - (var(--logo-gap)/2)))}}@keyframes techLogoOrbit{0%{transform:translate(0)rotate(0)}25%{transform:translate(-2px,-3px)rotate(-1.2deg)}50%{transform:translate(0)rotate(0)}75%{transform:translate(2px,3px)rotate(1.2deg)}to{transform:translate(0)rotate(0)}}.tech-group-logos>:nth-child(2n) .tech-logo-card{animation-duration:7.4s;animation-delay:-1.1s}.tech-group-logos>:nth-child(3n) .tech-logo-card{animation-duration:6.2s;animation-delay:-2s}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.service-card{border:1px solid var(--card-soft-border);background:var(--card-soft-bg);box-shadow:var(--shadow-1);transition:var(--transition-1);opacity:0;border-radius:16px;grid-template-columns:56px 1fr;gap:12px;padding:16px;animation:.24s ease-out forwards sectionPopIn;display:grid;transform:translateY(5px)scale(.995)}.service-card:nth-child(2){animation-delay:40ms}.service-card:nth-child(3){animation-delay:80ms}.service-card:nth-child(4){animation-delay:.12s}.service-card:hover{box-shadow:var(--shadow-3);transform:translateY(-3px)}.service-icon{color:#ffdb70;background:#ffdb7017;border-radius:14px;place-items:center;width:56px;height:56px;font-size:1.45rem;display:grid}.shell.light-mode .service-icon{background:rgba(var(--accent-rgb),.1);color:var(--orange-yellow-crayola)}.service-icon-image{background-color:currentColor;width:30px;height:30px;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.service-title{color:var(--text-primary);font-size:var(--type-card-title);line-height:var(--lh-tight);font-weight:var(--fw-600);margin:0}.service-card p{color:var(--text-secondary);font-size:var(--type-body-sm);line-height:var(--lh-body);margin:8px 0 0}.timeline{gap:14px;padding-left:30px;display:grid;position:relative}.timeline-item{border:1px solid var(--card-soft-border);background:var(--card-soft-bg);transition:var(--transition-1);opacity:0;border-radius:14px;padding:14px 14px 14px 16px;animation:.24s ease-out forwards sectionPopIn;position:relative;transform:translateY(5px)scale(.995)}.timeline-item:before{content:"";background:linear-gradient(180deg,rgba(var(--accent-rgb),.58)0%,rgba(var(--accent-rgb),.16)100%);border-radius:999px;width:2px;position:absolute;top:29px;bottom:-19px;left:-20px}.timeline-item:last-child:before{display:none}.timeline-item:nth-child(2){animation-delay:40ms}.timeline-item:nth-child(3){animation-delay:80ms}.timeline-item:nth-child(4){animation-delay:.12s}.timeline-dot{background:var(--orange-yellow-crayola);border:2px solid var(--smoky-black);width:12px;height:12px;box-shadow:0 0 0 3px rgba(var(--accent-rgb),.2);border-radius:50%;position:absolute;top:21px;left:-25px}.timeline-item:first-child .timeline-dot{width:14px;height:14px;box-shadow:0 0 0 4px rgba(var(--accent-rgb),.24);top:20px;left:-26px}.timeline-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.timeline-date{border:1px solid rgba(var(--accent-rgb),.35);width:fit-content;color:var(--orange-yellow-crayola);font-size:var(--type-caption);font-weight:var(--fw-500);letter-spacing:.02em;background:0 0;border-radius:999px;flex-shrink:0;align-items:center;margin:0;padding:3px 9px;display:inline-flex}.timeline-role{color:var(--text-primary);font-size:var(--type-card-title);line-height:var(--lh-tight);margin-top:0}.timeline-place{color:var(--text-secondary);font-size:var(--type-body-sm);line-height:var(--lh-body);margin-top:4px}.timeline-place-row{align-items:center;gap:7px;margin-top:4px;display:inline-flex}.timeline-place-logo{object-fit:cover;border-radius:4px;flex-shrink:0;width:20px;height:20px}.timeline-place-row .timeline-place{margin-top:0}.timeline-text{color:var(--text-secondary);font-size:var(--type-body-sm);line-height:var(--lh-body);margin-top:8px}.timeline-highlights{color:var(--text-secondary);font-size:var(--type-body-sm);line-height:var(--lh-body);gap:5px;margin:10px 0 0 12px;padding-left:0;list-style:none;display:grid}.timeline-highlights li{align-items:center;gap:7px;padding-left:0;display:flex}.timeline-highlights li:before{content:"";background:var(--orange-yellow-crayola);border-radius:50%;flex-shrink:0;width:7px;height:7px}.timeline-item:hover{border-color:rgba(var(--accent-rgb),.35);box-shadow:var(--shadow-3);transform:translateY(-2px)}.shell.light-mode .timeline-dot{border-color:#fff}.resume-stack-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.resume-stack-card{border:1px solid var(--card-soft-border);background:var(--card-soft-bg);transition:var(--transition-1);border-radius:14px;padding:14px}.resume-stack-card:hover{box-shadow:var(--shadow-3);border-color:rgba(var(--accent-rgb),.35);transform:translateY(-2px)}.resume-stack-card h4{color:var(--text-primary);font-size:var(--type-body);line-height:var(--lh-tight);margin:0 0 3px}.resume-stack-pills{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.resume-stack-pill{max-width:100%;font-size:var(--type-caption);border:1px solid rgba(var(--accent-rgb),.28);background:rgba(var(--accent-rgb),.08);color:var(--white-2);transition:var(--transition-1);border-radius:999px;align-items:center;gap:6px;padding:5px 9px;line-height:1.2;display:inline-flex}.resume-stack-pill:hover{border-color:rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.12)}.resume-stack-pill-icon{width:18px;height:18px;font-size:.56rem;font-weight:var(--fw-600);letter-spacing:.02em;color:var(--tech-color);background:#ffffff0d;border:1px solid #ffffff29;border-radius:999px;flex-shrink:0;place-items:center;line-height:1;display:inline-grid}.resume-stack-pill-label{color:inherit;font-weight:var(--fw-500);white-space:nowrap}.section-actions{justify-content:flex-end;margin-top:16px;display:flex}.download-cv-btn{border:1px solid rgba(var(--accent-rgb),.35);color:var(--orange-yellow-crayola);border-radius:var(--radius-control);font-size:var(--type-body-sm);font-weight:var(--fw-500);transition:var(--transition-1);background:0 0;padding:10px 12px}.download-cv-btn:hover{background:rgba(var(--accent-rgb),.1);border-color:var(--orange-yellow-crayola)}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.portfolio-filter-row{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.portfolio-filter-btn{color:var(--light-gray);font-size:var(--type-body-sm);font-weight:var(--fw-500);border-radius:var(--radius-control);cursor:pointer;transition:var(--transition-1);background:0 0;border:none;padding:6px 10px;position:relative}.portfolio-filter-btn:after{content:"";background:var(--orange-yellow-crayola);transform-origin:50%;height:2px;transition:transform var(--transition-1);border-radius:999px;position:absolute;bottom:2px;left:8px;right:8px;transform:scaleX(0)}.portfolio-filter-btn:hover{color:var(--white-1)}.portfolio-filter-btn.active{color:var(--orange-yellow-crayola);background:0 0}.portfolio-filter-btn.active:after{transform:scaleX(1)}.portfolio-cards{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.portfolio-empty{border:1px dashed rgba(var(--accent-rgb),.34);border-radius:var(--radius-card);color:var(--text-muted);font-size:var(--type-body-sm);background:var(--card-soft-bg);grid-column:1/-1;margin:0;padding:14px}@supports (color:color-mix(in lab, red, red)){.portfolio-empty{background:color-mix(in oklab,var(--card-soft-bg)92%,transparent)}}.portfolio-card{border:1px solid var(--card-soft-border)}@supports (color:color-mix(in lab, red, red)){.portfolio-card{border:1px solid color-mix(in oklab,var(--card-soft-border)88%,rgba(var(--accent-rgb),.14))}}.portfolio-card{background:var(--card-soft-bg);box-shadow:var(--shadow-1);transition:var(--transition-1);opacity:0;border-radius:14px;padding:0 0 16px;animation:.28s cubic-bezier(.2,.8,.2,1) forwards portfolioPopIn;position:relative;overflow:hidden;transform:translateY(6px)scale(.985)}.portfolio-card:before{content:none}.portfolio-card:nth-child(2){animation-delay:40ms}.portfolio-card:nth-child(3){animation-delay:80ms}.portfolio-card:nth-child(4){animation-delay:.12s}.portfolio-card:nth-child(5){animation-delay:.16s}.portfolio-card:nth-child(6){animation-delay:.2s}.portfolio-card:nth-child(7){animation-delay:.24s}@keyframes portfolioPopIn{0%{opacity:0;transform:translateY(6px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.portfolio-card:hover{border-color:var(--card-soft-border);transform:none}@supports (color:color-mix(in lab, red, red)){.portfolio-card:hover{border-color:color-mix(in oklab,var(--card-soft-border)74%,rgba(var(--accent-rgb),.22))}}.portfolio-card:hover{box-shadow:var(--shadow-2)}.portfolio-card-media{aspect-ratio:16/9;border:none;border-bottom:1px solid var(--card-soft-border);border-radius:14px 14px 0 0;width:100%;height:auto;min-height:118px;position:relative}@supports (color:color-mix(in lab, red, red)){.portfolio-card-media{border-bottom:1px solid color-mix(in oklab,var(--card-soft-border)88%,transparent)}}.portfolio-card-media{background:var(--card-soft-bg);place-items:center;margin-bottom:8px;display:grid}@supports (color:color-mix(in lab, red, red)){.portfolio-card-media{background:color-mix(in oklab,var(--card-soft-bg)84%,#9ca3af 16%)}}.shell.light-mode .portfolio-card-media{background:#f2f3f5}.portfolio-card-media:after{content:"";opacity:0;pointer-events:none;z-index:4;background:#0f172a29;transition:opacity .16s;position:absolute;inset:0}.portfolio-card-logo{z-index:3;width:72px;height:72px;font-size:1.45rem;font-weight:var(--fw-600);letter-spacing:.02em;transition:transform var(--transition-1),filter var(--transition-1);border:1px solid #0f172a24;border-radius:18px;place-items:center;display:grid;position:relative}.portfolio-card-app-logo{z-index:3;object-fit:cover;width:72px;height:72px;transition:transform var(--transition-1),filter var(--transition-1);border:1px solid #0f172a24;border-radius:18px;display:block;position:relative}.portfolio-card-media:hover .portfolio-card-logo,.portfolio-card-media:focus-within .portfolio-card-logo,.portfolio-card-media:hover .portfolio-card-app-logo,.portfolio-card-media:focus-within .portfolio-card-app-logo{filter:brightness(.96);transform:scale(1.02)}.portfolio-card-media:hover:after,.portfolio-card-media:focus-within:after{opacity:1}.portfolio-card-halo{display:none}.portfolio-media-link{color:#1f2937;opacity:0;z-index:5;pointer-events:none;width:30px;height:30px;transition:opacity .16s ease,transform .16s ease,background var(--transition-1),border-color var(--transition-1),color var(--transition-1);background:#fffffff0;border:1px solid #0f172a2e;border-radius:50%;place-items:center;display:inline-grid;position:absolute;top:10px;left:auto;right:10px;transform:translateY(-2px);box-shadow:0 3px 10px #0f172a24}.portfolio-media-link svg{width:14px;height:14px;display:block}.portfolio-card-media:hover .portfolio-media-link,.portfolio-card-media:focus-within .portfolio-media-link{opacity:1;pointer-events:auto;transform:translateY(0)}.portfolio-media-link:hover{background:#fff;border-color:#0f172a52}@media (hover:none),(pointer:coarse){.portfolio-media-link{opacity:1;pointer-events:auto;top:10px;left:auto;right:10px;transform:none}}.portfolio-card-content{gap:10px;padding:0 16px;display:grid}.portfolio-kicker{color:var(--text-muted);font-size:var(--type-micro);line-height:var(--lh-tight);letter-spacing:.02em;text-transform:none;margin:0}.portfolio-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.portfolio-card-content h4{color:var(--text-primary);font-size:var(--type-card-title);line-height:var(--lh-tight);flex:1;margin:0}.portfolio-status{white-space:nowrap;font-size:var(--type-micro);font-weight:var(--fw-500);color:var(--text-secondary);border:1px solid var(--card-soft-border);justify-content:center;align-items:center;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.portfolio-status{border:1px solid color-mix(in oklab,var(--card-soft-border)78%,rgba(var(--accent-rgb),.18))}}.portfolio-status{background:var(--card-soft-bg)}@supports (color:color-mix(in lab, red, red)){.portfolio-status{background:color-mix(in oklab,var(--card-soft-bg)98%,transparent)}}.portfolio-status{border-radius:var(--radius-pill);padding:3px 8px}.portfolio-status:before{content:none}.portfolio-status.is-completed{color:var(--text-secondary);border-color:#10b98157}@supports (color:color-mix(in lab, red, red)){.portfolio-status.is-completed{color:color-mix(in oklab,var(--text-secondary)82%,#10b981b3)}}.portfolio-status.is-completed{background:#10b9811a}.portfolio-status.is-ongoing{border-color:rgba(var(--accent-rgb),.32);color:var(--text-secondary)}@supports (color:color-mix(in lab, red, red)){.portfolio-status.is-ongoing{color:color-mix(in oklab,var(--text-secondary)88%,var(--text-primary))}}.portfolio-status.is-ongoing{background:rgba(var(--accent-rgb),.1)}.portfolio-type{color:var(--text-muted);font-size:var(--type-caption);line-height:var(--lh-tight);letter-spacing:.03em;text-transform:uppercase}.portfolio-summary{color:var(--text-secondary);font-size:var(--type-body-sm);line-height:var(--lh-body);margin:0}.portfolio-role{color:var(--text-muted);font-size:var(--type-caption);margin:0;line-height:1.45}.portfolio-impact{color:var(--text-primary);font-size:var(--type-caption);border-left:2px solid rgba(var(--accent-rgb),.34);margin:0;padding-left:8px;line-height:1.5}.portfolio-progress{color:var(--text-secondary);font-size:var(--type-caption);margin:2px 0 0;line-height:1.5}.project-card{border:1px solid var(--card-soft-border);background:var(--card-soft-bg);transition:var(--transition-1);opacity:0;border-radius:14px;padding:14px;animation:.24s ease-out forwards sectionPopIn;transform:translateY(5px)scale(.995)}.project-grid .project-card:nth-child(2){animation-delay:40ms}.project-grid .project-card:nth-child(3){animation-delay:80ms}.project-grid .project-card:nth-child(4){animation-delay:.12s}.project-card h4,.list-card h4{color:var(--text-primary);font-size:var(--type-card-title);line-height:var(--lh-tight)}.project-card p,.list-card p{color:var(--text-secondary);font-size:var(--type-body-sm);line-height:var(--lh-body);margin-top:8px}.project-tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.project-tags span{font-size:var(--type-caption);color:var(--orange-yellow-crayola);border:1px solid rgba(var(--accent-rgb),.35);border-radius:999px;padding:3px 8px}.list-cards{gap:14px;display:grid}.list-card{border:1px solid var(--card-soft-border);background:var(--card-soft-bg);transition:var(--transition-1);border-radius:14px;padding:14px}.project-card:hover,.list-card:hover,.timeline-item:hover{box-shadow:var(--shadow-3);transform:translateY(-2px)}.list-card .meta{color:var(--text-muted);font-size:var(--type-caption);margin:0 0 6px}.form-success{color:var(--orange-yellow-crayola);font-size:var(--type-body-sm);margin-bottom:12px}.form-error{color:#e86d6d;font-size:var(--type-body-sm);margin-bottom:12px}.contact-inline-info{gap:12px;max-width:none;margin-bottom:14px;display:grid}.contact-inline-item{min-height:44px;transition:var(--transition-1);background:#2a2a2c80;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:9px 10px;display:flex;position:relative}.copy-btn{background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.24);border-radius:var(--radius-pill);cursor:pointer;color:var(--orange-yellow-crayola);font-size:var(--type-caption);transition:var(--transition-1);align-self:center;align-items:center;gap:6px;padding:6px 9px;display:inline-flex;margin-left:auto!important;margin-right:0!important}.copy-btn:hover{border-color:rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.16)}.copy-icon{vertical-align:middle;background-color:currentColor;width:16px;height:16px;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.copied-msg{color:var(--orange-yellow-crayola);font-size:var(--type-caption);line-height:1}.shell.light-mode .contact-inline-item{background:#ffffffd9}.contact-inline-item:hover,.contact-inline-item:focus-within{border-color:rgba(var(--accent-rgb),.25);background:#32323494}.shell.light-mode .contact-inline-item:hover,.shell.light-mode .contact-inline-item:focus-within{border-color:rgba(var(--accent-rgb),.35);background:#f5f7f9f5}.contact-inline-icons{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.contact-inline-icon-slash{color:var(--light-gray-70);font-size:var(--type-micro);line-height:1}.contact-inline-icon{background-color:var(--icon-muted);flex-shrink:0;width:16px;height:16px;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.contact-inline-link{color:var(--white-2);font-size:var(--type-body-sm);line-height:var(--lh-body);min-width:0;transition:var(--transition-1);overflow-wrap:anywhere;flex:1;align-items:center;width:auto;text-decoration:none;display:inline-flex}.contact-inline-link:hover{color:var(--orange-yellow-crayola)}.contact-trust-line{color:var(--text-muted);font-size:var(--type-body-sm);margin-bottom:12px}.contact-form-title{font-size:var(--type-card-title);margin-top:0;margin-bottom:14px}.contact-form{border:1px solid var(--card-soft-border);background:var(--card-soft-bg);opacity:0;border-radius:14px;gap:12px;max-width:none;padding:16px;animation:.24s ease-out forwards sectionPopIn;display:grid;transform:translateY(5px)scale(.995)}.form-row{gap:6px;display:grid}.form-row label{color:var(--light-gray-70);font-size:var(--type-caption);letter-spacing:.04em;text-transform:uppercase}.form-row input,.form-row textarea,.form-row select{width:100%;color:var(--text-primary);font-size:var(--type-body);font-family:var(--ff-poppins);transition:var(--transition-1);background:#1e1e1fb3;border:1px solid #474747;border-radius:10px;padding:10px 12px}.shell.light-mode .form-row input,.shell.light-mode .form-row textarea,.shell.light-mode .form-row select{color:var(--text-primary);background:#fffffffa;border-color:#c0cad8}.form-row input::placeholder,.form-row textarea::placeholder{color:var(--light-gray-70)}.form-row input:focus,.form-row textarea:focus,.form-row select:focus{border-color:rgba(var(--accent-rgb),.6);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.15);outline:none}.form-row input.is-invalid,.form-row textarea.is-invalid{border-color:#e65656}.contact-options{border:1px solid var(--card-soft-border)}@supports (color:color-mix(in lab, red, red)){.contact-options{border:1px solid color-mix(in oklab,var(--card-soft-border)88%,transparent)}}.contact-options{background:var(--card-soft-bg);border-radius:10px;padding:8px 10px}@supports (color:color-mix(in lab, red, red)){.contact-options{background:color-mix(in oklab,var(--card-soft-bg)96%,transparent)}}.contact-options summary{cursor:pointer;color:var(--text-secondary);font-size:var(--type-caption);list-style:none}.contact-options summary::-webkit-details-marker{display:none}.contact-options[open]{padding-bottom:10px}.contact-options[open] summary{margin-bottom:10px}.form-honeypot{opacity:0;width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.field-error{color:#e86868;font-size:var(--type-micro);line-height:1.35}.form-submit-btn{border:1px solid rgba(var(--accent-rgb),.35);color:var(--orange-yellow-crayola);border-radius:var(--radius-control);font-size:var(--type-body-sm);font-weight:var(--fw-500);cursor:pointer;transition:var(--transition-1);background:0 0;padding:10px 12px}.form-submit-btn:hover{background:rgba(var(--accent-rgb),.18);border-color:var(--orange-yellow-crayola)}.form-submit-btn:disabled{opacity:.65;cursor:not-allowed}.contact-quick-cta{border:1px solid rgba(var(--accent-rgb),.35);color:var(--text-primary);background:rgba(var(--accent-rgb),.14);border-radius:var(--radius-control);font-size:var(--type-body-sm);font-weight:var(--fw-500);transition:var(--transition-1);justify-content:center;align-items:center;padding:10px 12px;text-decoration:none;display:inline-flex}.contact-quick-cta:hover{border-color:rgba(var(--accent-rgb),.55);background:rgba(var(--accent-rgb),.22)}.endorsement-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;max-width:780px;margin-inline:auto;display:grid}.endorsement-card{border:1px solid var(--card-soft-border)}@supports (color:color-mix(in lab, red, red)){.endorsement-card{border:1px solid color-mix(in oklab,var(--card-soft-border)88%,rgba(var(--accent-rgb),.12))}}.endorsement-card{background:var(--card-soft-bg);transition:var(--transition-1);border-radius:14px;flex-direction:column;gap:10px;min-height:auto;padding:16px;display:flex;position:relative;box-shadow:0 8px 22px #0f172a14}.endorsement-card:hover{border-color:var(--card-soft-border);transform:none}@supports (color:color-mix(in lab, red, red)){.endorsement-card:hover{border-color:color-mix(in oklab,var(--card-soft-border)74%,rgba(var(--accent-rgb),.22))}}.endorsement-card:hover{box-shadow:var(--shadow-2)}.endorsement-quote{color:var(--text-primary);font-size:var(--type-body);text-wrap:pretty;max-width:66ch;margin:0;line-height:1.72}.endorsement-quote-wrap{gap:6px;display:grid}.endorsement-quote.is-collapsed{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.endorsement-toggle-btn{width:fit-content;color:var(--text-primary);background:0 0;border:none}@supports (color:color-mix(in lab, red, red)){.endorsement-toggle-btn{color:color-mix(in oklab,var(--text-primary)78%,var(--orange-yellow-crayola)22%)}}.endorsement-toggle-btn{font:inherit;font-size:var(--type-caption);font-weight:var(--fw-600);letter-spacing:.01em;text-underline-offset:3px;cursor:pointer;transition:color var(--transition-1),text-decoration-color var(--transition-1),opacity var(--transition-1);border-radius:6px;margin:0;padding:2px 4px;line-height:1.25;text-decoration:underline}.endorsement-toggle-btn:hover{color:var(--orange-yellow-crayola);background:rgba(var(--accent-rgb),.1);text-decoration-color:currentColor}.endorsement-toggle-btn:focus-visible{outline:2px solid rgba(var(--accent-rgb),.62);outline-offset:2px;color:var(--orange-yellow-crayola);background:rgba(var(--accent-rgb),.12);text-decoration-color:currentColor}.endorsement-toggle-btn:active{opacity:.75}.endorsement-person{border-top:1px solid var(--card-soft-border);grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}@supports (color:color-mix(in lab, red, red)){.endorsement-person{border-top:1px solid color-mix(in oklab,var(--card-soft-border)88%,transparent)}}.endorsement-person{margin-top:auto;padding-top:12px}.endorsement-photo{width:40px;height:40px;font-size:var(--type-micro);font-weight:var(--fw-600);color:var(--text-primary);background:var(--card-soft-bg);border-radius:50%;place-items:center;display:inline-grid}@supports (color:color-mix(in lab, red, red)){.endorsement-photo{background:color-mix(in oklab,var(--card-soft-bg)82%,rgba(var(--accent-rgb),.14))}}.endorsement-photo{border:1px solid var(--card-soft-border)}@supports (color:color-mix(in lab, red, red)){.endorsement-photo{border:1px solid color-mix(in oklab,var(--card-soft-border)78%,rgba(var(--accent-rgb),.2))}}.endorsement-photo{flex-shrink:0}.endorsement-photo-image{object-fit:cover;border:1px solid var(--card-soft-border);border-radius:50%;width:40px;height:40px;display:block}@supports (color:color-mix(in lab, red, red)){.endorsement-photo-image{border:1px solid color-mix(in oklab,var(--card-soft-border)78%,rgba(var(--accent-rgb),.2))}}.endorsement-photo-image{flex-shrink:0}.endorsement-photo-link{transition:var(--transition-1);border-radius:50%;display:inline-flex}.endorsement-photo-link:hover{transform:translateY(-1px)}.endorsement-meta h4{color:var(--text-primary);font-size:var(--type-body);line-height:var(--lh-tight);margin:0}.endorsement-meta{gap:2px;min-width:0;display:grid}.endorsement-position{color:var(--text-secondary);font-size:var(--type-caption);margin:2px 0 0;line-height:1.42}.endorsement-relation-line{color:var(--text-muted);font-size:var(--type-micro);margin:0;line-height:1.35}.service-grid,.resume-stack-grid,.portfolio-cards,.endorsement-grid{gap:18px}.timeline,.list-cards{gap:16px}.service-card,.timeline-item,.resume-stack-card,.project-card,.list-card,.contact-form{border-radius:var(--radius-card);border-color:var(--card-soft-border)}@supports (color:color-mix(in lab, red, red)){.service-card,.timeline-item,.resume-stack-card,.project-card,.list-card,.contact-form{border-color:color-mix(in oklab,var(--card-soft-border)88%,var(--orange-yellow-crayola)12%)}}.service-card,.timeline-item,.resume-stack-card,.project-card,.list-card,.contact-form{box-shadow:var(--shadow-1)}.top-tabs,.tab-btn,.portfolio-filter-btn,.mobile-tab-btn,.download-cv-btn,.form-submit-btn,.contact-quick-cta,.copy-btn{border-radius:var(--radius-control)}.timeline-date,.resume-stack-pill,.project-tags span{border-radius:var(--radius-pill)}.service-card:hover,.timeline-item:hover,.resume-stack-card:hover,.project-card:hover,.list-card:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.service-card p,.timeline-text,.timeline-highlights,.portfolio-summary,.contact-inline-link{line-height:var(--lh-body)}.timeline-head{align-items:flex-start}.timeline-date{margin-top:2px}#panel-resume .section-subtitle{margin-top:28px;margin-bottom:10px}#panel-resume .list-cards{gap:10px;margin-bottom:14px;padding-bottom:14px;position:relative}#panel-resume .list-cards:not(:last-of-type):after{content:"";background:var(--card-soft-border);height:1px;position:absolute;bottom:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){#panel-resume .list-cards:not(:last-of-type):after{background:color-mix(in oklab,var(--card-soft-border)72%,rgba(var(--accent-rgb),.14))}}#panel-resume .list-card{border:none;border-left:2px solid rgba(var(--accent-rgb),.28);box-shadow:none;background:0 0;border-radius:0;padding:4px 0 8px 12px}#panel-resume .list-card:hover{box-shadow:none;border-left-color:rgba(var(--accent-rgb),.4);transform:none}#panel-resume .list-card .meta{margin-bottom:2px}#panel-resume .list-card .meta.resume-date{font-style:italic}#panel-resume .list-card p{margin-top:4px}.portfolio-filter-row{margin-bottom:20px}.portfolio-filter-btn{padding:7px 11px}.portfolio-filter-btn:after{content:none}.portfolio-filter-btn:hover{color:var(--text-primary);background:rgba(var(--accent-rgb),.08)}.portfolio-filter-btn.active{color:var(--text-primary);background:rgba(var(--accent-rgb),.13);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.34)}.portfolio-card-content{gap:9px;padding:0 15px}.project-tags span{padding:5px 9px}.download-cv-btn,.copy-btn,.form-submit-btn,.contact-quick-cta{min-height:38px;line-height:1.3}.section-actions{margin-top:20px}.meta-item,.contact-inline-item{border:1px solid var(--card-soft-border)}@supports (color:color-mix(in lab, red, red)){.meta-item,.contact-inline-item{border:1px solid color-mix(in oklab,var(--card-soft-border)85%,transparent)}}.meta-item,.contact-inline-item{background:var(--card-soft-bg)}@supports (color:color-mix(in lab, red, red)){.meta-item,.contact-inline-item{background:color-mix(in oklab,var(--card-soft-bg)92%,transparent)}}.meta-item:hover,.meta-item:focus-within,.contact-inline-item:hover,.contact-inline-item:focus-within{border-color:rgba(var(--accent-rgb),.32);background:var(--card-soft-bg)}@supports (color:color-mix(in lab, red, red)){.meta-item:hover,.meta-item:focus-within,.contact-inline-item:hover,.contact-inline-item:focus-within{background:color-mix(in oklab,var(--card-soft-bg)88%,rgba(var(--accent-rgb),.06))}}.resume-stack-pill{color:var(--text-primary)}.resume-stack-pill-icon{color:var(--tech-color)}@supports (color:color-mix(in lab, red, red)){.resume-stack-pill-icon{color:color-mix(in oklab,var(--tech-color)85%,#f8fafc 15%)}}.resume-stack-pill-icon{background:var(--tech-color)}@supports (color:color-mix(in lab, red, red)){.resume-stack-pill-icon{background:color-mix(in oklab,var(--tech-color)12%,transparent)}}.resume-stack-pill-icon{border-color:var(--tech-color)}@supports (color:color-mix(in lab, red, red)){.resume-stack-pill-icon{border-color:color-mix(in oklab,var(--tech-color)38%,transparent)}}.shell.light-mode .resume-stack-pill-icon{color:var(--tech-color)}@supports (color:color-mix(in lab, red, red)){.shell.light-mode .resume-stack-pill-icon{color:color-mix(in oklab,var(--tech-color)72%,#1f2937 28%)}}.shell.light-mode .resume-stack-pill-icon{background:var(--tech-color)}@supports (color:color-mix(in lab, red, red)){.shell.light-mode .resume-stack-pill-icon{background:color-mix(in oklab,var(--tech-color)15%,#fff)}}.shell.light-mode .resume-stack-pill-icon{border-color:var(--tech-color)}@supports (color:color-mix(in lab, red, red)){.shell.light-mode .resume-stack-pill-icon{border-color:color-mix(in oklab,var(--tech-color)30%,#b7c2cd)}}.form-row input,.form-row textarea{border-color:var(--card-soft-border)}@supports (color:color-mix(in lab, red, red)){.form-row input,.form-row textarea{border-color:color-mix(in oklab,var(--card-soft-border)90%,transparent)}}.form-row input,.form-row textarea{min-height:44px}.form-row textarea{resize:vertical;min-height:136px}.contact-form{gap:14px}.endorsement-card{min-height:auto}@keyframes sectionPopIn{0%{opacity:0;transform:translateY(5px)scale(.995)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:1200px){:root{--type-display:clamp(1.95rem,1.84rem + .25vw,2.08rem);--type-section:clamp(1.24rem,1.19rem + .14vw,1.32rem);--type-card-title:1.08rem}.left-panel{width:270px}.right-panel{width:calc(100% - 290px);margin-left:290px;padding:22px 24px 26px}.top-tabs{border:1px solid rgba(var(--accent-rgb),.24);border-radius:var(--radius-card);background:var(--card-soft-bg);justify-content:flex-start;width:100%;max-width:100%;position:static;overflow-x:auto}@supports (color:color-mix(in lab, red, red)){.top-tabs{background:color-mix(in oklab,var(--card-soft-bg)90%,transparent)}}.top-tabs{gap:6px;margin-bottom:16px;padding:6px}.content{padding-top:8px}.theme-toggle{top:14px;left:14px}.service-grid,.project-grid,.endorsement-grid{grid-template-columns:1fr}.tech-logo-card{min-width:88px}.tech-logo-image{width:66px;height:66px}.portfolio-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){:root{--type-hero:1.72rem;--type-display:1.75rem;--type-section:1.2rem;--type-card-title:1.03rem;--type-body:.97rem;--type-body-sm:.9rem;--type-caption:.78rem;--type-micro:.72rem}.shell{padding:10px;display:block}.left-panel{border-radius:var(--radius-panel);width:100%;height:auto;margin-bottom:10px;padding:16px;position:relative;top:auto;left:auto;overflow:hidden}.profile-toggle{border-top:none;border-right:none;border-left:1px solid rgba(var(--accent-rgb),.28);border-bottom:1px solid rgba(var(--accent-rgb),.28);background:linear-gradient(180deg,rgba(var(--accent-rgb),.1),rgba(var(--accent-rgb),.03));width:48px;height:48px;color:var(--orange-yellow-crayola);cursor:pointer;box-shadow:inset 0 -1px 0 rgba(var(--accent-rgb),.14);transition:var(--transition-1);isolation:isolate;border-radius:0 20px 0 12px;place-items:center;display:grid;position:absolute;top:0;right:0;overflow:visible}.profile-toggle:hover{border-color:var(--orange-yellow-crayola);transform:translateY(-1px)}.profile-toggle-icon{width:18px;height:18px;transition:transform var(--transition-1);z-index:2;position:relative}.left-panel.mobile-open .profile-toggle-icon{transform:rotate(180deg)}.profile-extra{flex:initial;gap:12px;margin-top:0;display:none}.left-panel.mobile-open .profile-extra{margin-top:10px;display:flex}.meta-list{gap:12px}.meta-item{gap:10px;min-height:42px;padding:8px 10px}.social-row{border-top:1px solid #3d3d3d;margin-top:0;padding-top:8px}.avatar-wrap{width:125px;margin:6px auto 16px}.avatar{height:125px}.sidebar-name{font-size:var(--type-hero)}.right-panel{width:auto;margin-left:0;margin-bottom:calc(98px + env(safe-area-inset-bottom));border-radius:var(--radius-panel);padding:18px 16px;position:static}.theme-toggle{width:34px;height:34px;top:12px;left:12px}.top-tabs{display:none;position:static}.mobile-tabs{z-index:20;border-top:1px solid rgba(var(--accent-rgb),.24);background:var(--card-soft-bg);border-bottom:none;border-left:none;border-right:none;gap:6px;display:grid;position:fixed;bottom:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.mobile-tabs{background:color-mix(in oklab,var(--card-soft-bg)90%,transparent)}}.mobile-tabs{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:9px 8px calc(9px + env(safe-area-inset-bottom));box-shadow:var(--shadow-2);border-radius:0}.shell.light-mode .mobile-tabs{border-top-color:rgba(var(--accent-rgb),.24);background:var(--card-soft-bg)}@supports (color:color-mix(in lab, red, red)){.shell.light-mode .mobile-tabs{background:color-mix(in oklab,var(--card-soft-bg)90%,transparent)}}.mobile-tabs.all-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.mobile-tab-btn{color:var(--light-gray);font-size:var(--type-micro);font-weight:var(--fw-500);border-radius:var(--radius-control);text-align:center;text-overflow:ellipsis;transition:var(--transition-1);background:0 0;border:none;justify-items:center;gap:3px;padding:7px 4px;display:inline-grid;position:relative;overflow:hidden}.mobile-tab-btn:after{content:none}.mobile-tab-icon{color:currentColor;width:16px;height:16px;display:inline-flex}.mobile-tab-icon svg{width:100%;height:100%;display:block}.mobile-tab-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;display:block;overflow:hidden}.mobile-tab-btn.active{color:var(--text-primary);background:rgba(var(--accent-rgb),.16);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.34)}.tab-btn{white-space:nowrap}.title-line{margin-left:auto;margin-right:auto}.service-grid,.project-grid,.resume-stack-grid{grid-template-columns:1fr}.tech-marquee-track{--logo-gap:12px;animation-duration:40s}.tech-logo-card{min-width:84px;padding:6px 4px}.tech-logo-image{width:58px;height:58px}.portfolio-cards{grid-template-columns:1fr;gap:14px}.endorsement-grid{grid-template-columns:1fr}.content{max-width:100%;padding-top:2px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.tech-marquee-window{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.tech-marquee-track{animation:none!important;transform:none!important}.tech-marquee-group[aria-hidden=true]{display:none}}*{box-sizing:border-box}html,body{min-height:100%;font-family:var(--font-modern),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0;padding:0}a{color:inherit;text-decoration:none}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
