*,:before,:after{box-sizing:border-box}p{text-wrap:pretty}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}:root{--page-margin:2rem;--primary-color:#00d4aa;--primary-dark:#00a085;--secondary-color:#7d63f1;--secondary-color-vivid:#b1307b;--accent-color:#f59e0b;--text-primary:#fff;--text-secondary:#a1a1aa;--text-muted:#71717a;--bg-primary:#0a0e1a;--bg-secondary:#1e293b;--bg-card:#1e293bcc;--bg-glass:#ffffff0d;--border-color:#ffffff1a;--shadow-color:#00000040;--blur-amount:20px;--container-narrow:65rem;--container-wide:85rem;--container-max:1400px;--font-body:"Segoe UI", "Aptos", "Helvetica Neue", sans-serif;--font-mono:"Cascadia Code", "Consolas", "SFMono-Regular", monospace}html,body{-webkit-tap-highlight-color:transparent;scroll-behavior:smooth;margin:0;padding:0;scroll-padding-top:2rem;overflow-x:clip}@supports not (overflow:clip){html,body{overflow-x:hidden}}@media (width<40rem){html,body{scroll-padding-top:8rem}}@view-transition{navigation:auto}html.technology-return{scroll-behavior:auto}body{background:radial-gradient(ellipse 80% 50% at 20% -20%, #7877c64d, transparent), radial-gradient(ellipse 80% 50% at 80% 120%, #ff77c64d, transparent), var(--bg-primary);font-family:var(--font-body);color:var(--text-primary);background-attachment:fixed;font-weight:400;line-height:1.6}.icon{vertical-align:-.125em;flex:none;width:1em;height:1em;display:inline-block}img{border-radius:1rem;max-width:100%;height:auto}a{color:inherit;transition:all .3s cubic-bezier(.4,0,.2,1)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes glow{0%,to{box-shadow:0 0 20px rgba(var(--primary-color), .3)}50%{box-shadow:0 0 40px rgba(var(--primary-color), .6)}}::view-transition{pointer-events:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.42s;animation-timing-function:cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion:reduce){html,body{scroll-behavior:auto!important}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}.inner-container{margin-inline:auto;margin-top:var(--page-margin);width:min(var(--container-max), 100vw - 2rem);background:var(--bg-glass);backdrop-filter:blur(var(--blur-amount));border:1px solid var(--border-color);border-radius:2rem 2rem 0 0;display:grid;position:relative}.inner-container:before{content:"";background:linear-gradient(135deg, rgba(var(--primary-color), .1), rgba(var(--secondary-color), .05));z-index:-1;border-radius:2rem;position:absolute;inset:0}@media (width>=40rem){.inner-container{grid-template:"padding-s nav header padding-e""padding-s.main padding-e"1fr"footer footer footer footer"/2rem 14rem 1fr 2rem}}@media (width<40rem){.inner-container{grid-template:"padding-s nav padding-e""padding-s header padding-e""padding-s main padding-e"1fr"footer footer footer"/1rem 1fr 1rem}}.inner-container header{grid-area:header}.inner-container nav{grid-area:nav}.inner-container main{grid-area:main}.inner-container footer{grid-area:footer}.inner-container-content{grid-template-columns:subgrid;grid-template-rows:subgrid;grid-column:span 3;padding-block-end:4rem;display:grid}@media (width>=40rem){.inner-container-content{grid-row:span 2}}@media (width<40rem){.inner-container-content{grid-row:span 3}}.site-hero{min-height:calc(100vh - var(--page-margin) - 4rem);min-height:calc(100svh - var(--page-margin) - 4rem);border-bottom:1px solid var(--border-color);flex-direction:column;justify-content:center;display:flex;position:relative;container-type:inline-size}@media (width<40rem){.site-hero{min-height:calc(90vh - var(--page-margin) - 4.75rem);min-height:calc(90svh - var(--page-margin) - 4.75rem);padding:.75rem .5rem 1.5rem}}.site-hero .hero-content{z-index:2;align-items:center;margin-block-start:auto;display:grid}@container (width>=50rem){.site-hero .hero-content{grid-template-columns:1.2fr 1fr;grid-template-areas:"text visual""cta empty";gap:0 3rem}}@container (width<50rem){.site-hero .hero-content{grid-template-columns:1fr;grid-template-areas:"text""visual""cta";gap:3rem;margin-block-start:2rem;padding-bottom:10rem}}@media (width<40rem){.site-hero .hero-content{text-align:center;gap:clamp(1.25rem,3svh,1.75rem);margin-block-start:auto;padding-bottom:0}@supports (text-box-trim:trim-both){.site-hero .hero-content .name{text-box-trim:trim-start;text-box-edge:cap alphabetic}}}@media (height<48rem) and (width>=40rem){.site-hero .hero-content{padding-block-start:4rem}}.site-hero .hero-text{grid-area:text;animation:1s ease-out slideInLeft}.site-hero .hero-text h1{margin:0 0 1.5rem;line-height:1.1}.site-hero .hero-text h1 .greeting{color:var(--text-secondary);margin-bottom:.5rem;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:300;display:block}.site-hero .hero-text h1 .name{background:linear-gradient(135deg, var(--primary-color), var(--secondary-color));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:clamp(3rem,8vw,5rem);font-weight:700;display:block}.site-hero .hero-text h1 .subtitle{color:var(--text-muted);font-size:clamp(1.2rem,3vw,1.5rem);font-weight:400;display:block}.site-hero .hero-text .hero-description{color:var(--text-secondary);max-width:600px;margin-block-end:0;font-size:1.125rem}@container (width>=50rem){.site-hero .hero-text .hero-description{margin-block-end:2rem}}@media (width<50rem){.site-hero .hero-text .hero-description{margin-inline:auto}}.site-hero .hero-cta{flex-wrap:wrap;grid-area:cta;gap:1rem;display:flex}@media (width<40rem){.site-hero .hero-cta{flex-wrap:wrap;justify-content:center;gap:.75rem;width:100%}.site-hero .hero-cta .cta-primary,.site-hero .hero-cta .cta-secondary{justify-content:center;max-width:100%;padding-inline:1.25rem}}.site-hero .hero-cta .cta-primary,.site-hero .hero-cta .cta-secondary{border:1px solid #0000;border-radius:12px;align-items:center;gap:.5rem;padding:.875rem 1.75rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative;overflow:hidden}.site-hero .hero-cta .cta-primary i,.site-hero .hero-cta .cta-primary .icon,.site-hero .hero-cta .cta-secondary i,.site-hero .hero-cta .cta-secondary .icon{transition:transform .25s cubic-bezier(.4,0,.2,1)}@media (hover:hover){.site-hero .hero-cta .cta-primary:hover i,.site-hero .hero-cta .cta-primary:hover .icon,.site-hero .hero-cta .cta-secondary:hover i,.site-hero .hero-cta .cta-secondary:hover .icon{transform:translate(3px)}}.site-hero .hero-cta .cta-primary{background:var(--secondary-color);color:#fff;border:1px solid var(--secondary-color)}.site-hero .hero-cta .cta-primary:before{content:"";opacity:0;background:linear-gradient(135deg,#0000,#ffffff1a,#0000);transition:opacity .25s;position:absolute;inset:0}@media (hover:hover){.site-hero .hero-cta .cta-primary:hover{background:var(--secondary-color-vivid);border-color:var(--secondary-color-vivid);transform:translateY(-1px);box-shadow:0 4px 20px #7d63f140}.site-hero .hero-cta .cta-primary:hover:before{opacity:1}}.site-hero .hero-cta .cta-secondary{backdrop-filter:blur(12px);color:var(--text-primary);background:#ffffff0f;border-color:#ffffff1f}@media (hover:hover){.site-hero .hero-cta .cta-secondary:hover{border-color:var(--secondary-color);background:#ffffff1a;transform:translateY(-1px);box-shadow:0 4px 16px #00000026}}.site-hero .hero-visual{grid-area:visual;min-width:0;animation:1s ease-out .2s both slideInRight}.site-hero .hero-visual .code-preview{background:var(--bg-card);backdrop-filter:blur(var(--blur-amount));border:1px solid var(--border-color);box-shadow:0 20px 60px var(--shadow-color);border-radius:1rem;overflow:hidden}.site-hero .hero-visual .code-preview .code-header{border-bottom:1px solid var(--border-color);background:#0000004d;justify-content:space-between;align-items:center;padding:1rem;display:flex}.site-hero .hero-visual .code-preview .code-header .window-controls{gap:.5rem;display:flex}.site-hero .hero-visual .code-preview .code-header .window-controls .control{border-radius:50%;width:12px;height:12px}.site-hero .hero-visual .code-preview .code-header .window-controls .control.close{background:#ff5f57}.site-hero .hero-visual .code-preview .code-header .window-controls .control.minimize{background:#ffbd2e}.site-hero .hero-visual .code-preview .code-header .window-controls .control.maximize{background:#28ca42}.site-hero .hero-visual .code-preview .code-header .file-name{font-family:var(--font-mono);color:var(--text-secondary);font-size:.875rem}.site-hero .hero-visual .code-preview .code-content{font-family:var(--font-mono);text-align:start;padding:1.5rem;font-size:.875rem;line-height:1.6}.site-hero .hero-visual .code-preview .code-content .keyword{color:#c678dd}.site-hero .hero-visual .code-preview .code-content .variable{color:#e06c75}.site-hero .hero-visual .code-preview .code-content .property{color:#56b6c2}.site-hero .hero-visual .code-preview .code-content .string{color:#98c379}.site-hero .hero-visual .code-preview .code-content .boolean{color:#d19a66}@media (width<40rem){.site-hero .hero-visual .code-preview{max-width:100%}.site-hero .hero-visual .code-preview .code-content{overflow-wrap:anywhere;padding:1rem}}.site-hero .scroll-indicator{color:var(--text-secondary);align-items:center;gap:.5rem;margin-block:auto 2rem;margin-inline:auto;padding-block-start:2rem;text-decoration:none;transition:all .3s;animation:2s infinite bounce;display:flex}@media (width<40rem){.site-hero .scroll-indicator{display:none}}@media (hover:hover){.site-hero .scroll-indicator:hover{color:var(--secondary-color-vivid);transform:translate(-50%)translateY(-5px)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.site-hero:before,.site-hero:after{content:"";aspect-ratio:1;background:radial-gradient(circle, var(--primary-color) 0%, transparent 70%);opacity:.1;pointer-events:none;z-index:1;width:min(60vw,600px);animation:6s ease-in-out infinite float;position:absolute}.site-hero:before{animation-delay:0s;top:10%;right:-10%}.site-hero:after{background:radial-gradient(circle, var(--secondary-color) 0%, transparent 70%);animation-delay:3s;bottom:10%;left:-10%}@keyframes float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-20px)rotate(180deg)}}.inner-container-content .primary-nav{height:max-content;color:var(--text-secondary);z-index:10;justify-self:flex-start;font-size:1.125rem;position:sticky;top:2rem}.inner-container-content .primary-nav .nav-toggle{box-sizing:content-box;appearance:none;background:var(--bg-card);border:1px solid var(--border-color);cursor:pointer;z-index:1001;border-radius:.75rem;width:26px;height:26px;padding:.75rem;transition:background .3s,border-color .3s;display:none;position:relative}.inner-container-content .primary-nav .nav-toggle .line{background:var(--text-primary);transform-origin:50%;border-radius:2px;width:26px;height:3px;margin:-1.5px 0 0 -13px;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .3s;position:absolute;top:50%;left:50%;transform:translateY(-9px)}.inner-container-content .primary-nav .nav-toggle .line:nth-child(2){transform:translateY(0)}.inner-container-content .primary-nav .nav-toggle .line:nth-child(3){transform:translateY(9px)}@media (hover:hover){.inner-container-content .primary-nav .nav-toggle:hover{background:var(--bg-glass);border-color:var(--secondary-color)}}.inner-container-content .primary-nav .nav-toggle.active .line:first-child{transform:rotate(45deg)}.inner-container-content .primary-nav .nav-toggle.active .line:nth-child(2){opacity:0;transform:scaleX(0)}.inner-container-content .primary-nav .nav-toggle.active .line:nth-child(3){transform:rotate(-45deg)}.inner-container-content .primary-nav .nav-controls{align-items:center;gap:.5rem;display:flex}.inner-container-content .primary-nav .nav-back-mobile{display:none}.inner-container-content .primary-nav a{all:unset;cursor:pointer}.inner-container-content .primary-nav ul{margin:0;padding:0;list-style-type:none}.inner-container-content .primary-nav li{cursor:pointer;border-radius:.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.inner-container-content .primary-nav li:before{content:"";pointer-events:none;background-color:var(--text-muted);border-radius:1px;width:1.5rem;height:2px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;left:0;translate:0 -50%}.inner-container-content .primary-nav li:has(:focus){color:var(--secondary-color-vivid);background:var(--bg-glass)}.inner-container-content .primary-nav li:has(:focus):before{background:linear-gradient(to left, var(--secondary-color-vivid), transparent);width:2rem}@media (hover:hover){.inner-container-content .primary-nav li:not(.is-active):hover{color:var(--secondary-color-vivid);background:var(--bg-glass)}.inner-container-content .primary-nav li:not(.is-active):hover:before{background:linear-gradient(to left, var(--secondary-color-vivid), transparent);width:2rem}}.inner-container-content .primary-nav li a{box-sizing:border-box;width:100%;padding:.75rem .75rem .75rem 2.5rem;display:block}.inner-container-content .primary-nav .nav-back:before{display:none}.inner-container-content .primary-nav .nav-back .icon{width:1.5rem;height:1.5rem;position:absolute;top:50%;left:0;transform:translateY(-50%)rotate(180deg)}@media (width>=40rem){.inner-container-content .primary-nav{margin-top:4rem;padding-right:1rem}.inner-container-content .primary-nav li{margin-bottom:.5rem}.inner-container-content .primary-nav li a{padding-left:3rem}.inner-container-content .primary-nav li a>span{transition:transform .3s cubic-bezier(.4,0,.2,1);display:inline-block;transform:translate(-.5rem)}.inner-container-content .primary-nav li.is-active{color:var(--secondary-color-vivid);background:var(--bg-glass)}.inner-container-content .primary-nav li.is-active a>span{transform:translate(0)}.inner-container-content .primary-nav li.is-active:before{background:linear-gradient(to left, var(--secondary-color-vivid), transparent);width:2.5rem}}@media (width>=40rem) and (hover:hover){.inner-container-content .primary-nav li:not(:last-child):not(.is-active):hover a>span{transform:translate(0)}.inner-container-content .primary-nav li:not(:last-child):not(.is-active):hover:before{width:2.5rem}}@media (width<40rem){.inner-container-content .primary-nav{width:100%;margin:0;padding:0;position:static}.inner-container-content .primary-nav .nav-controls{margin:1rem 0 0 .5rem}.inner-container-content .primary-nav .nav-toggle{margin:0;display:flex}.inner-container-content .primary-nav .nav-back-mobile{z-index:1001;box-sizing:border-box;background:var(--bg-card);border:1px solid var(--border-color);min-height:52px;color:var(--text-secondary);border-radius:.75rem;justify-content:center;align-items:center;gap:.45rem;padding:.75rem 1rem;font-size:1rem;text-decoration:none;transition:background .3s,border-color .3s,color .3s;display:inline-flex;position:relative}.inner-container-content .primary-nav .nav-back-mobile .icon{width:1.25rem;height:1.25rem;transform:rotate(180deg)}.inner-container-content .primary-nav .nav-back-mobile:focus-visible{outline:2px solid var(--primary-color);outline-offset:.25rem}.inner-container-content .primary-nav .nav-back{display:none}.inner-container-content .primary-nav ul{background:var(--bg-primary);backdrop-filter:blur(20px);border:1px solid var(--border-color);opacity:0;pointer-events:none;z-index:1000;border-radius:2rem;flex-direction:column;gap:1rem;margin:0;padding:6rem 2rem 3rem;transition:opacity .4s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;inset:0;overflow-y:auto}.inner-container-content .primary-nav ul.active{opacity:1;pointer-events:auto;translate:0}.inner-container-content .primary-nav li{text-align:left;font-size:1.25rem}.inner-container-content .primary-nav li:before,.inner-container-content .primary-nav li:after{display:none}.inner-container-content .primary-nav li{border:1px solid var(--border-color);background:#ffffff0a;border-radius:.75rem}.inner-container-content .primary-nav li a{padding:.75rem 1.25rem}.inner-container-content .primary-nav li a>span{transform:none}.inner-container-content .primary-nav .nav-back .icon{width:1rem;height:1rem;left:.25rem}}@media (width<40rem) and (hover:hover){.inner-container-content .primary-nav .nav-back-mobile:hover{background:var(--bg-glass);border-color:var(--secondary-color);color:var(--text-primary)}.inner-container-content .primary-nav li:hover{background:#ffffff14}}main{margin-block-start:4rem;container-type:inline-size}main section+section{margin-top:6rem}main section>h2{background:linear-gradient(135deg, var(--primary-color), var(--secondary-color));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 1rem;font-size:clamp(2rem,5vw,3rem);font-weight:700}#projects .project-showcase{display:block}#projects .project-tabs{backdrop-filter:blur(18px);scrollbar-width:none;background:#0a0e1a8c;border:1px solid #94a3b838;border-radius:999px;align-items:center;gap:.125rem;width:fit-content;max-width:100%;margin-bottom:1.75rem;padding:.25rem;display:flex;overflow-x:auto;box-shadow:inset 0 1px #ffffff0a,0 14px 35px #00000029}#projects .project-tabs::-webkit-scrollbar{display:none}#projects .project-tabs .tab-btn{min-height:2.75rem;color:var(--text-secondary);font:inherit;background:0 0;border:none;border-radius:2rem;flex:none;justify-content:center;align-items:center;gap:.6rem;padding:.625rem 1rem;font-size:.9375rem;font-weight:600;transition:color .22s,background .22s,box-shadow .22s,transform .22s;display:inline-flex;position:relative}#projects .project-tabs .tab-btn .icon{color:#a6adb9;width:1.1rem;height:1.1rem;transition:color .22s,transform .22s}#projects .project-tabs .tab-btn:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}#projects .project-tabs .tab-btn:not(.active){cursor:pointer}@media (hover:hover){#projects .project-tabs .tab-btn:not(.active):hover{color:var(--text-primary);background:#ffffff0f}#projects .project-tabs .tab-btn:not(.active):hover .icon{color:var(--primary-color);transform:translateY(-1px)}}#projects .project-tabs .tab-btn.active{color:#fff;background:linear-gradient(105deg,#12bdb0 0%,#347fc8 52%,#7161e9 100%);border-radius:.7rem;box-shadow:0 0 22px #19cabe38,0 0 28px #7d63f133}#projects .project-tabs .tab-btn.active .icon{color:#fff}#projects .project-tabs .tab-btn.active:before{opacity:0}#projects .project-tabs .tab-btn.active:first-child{border-top-left-radius:2rem;border-bottom-left-radius:2rem}#projects .project-tabs .tab-btn.active:last-child{border-top-right-radius:2rem;border-bottom-right-radius:2rem}#projects .project-tabs .tab-btn.active+.tab-btn:before{opacity:0}#projects .project-tabs .tab-btn:active{transform:scale(.98)}#projects .project-filter{display:none}@media (width<40rem){#projects .project-tabs{display:none}#projects .project-filter{margin-bottom:1.5rem;display:block}#projects .project-filter>label{color:var(--text-secondary);letter-spacing:.09em;text-transform:uppercase;margin:0 0 .45rem .35rem;font-size:.72rem;font-weight:700;display:block}#projects .project-filter-select{background:linear-gradient(110deg,#12bdb01f,#7161e91a),#0a0e1ad1;border:1px solid #6be2d652;border-radius:1rem;align-items:center;min-height:3.5rem;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff12,0 12px 30px #0003}#projects .project-filter-select .project-filter-icons{pointer-events:none;width:1.15rem;height:1.15rem;position:absolute;left:1rem}#projects .project-filter-select .project-filter-icons .icon{color:#5de0d2;width:100%;height:100%;display:none}#projects .project-filter-select select{appearance:none;width:100%;min-height:3.5rem;color:var(--text-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 3rem 0 2.9rem;font-size:1rem;font-weight:650}#projects .project-filter-select select:focus-visible{outline:2px solid var(--primary-color);outline-offset:-3px;border-radius:1rem}#projects .project-filter-select select option{color:#fff;background:#101624}#projects .project-filter-select .select-chevron{pointer-events:none;border-bottom:2px solid #aab5c7;border-right:2px solid #aab5c7;width:.6rem;height:.6rem;position:absolute;right:1.15rem;transform:translateY(-20%)rotate(45deg)}#projects .project-filter[data-category=featured] .filter-icon-featured,#projects .project-filter[data-category=all] .filter-icon-all,#projects .project-filter[data-category=games] .filter-icon-games,#projects .project-filter[data-category=apps] .filter-icon-apps,#projects .project-filter[data-category=websites] .filter-icon-websites{display:block}}#projects .projects-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));grid-auto-flow:dense;gap:2rem;display:grid}#projects .projects-grid .project-card{background:var(--bg-card);backdrop-filter:blur(var(--blur-amount));border:1px solid var(--border-color);border-radius:1.5rem;flex-direction:column;transition:all .3s cubic-bezier(.4,0,.2,1);animation:.6s ease-out fadeIn;display:flex;overflow:hidden}#projects .projects-grid .project-card.is-hidden{display:none}@media (hover:hover){#projects .projects-grid .project-card:hover{box-shadow:0 20px 60px var(--shadow-color);border-color:var(--secondary-color);transform:translateY(-8px)}}#projects .projects-grid .project-card .project-image{position:relative;overflow:hidden}#projects .projects-grid .project-card .project-image img{object-fit:cover;border-radius:0;width:100%;height:200px;transition:transform .3s}#projects .projects-grid .project-card .project-info{flex-direction:column;flex-grow:1;gap:.25rem;padding:1.5rem;display:flex;container-type:inline-size}#projects .projects-grid .project-card .project-info .project-card-header{justify-content:space-between;align-items:center;gap:.75rem;margin-block-end:.25rem;display:flex}#projects .projects-grid .project-card .project-info .project-card-header h3{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:0;margin:0;font-size:1.5rem;font-weight:600;overflow:hidden}#projects .projects-grid .project-card .project-info .project-card-link{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;flex-shrink:1;justify-content:flex-end;align-items:center;gap:.35em;margin-inline-start:auto;font-size:.8125rem;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}@media (hover:hover){#projects .projects-grid .project-card .project-info .project-card-link:hover{color:var(--primary-color)}}#projects .projects-grid .project-card .project-info .project-card-link.is-disabled{cursor:default;opacity:.65}@container (width<24rem){#projects .projects-grid .project-card .project-info .project-card-header{align-items:flex-start;gap:.5rem}#projects .projects-grid .project-card .project-info .project-card-header h3{white-space:normal;text-overflow:clip;overflow-wrap:anywhere;overflow:visible}#projects .projects-grid .project-card .project-info .project-card-link{flex:none;margin-block-start:.6rem;font-size:1.125rem}#projects .projects-grid .project-card .project-info .project-card-link span{display:none}#projects .projects-grid .project-card .project-info .project-card-link .icon{width:1.2rem;height:1.2rem}}#projects .projects-grid .project-card .project-info .project-tags{flex-wrap:wrap;gap:.75rem;margin-block:0 1rem;margin-inline-start:.125rem;display:flex}#projects .projects-grid .project-card .project-info .project-tags .tag{background:rgba(var(--primary-color), .1);color:var(--primary-color);border-radius:20px;font-size:.875rem;font-weight:500}#projects .projects-grid .project-card .project-info .project-summary{color:var(--text-secondary);margin:0 0 1rem;line-height:1.6}#projects .projects-grid .project-card .project-info .collaborators{flex-wrap:wrap;align-items:center;gap:.5rem;margin-block-start:auto;font-size:.875rem;display:flex}#projects .projects-grid .project-card .project-info .collaborators .collab-label{color:var(--text-muted);font-weight:500}#projects .projects-grid .project-card .project-info .collaborators .collaborator{background:var(--bg-glass);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:15px;padding:.25rem .5rem;text-decoration:none;transition:all .3s}@media (hover:hover){#projects .projects-grid .project-card .project-info .collaborators .collaborator:hover{color:var(--primary-color);border-color:var(--primary-color)}.project-card:hover .project-image img{transform:scale(1.05)}}.project-card.is-expanded .project-image img{transform:none}.project-card.has-opened-details{animation:none!important}.project-summary-area{cursor:pointer;flex-direction:column;flex:1;display:flex}.project-summary-area:focus-visible{outline:2px solid var(--primary-color);outline-offset:-4px}#projects .projects-grid .project-card.is-expanded{cursor:default;background:linear-gradient(135deg,#131c2ffa,#0c1220fa);border-color:#7d63f1d9;grid-column:1/-1;grid-template-columns:minmax(18rem,.78fr) minmax(0,1.22fr);align-items:stretch;min-height:34rem;display:grid;box-shadow:0 30px 80px #00000080;transform:none!important}#projects .projects-grid .project-card.is-expanded .project-summary-area{cursor:default;background:linear-gradient(#080e1c1f,#080e1cad);min-width:0}#projects .projects-grid .project-card.is-expanded .project-card-link,#projects .projects-grid .project-card.is-expanded .project-tags,#projects .projects-grid .project-card.is-expanded .collaborators{display:none}#projects .projects-grid .project-card.is-expanded .project-image{flex:auto;min-height:22rem}#projects .projects-grid .project-card.is-expanded .project-image img{aspect-ratio:auto;object-fit:cover;height:100%;min-height:22rem}#projects .projects-grid .project-card.is-expanded .project-info{background:linear-gradient(#1b263d85,#10192be6);flex-grow:0;gap:.75rem;padding:2rem 2.5rem 2.25rem}#projects .projects-grid .project-card.is-expanded .project-info .project-card-header{margin-block-end:.25rem;display:block}#projects .projects-grid .project-card.is-expanded .project-info .project-card-header h3{white-space:normal;text-overflow:clip;font-size:clamp(1.55rem,2.35vw,2.1rem);line-height:1.1;overflow:visible}#projects .projects-grid .project-card.is-expanded .project-info .project-summary{color:var(--text-secondary);margin:0;font-size:1.05rem;line-height:1.65}@media (width<=50rem){#projects .projects-grid .project-card.is-expanded{flex-direction:column;min-height:0;display:flex}#projects .projects-grid .project-card.is-expanded .project-image{flex:none;min-height:0}#projects .projects-grid .project-card.is-expanded .project-image img{height:min(65vw,22rem);min-height:0}#projects .projects-grid .project-card.is-expanded .project-info{padding:1.5rem 1.5rem 1.75rem}}.img-expanded,.project-card.is-expanded .img-default{display:none}.project-card.is-expanded .img-expanded{display:block}.project-card .project-details-area{display:none}.project-card.is-expanded .project-details-area{background:linear-gradient(145deg,#172237eb,#0d1525fa);border-left:1px solid #94a3b833;flex-direction:column;min-width:0;padding:2.75rem 3rem 2.25rem;display:flex;position:relative;overflow:hidden}.project-details-area .close-details-btn{z-index:10;width:2.75rem;height:2.75rem;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;place-content:center;padding:0;font-size:2.5rem;font-weight:300;line-height:1;transition:background .22s,border-color .22s,color .22s,transform .22s;display:grid;position:absolute;top:1.35rem;right:1.5rem}@media (hover:hover){.project-details-area .close-details-btn:hover{color:var(--text-primary);background:#ffffff0f;border-color:#ffffff1f;transform:rotate(90deg)}}.project-details-area .close-details-btn:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.project-details-area .details-content{flex-direction:column;gap:1.35rem;min-width:0;height:100%;display:flex}.project-details-area .details-title{max-width:47rem;color:var(--text-primary);letter-spacing:-.025em;margin:-.15rem 0 0;padding-right:3rem;font-size:clamp(1.8rem,2.8vw,2.6rem);font-weight:700;line-height:1.16}.project-details-area .details-description{max-width:58rem;color:var(--text-secondary);font-size:clamp(1rem,1.35vw,1.12rem);line-height:1.72}.project-details-area .details-description p{margin:0 0 1rem}.project-details-area .details-description p:last-child{margin-bottom:0}.project-details-area .details-description p:first-child{color:#d9dde7;font-size:1.05em;line-height:1.58}.project-details-area .details-description strong{color:var(--text-primary);font-weight:600}.project-details-area .details-description ul{margin:0 0 1rem;padding-left:1.35rem}.project-details-area .details-description li+li{margin-top:.35rem}.project-details-area .details-meta{border-top:1px solid #94a3b838;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:2rem;margin-top:auto;padding-top:1.45rem;display:grid}.project-details-area .details-tech,.project-details-area .details-team{min-width:0}.project-details-area h4{color:var(--text-primary);letter-spacing:.14em;white-space:nowrap;align-items:center;gap:.85rem;margin:0 0 .9rem;font-size:.92rem;font-weight:700;line-height:1.2;display:flex}.project-details-area .tags,.project-details-area .team{flex-wrap:wrap;gap:.55rem;display:flex}.project-details-area .tag{color:var(--primary-color);background:#00d4aa12;border:1px solid #00d4aa40;border-radius:999px;padding:.48rem .9rem;font-size:.9rem;font-weight:600;line-height:1.2}.project-details-area .team-member{color:var(--text-secondary);background:#ffffff0b;border:1px solid #94a3b847;border-radius:999px;padding:.48rem .9rem;font-size:.9rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background .22s,border-color .22s,color .22s}@media (hover:hover){.project-details-area a.team-member:hover{border-color:var(--primary-color);color:var(--primary-color);background:#00d4aa14}}.project-details-area .details-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:.1rem;display:grid}.project-details-area .action-btn:only-child{grid-column:1/-1}.project-details-area .action-btn{min-width:0;min-height:4.5rem;color:var(--text-primary);text-align:center;backdrop-filter:blur(6px);cursor:pointer;background:#0b121f33;border:1px solid #94a3b84d;border-radius:1rem;justify-content:center;align-items:center;gap:.7rem;padding:.9rem 1.25rem;font-weight:700;text-decoration:none;transition:background .22s,border-color .22s,box-shadow .22s,transform .22s;display:inline-flex}.project-details-area .action-btn .icon{width:1.35rem;height:1.35rem}@media (hover:hover){.project-details-area .action-btn:hover{border-color:var(--secondary-color);transform:translateY(-3px);box-shadow:0 12px 25px #0000002e}}.project-details-area .action-btn.is-disabled{cursor:not-allowed;opacity:.75;pointer-events:none;background:#0f172a59;border-style:dashed;border-color:#ffffff26}.project-details-area .action-btn span{font-size:1rem}@media (width<=50rem){.project-card.is-expanded .project-details-area{border-top:1px solid #94a3b833;border-left:none;padding:2.25rem 1.5rem 1.5rem}.project-details-area .details-meta{grid-template-columns:1fr;gap:1.35rem}.project-details-area .details-actions{grid-template-columns:1fr}}@media (width<=32rem){#projects .projects-grid .project-card.is-expanded .project-image img{height:13rem}.project-card.is-expanded .project-details-area{padding-inline:1.15rem}.project-details-area .details-title{padding-right:2rem;font-size:1.7rem}.project-details-area h4{letter-spacing:.1em;font-size:.82rem}}@media (width<40rem){body.project-detail-open{overflow:hidden}.project-card.is-mobile-detail{--mobile-project-image-height:clamp(14rem, 38dvh, 24rem);--mobile-project-image-start-height:clamp(14rem, 38dvh, 24rem);--mobile-project-title-lift:0px;--mobile-project-title-scale:1;z-index:1000;max-height:none;padding:0 0 env(safe-area-inset-bottom);backdrop-filter:none;box-shadow:none;overscroll-behavior:contain;scroll-snap-align:none;scrollbar-width:none;touch-action:pan-y;transform-origin:0 0;-webkit-overflow-scrolling:touch;background:#0c1423;border:0;border-radius:0;flex-direction:column;margin:0;transition:none;animation:none;display:flex;overflow:hidden auto;width:100vw!important;height:100dvh!important;position:fixed!important;inset:0!important}.project-card.is-mobile-detail::-webkit-scrollbar{display:none}.project-card.is-mobile-detail .project-summary-area{z-index:1001;width:100%;height:var(--mobile-project-image-height);cursor:default;pointer-events:none;background:#090f1b;min-width:0;display:block;position:fixed;inset:0 0 auto}.project-card.is-mobile-detail .project-image{will-change:height;background:#090f1b;height:100%;min-height:0}.project-card.is-mobile-detail .project-image:after{content:"";pointer-events:none;background:linear-gradient(#0000,#0c1423e0);height:5rem;position:absolute;inset:auto 0 0}.project-card.is-mobile-detail .project-image img{object-fit:cover;border-radius:0;width:100%;height:100%;min-height:0;display:block}.project-card.is-mobile-detail .project-image .img-default{display:none}.project-card.is-mobile-detail .project-image .img-expanded{display:block}.project-card.is-mobile-detail .project-info{display:none}.project-card.is-mobile-detail .project-details-area{margin-top:var(--mobile-project-image-start-height);padding:1.75rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom));background:radial-gradient(circle at 100% 0,#7d63f121,#0000 17rem),linear-gradient(#0c1423,#0a111e);border:0;flex:1 0 auto;display:flex;overflow:visible}.project-card.is-mobile-detail .close-details-btn{top:max(.85rem, env(safe-area-inset-top));z-index:1003;color:#fff;backdrop-filter:blur(14px);background:#080e19c2;border-color:#fff3;width:3rem;height:3rem;position:fixed;right:.9rem;box-shadow:0 .6rem 1.8rem #00000047}.project-card.is-mobile-detail .details-content{gap:1.5rem;height:auto}.project-card.is-mobile-detail .details-title{top:calc(max(.85rem, env(safe-area-inset-top)) + 2.75rem);z-index:1002;color:#fff;text-shadow:0 .15rem .7rem #000000c7;width:fit-content;max-width:calc(100% - 4.5rem);transform:translateY(calc(-1 * var(--mobile-project-title-lift))) scale(var(--mobile-project-title-scale));transform-origin:0 0;will-change:transform;padding:0;font-size:clamp(1.8rem,8vw,2.45rem);line-height:1.08;position:sticky}.project-card.is-mobile-detail .details-description{font-size:1rem;line-height:1.72}.project-card.is-mobile-detail .details-meta{grid-template-columns:1fr;gap:1.4rem;margin-top:.25rem;padding-top:1.5rem}.project-card.is-mobile-detail .details-actions{grid-template-columns:1fr;padding-bottom:.25rem}}html.project-detail-transition{view-transition-name:none}html.project-detail-transition::view-transition-group(*){animation-duration:.38s;animation-timing-function:cubic-bezier(.22,1,.36,1)}html.project-detail-transition::view-transition-old(*){mix-blend-mode:normal;animation:.13s ease-out both mobile-project-layer-out}html.project-detail-transition::view-transition-new(*){mix-blend-mode:normal;animation:.24s ease-out 60ms both mobile-project-layer-in}@keyframes mobile-project-layer-out{to{opacity:0}}@keyframes mobile-project-layer-in{0%{opacity:0}}.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,350px),1fr));gap:2rem;width:100%;padding:0;list-style-type:none;display:grid}#about-me{--about-column-gap:3rem;--about-media-track:15rem}#about-me p{color:var(--text-secondary);font-size:1.125rem}#about-me p:first-child{margin-block-start:0}#about-me .about-copy{max-width:52rem}#about-me .about-copy p:last-child{margin-bottom:0}@container (width>=58rem){#about-me .about-copy{columns:2;column-gap:var(--about-column-gap);max-width:none}#about-me .about-copy p{break-inside:avoid;margin-block:0 1.5rem}.about-subsection-tech .subsection-paragraphs{columns:2;column-gap:var(--about-column-gap);column-fill:balance}.about-subsection-tech .subsection-paragraphs>p{margin-block:0 1.5rem}}.about-intro{grid-template-columns:minmax(0, 1fr) var(--about-media-track);gap:2rem var(--about-column-gap);align-items:start;display:grid}.about-intro img,.community-photo{filter:grayscale(20%);border:1px solid #ffffff1f;transition:filter .3s;display:block;box-shadow:0 1.5rem 3rem #0000003d}@media (hover:hover){.about-intro img:hover,.community-photo:hover{filter:grayscale(0%)}}.about-portrait{aspect-ratio:3/4;object-fit:cover;object-position:right;width:100%}.community-photo{aspect-ratio:auto;object-fit:contain;object-position:center;width:100%;height:auto}.about-subsections{margin-top:4rem}.about-subsection{gap:2rem var(--about-column-gap);grid-template-columns:minmax(0,1fr) minmax(16rem,.72fr);align-items:start;padding:0;display:grid}.about-subsection+.about-subsection{margin-block-start:4rem}.about-subsection-tech{grid-template-columns:minmax(0,1fr);row-gap:0}.about-subsection-community{grid-template-rows:auto auto;row-gap:0}.about-subsection-community h3{grid-area:1/1}.about-subsection-community .subsection-copy{grid-area:2/1}.about-subsection-community .community-photo{grid-area:2/2}@container (width>=58rem){#about-me .about-intro,#about-me .about-subsection{grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) var(--about-media-track);column-gap:var(--about-column-gap)}#about-me .about-intro .about-copy{grid-column:1/span 2}#about-me .about-intro .about-portrait{grid-column:3}#about-me .about-subsection-tech{row-gap:0}#about-me .about-subsection-tech h3{grid-area:1/1/auto/-1}#about-me .about-subsection-tech .subsection-paragraphs{grid-area:2/1/auto/span 2}#about-me .about-subsection-tech .path-actions{column-gap:var(--about-column-gap);grid-area:3/1/auto/span 2;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}#about-me .about-subsection-tech .path-primary-action{width:100%}#about-me .about-subsection-tech .path-links{justify-content:flex-start}#about-me .about-subsection-community .community-photo{grid-column:2/-1}}.subsection-copy{max-width:52rem}.about-subsection h3{max-width:40rem;margin:0 0 .75rem;font-size:clamp(1.35rem,2.5vw,1.75rem);line-height:1.2}.about-subsection .subsection-copy>p{max-width:48rem}.path-primary-action{color:#b8fff1;view-transition-name:technology-portal;background:#00d4aa24;border:1px solid #00d4aa6b;border-radius:.85rem;justify-content:space-between;align-items:center;gap:.75rem;width:fit-content;max-width:100%;min-height:3.25rem;margin-top:0;padding:.65rem .85rem;font-size:.92rem;font-weight:650;text-decoration:none;transition:background .22s,border-color .22s,transform .22s;display:flex}.path-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;scroll-margin-top:clamp(8rem,30svh,15rem);display:flex}.path-primary-action .icon,.path-text-link .icon{transition:transform .22s}.path-links{gap:1rem;display:flex}.path-links a,.path-text-link{color:var(--text-secondary);align-items:center;gap:.55rem;font-weight:650;text-decoration:none;display:inline-flex}.path-links a{border-radius:.75rem;padding:.55rem .75rem}.path-links .icon{width:1.2rem;height:1.2rem}.path-text-link{width:fit-content;color:var(--text-primary);margin-top:1.25rem}@media (hover:hover){.path-primary-action:hover{background:#00d4aa38;border-color:#00d4aa9e;transform:translateY(-1px)}.path-primary-action:hover .icon,.path-text-link:hover .icon{transform:translate(.25rem)}.path-links a:hover,.path-text-link:hover{color:var(--primary-color);background:var(--bg-glass)}}@container (width<=49.999rem){#about-me .about-intro{grid-template-columns:1fr;gap:1.5rem}#about-me .about-portrait{width:min(68%,14rem)}#about-me .about-subsection{grid-template-columns:1fr;gap:1.5rem}#about-me .about-subsection-tech{row-gap:0}#about-me .about-subsection+.about-subsection{margin-block-start:4.5rem}#about-me .community-photo{grid-area:3/1;width:100%}}@container (width<=30rem){#about-me .community-photo{width:100%}}@media (width<=30rem){.path-links{flex-wrap:wrap}}#skills .skills-intro,#achievements .skills-intro{max-width:600px;margin:0 0 2rem}#skills .skills-intro p,#achievements .skills-intro p{color:var(--text-secondary);margin:0;font-size:1.125rem}#skills .grid,#achievements .grid{--grid-lanes-polyfill:1;display:grid-lanes;grid-template-columns:repeat(2,1fr);gap:3rem}@media (width<=45rem){#skills .grid,#achievements .grid{grid-template-columns:100%}}.technology-page .inner-container-content{padding-block-end:4rem}#skills>h2{letter-spacing:-.02em;font-size:clamp(1.75rem,4vw,2.25rem)}#skills .technology-sections{display:block}#skills .technology-section{container-type:inline-size}#skills .technology-section+.technology-section{margin-top:4rem}#skills .technology-section-heading{max-width:54rem;margin-bottom:1.5rem}#skills .technology-section-heading h3{color:var(--text-primary);letter-spacing:-.025em;margin:0 0 .65rem;font-size:clamp(1.45rem,4cqi,2.1rem);font-weight:650;line-height:1.15}#skills .technology-section-heading p{max-width:48rem;color:var(--text-secondary);margin:0;font-size:1rem;line-height:1.65}#skills .technology-section-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1.5rem;width:100%;padding:0;list-style:none;display:grid}@container (width<45rem){#skills .technology-section-grid{grid-template-columns:minmax(0,1fr)}}.technology-hero{view-transition-name:technology-portal}.site-hero .hero-topline{align-items:center;width:100%;padding-block-start:.75rem;display:flex}.site-hero .back-link{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.9rem;text-decoration:none;display:inline-flex}.site-hero .back-link .icon{transition:transform .22s;transform:rotate(180deg)}.site-hero .back-link:focus-visible{outline:2px solid var(--primary-color);outline-offset:.35rem;border-radius:.25rem}.technology-hero .hero-content{width:100%;padding-block:1.5rem 0}@container (width>=50rem){.technology-hero .hero-content{gap-inline:clamp(2rem, 4cqi, 2.75rem);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}.technology-hero .hero-text h1{margin-bottom:1.5rem}.technology-hero .hero-text .name{margin-block-end:calc(.5rem - .22em);padding-block-end:.04em;font-size:clamp(3rem,6vw,4.5rem);line-height:1.28}.technology-hero .hero-description{max-width:34rem}.technology-hero .hero-visual{justify-content:flex-end;align-items:center;display:flex}@container (width<50rem){.technology-hero .hero-visual{justify-content:center}}.technology-hero .hero-cta{align-items:center;gap:.65rem}.technology-hero .hero-cta .cta-primary{padding:.875rem 1.35rem}.technology-hero .hero-cta .cta-secondary{gap:.65rem;padding:.875rem 1.1rem}.technology-hero .hero-cta .cta-secondary .icon{opacity:.8;font-size:1.1em}.technology-hero .scroll-indicator{margin-block-end:1.5rem}@media (hover:hover){.site-hero .back-link:hover{color:var(--primary-color)}.site-hero .back-link:hover .icon{transform:translate(-.2rem)rotate(180deg)}}@media (width<=40rem){.technology-hero{min-height:calc(100svh - var(--page-margin) - 4.75rem);padding-inline:.5rem}.site-hero .hero-topline{justify-content:center;padding-block-start:0}.technology-hero .hero-content{gap:clamp(.75rem,2svh,1rem);margin-block:auto;padding-block:clamp(.5rem,1.5svh,.8rem) 0}.technology-hero .hero-text h1{margin-block-end:clamp(.55rem,1.5svh,.9rem)}.technology-hero .hero-text h1 .greeting{margin-block-end:.2rem;font-size:clamp(1.15rem,5.5vw,1.4rem)}.technology-hero .hero-text .name{margin-block-end:0;font-size:clamp(2.45rem,13vw,3.25rem);line-height:1.05}.technology-hero .hero-text h1 .subtitle{font-size:clamp(1rem,4.5vw,1.15rem)}.technology-hero .hero-description{max-width:28rem;font-size:clamp(.88rem,3.8vw,1rem);line-height:1.45}.technology-hero .hero-cta{gap:.5rem;padding-inline:.25rem}.technology-hero .hero-cta .cta-primary,.technology-hero .hero-cta .cta-secondary{flex:auto;min-width:max-content;padding:.7rem .9rem}.technology-hero .hero-cta .cta-primary{flex-basis:100%}.technology-hero .scroll-indicator{display:none}}.mobile-carousel-hint{display:none}@media (width<40rem){.mobile-carousel-hint{color:var(--text-muted);letter-spacing:.03em;opacity:.72;text-align:center;white-space:nowrap;justify-content:center;align-items:center;gap:.4rem;margin:-.65rem .35rem .6rem;font-size:.65rem;font-weight:600;line-height:1.2;display:flex}.mobile-carousel-hint:before,.mobile-carousel-hint:after{content:"";flex:0 0 1.25rem;height:1px}.mobile-carousel-hint:before{background:linear-gradient(90deg,#0000,#a1a1aa59)}.mobile-carousel-hint:after{background:linear-gradient(90deg,#a1a1aa59,#0000)}.mobile-carousel-hint .mobile-carousel-hint-arrows{color:inherit;letter-spacing:.08em;white-space:nowrap;font-size:.85rem;line-height:1}.mobile-carousel-hint .mobile-carousel-position{min-width:2.3rem;color:var(--text-secondary);font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap}.mobile-carousel-hint .mobile-carousel-hint-label{font:inherit;font-variant-numeric:normal}[data-mobile-carousel]{-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;touch-action:pan-x pan-y;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#a1a1aa80 transparent;margin-inline:0;padding:.2rem .2rem .75rem;overflow:auto hidden;gap:1rem!important;min-height:0!important;display:flex!important;position:static!important}[data-mobile-carousel]>*{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 min(84vw,25rem,100%);animation:none;width:auto!important;height:auto!important;position:static!important;inset:auto!important}[data-mobile-carousel]::-webkit-scrollbar{height:.35rem}[data-mobile-carousel]::-webkit-scrollbar-thumb{background:#a1a1aa80;border-radius:999px}#skills .technology-section-grid[data-mobile-carousel]>li{height:100%}}#contact form{background:var(--bg-card);backdrop-filter:blur(var(--blur-amount));border:1px solid var(--border-color);box-shadow:0 15px 40px var(--shadow-color);border-radius:2rem;gap:2rem;margin:0 auto;padding:3rem;display:grid}#contact form *{display:block}#contact form label{color:var(--text-primary);margin-bottom:.5rem;font-weight:500}#contact form input,#contact form textarea{border:1px solid var(--border-color);background:var(--bg-glass);backdrop-filter:blur(10px);width:100%;color:var(--text-primary);border-radius:1rem;padding:1rem 1.5rem;font-family:inherit;font-size:1rem;transition:all .3s}#contact form input::placeholder,#contact form textarea::placeholder{color:var(--text-muted)}#contact form input:focus,#contact form textarea:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #00d4aa1a}#contact form textarea{resize:vertical;min-height:8rem}#contact form button{all:unset;background:var(--secondary-color);color:#fff;text-align:center;cursor:pointer;border:1px solid var(--secondary-color);border-radius:12px;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}#contact form button:before{content:"";opacity:0;background:linear-gradient(135deg,#0000,#ffffff1a,#0000);transition:opacity .25s;position:absolute;inset:0}@media (hover:hover){#contact form button:hover{background:var(--secondary-color-vivid);border-color:var(--secondary-color-vivid);transform:translateY(-1px);box-shadow:0 4px 20px #7d63f140}#contact form button:hover:before{opacity:1}}#contact form button:focus-visible{outline:2px solid var(--secondary-color);outline-offset:2px}#contact form button:active{transform:translateY(0)}@container (width>30rem){#contact form{grid-template-columns:1fr 1fr}#contact form #message_container,#contact form button{grid-column:span 2}}@container (width<30rem){#contact form{padding:2rem}}footer{z-index:2;backdrop-filter:blur(var(--blur-amount));border-top:1px solid var(--border-color);background:linear-gradient(135deg,#0a0e1af2,#1e293bf2);padding:3rem 2rem;position:relative}footer h4{color:var(--text-primary);margin-bottom:1.5rem}footer .contact{margin-bottom:2rem}footer .contact a{color:var(--primary-color);text-decoration:none}@media (hover:hover){footer .contact a:hover{text-decoration:underline}}footer .footer-privacy-link{text-align:center;margin:0}footer .footer-privacy-link a{color:var(--text-secondary);text-decoration:none}footer .footer-privacy-link a:focus-visible{color:var(--primary-color);text-decoration:underline}@media (hover:hover){footer .footer-privacy-link a:hover{color:var(--primary-color);text-decoration:underline}}footer .links{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem 2rem;margin-bottom:3rem;display:grid}footer .links a{color:var(--text-secondary);border-radius:.5rem;padding:.5rem;text-decoration:none;transition:all .3s}footer .links a:focus-visible{color:var(--primary-color);background:var(--bg-glass)}@media (hover:hover){footer .links a:hover{color:var(--primary-color);background:var(--bg-glass)}}footer .copyright{text-align:center;color:var(--text-muted);border-top:1px solid var(--border-color);margin-top:3rem;padding-top:2rem}@container (width<40rem){footer{padding:2rem 1rem}}.pixel-art{image-rendering:pixelated}
