@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300&family=DM+Mono:wght@400;500&display=swap";html{scroll-behavior:smooth;font-size:16px}body{color:#f0f0ef;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0a0c;font-family:Plus Jakarta Sans,sans-serif;overflow-x:hidden}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}:root{--bg:#0a0a0c;--bg-2:#0f0f12;--surface:#141418;--surface-2:#1a1a20;--surface-3:#202028;--text:#f0f0ef;--text-soft:#9a9aa8;--text-muted:#5c5c6a;--line:#ffffff12;--line-strong:#ffffff1f;--blue:#2a6ef5;--blue-soft:#2a6ef51a;--blue-glow:#2a6ef538;--green:#3d7a5e;--shadow-sm:0 2px 8px #0006;--shadow-md:0 8px 32px #00000080;--shadow-lg:0 24px 64px #0009;--radius:14px;--radius-lg:18px;--pad-x:64px;--pad-y:80px}html.light-mode{--bg:#f4f4f8;--bg-2:#ececf1;--surface:#fff;--surface-2:#f7f7fb;--surface-3:#edecf3;--text:#0d0d14;--text-soft:#3a3a4c;--text-muted:#7a7a8c;--line:#00000012;--line-strong:#00000021;--shadow-sm:0 2px 8px #00000012;--shadow-md:0 8px 32px #0000001a;--shadow-lg:0 24px 64px #00000024}html.light-mode body:before{opacity:.18}.theme-transitioning *,.theme-transitioning :before,.theme-transitioning :after{transition:background-color .4s,color .35s,border-color .35s,box-shadow .4s!important}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,sans-serif;line-height:1.6;transition:background-color .4s,color .35s}a{color:inherit;text-decoration:none}body:before{content:"";pointer-events:none;z-index:0;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");position:fixed;inset:0}.bg-canvas{z-index:0;pointer-events:none;display:block;position:fixed;inset:0}.page{z-index:1;width:100%;position:relative}.navbar{z-index:100;padding:18px var(--pad-x);background:0 0;justify-content:space-between;align-items:center;transition:all .3s;display:flex;position:sticky;top:0}.navbar-scrolled{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-bottom:1px solid var(--line);background:#0a0a0ce0}html.light-mode .navbar-scrolled{background:#f4f4f8e0}.brand{letter-spacing:-.01em;color:var(--text);font-family:Plus Jakarta Sans,sans-serif;font-size:1rem;font-weight:800}.brand span{color:var(--blue)}.nav-links{align-items:center;gap:32px;display:flex}.nav-links a{color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;font-size:.78rem;font-weight:500;transition:color .2s;position:relative}.nav-links a:after{content:"";background:var(--blue);width:0;height:1px;transition:width .25s;position:absolute;bottom:-3px;left:0}.nav-links a:hover{color:var(--text)}.nav-links a:hover:after{width:100%}.theme-toggle{background:var(--surface);border:1px solid var(--line-strong);cursor:pointer;width:34px;height:34px;color:var(--text-soft);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:border-color .2s,background-color .2s,transform .15s;display:inline-flex}.theme-toggle:hover{border-color:var(--blue);color:var(--text);transform:rotate(18deg)}.theme-toggle-icon{font-size:1rem;line-height:1;display:block}.section{width:100%;padding:var(--pad-y) var(--pad-x)}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(24px)}.reveal.slide-left{transform:translate(-24px)}.reveal.slide-right{transform:translate(24px)}.reveal.visible{opacity:1;transform:none}.reveal-delay-1{transition-delay:80ms}.reveal-delay-2{transition-delay:.16s}.reveal-delay-3{transition-delay:.24s}.reveal-delay-4{transition-delay:.32s}.hero{grid-template-columns:1fr 400px;align-items:center;gap:48px;min-height:calc(100vh - 58px);padding-top:32px;display:grid;position:relative}.hero:after{content:"";pointer-events:none;z-index:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 280'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.03' stroke-width='1.5'%3E%3Ccircle cx='180' cy='200' r='72'/%3E%3Ccircle cx='180' cy='200' r='52'/%3E%3Ccircle cx='180' cy='200' r='10'/%3E%3Ccircle cx='620' cy='210' r='65'/%3E%3Ccircle cx='620' cy='210' r='47'/%3E%3Ccircle cx='620' cy='210' r='10'/%3E%3Cline x1='180' y1='128' x2='180' y2='272'/%3E%3Cline x1='108' y1='200' x2='252' y2='200'/%3E%3Cline x1='129' y1='149' x2='231' y2='251'/%3E%3Cline x1='231' y1='149' x2='129' y2='251'/%3E%3Cline x1='620' y1='145' x2='620' y2='275'/%3E%3Cline x1='555' y1='210' x2='685' y2='210'/%3E%3Cline x1='574' y1='164' x2='666' y2='256'/%3E%3Cline x1='666' y1='164' x2='574' y2='256'/%3E%3Cpath d='M240 200 L340 155'/%3E%3Cpath d='M240 196 C260 160 300 130 360 110 L480 100 L560 145 L620 145'/%3E%3Cpath d='M360 110 L340 82 L260 75 L240 110'/%3E%3Cpath d='M360 110 L430 90 L480 100'/%3E%3Cpath d='M560 145 C590 120 610 108 640 105 L660 120 L655 145'/%3E%3Cline x1='600' y1='145' x2='580' y2='210'/%3E%3Cline x1='640' y1='145' x2='620' y2='210'/%3E%3Cpath d='M300 175 C280 180 250 185 230 200'/%3E%3Crect x='340' y='140' width='100' height='70' rx='6'/%3E%3Cpath d='M650 100 L680 88 M650 100 L685 108'/%3E%3Cpath d='M380 108 C370 70 390 40 430 36 L470 38 C500 42 510 70 500 100'/%3E%3Ccircle cx='440' cy='24' r='22'/%3E%3C/g%3E%3C/svg%3E") 50%/contain no-repeat;width:560px;height:200px;position:absolute;bottom:60px;right:0}.hero-copy{z-index:1;position:relative}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--blue);align-items:center;gap:10px;margin-bottom:18px;font-family:DM Mono,monospace;font-size:.68rem;display:flex}.eyebrow:before{content:"";background:var(--blue);flex-shrink:0;width:24px;height:1px}.animated-name{letter-spacing:-.03em;color:var(--text);flex-wrap:wrap;margin:0 0 6px;font-family:Plus Jakarta Sans,sans-serif;font-size:clamp(3rem,6vw,5.5rem);font-weight:800;line-height:.97;display:flex}.name-letter{opacity:0;animation:.5s forwards letterUp;display:inline-block;transform:translateY(40px)}.hero-role{min-height:1.8em;color:var(--text-soft);margin:12px 0 18px;font-family:DM Mono,monospace;font-size:.9rem}.role-bracket{color:var(--text-muted)}.role-text{color:var(--blue);font-weight:500}.cursor-blink{color:var(--blue);animation:1s step-end infinite blink}.hero-summary{color:var(--text-soft);max-width:580px;margin:0 0 10px;font-size:.98rem;font-weight:300;line-height:1.85}.hero-summary.secondary{color:var(--text-muted);margin-bottom:28px;font-size:.91rem;font-style:italic}.hero-actions{flex-wrap:wrap;gap:10px;display:flex}.button{letter-spacing:.01em;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:11px 20px;font-family:Plus Jakarta Sans,sans-serif;font-size:.84rem;font-weight:600;transition:all .2s;display:inline-flex}.button.primary{background:var(--blue);color:#fff;box-shadow:0 0 22px var(--blue-glow)}.button.primary:hover{box-shadow:0 0 32px var(--blue-glow);background:#3d7ef6;transform:translateY(-1px)}.button.secondary{background:var(--surface);border:1px solid var(--line-strong);color:var(--text-soft)}.button.secondary:hover{border-color:var(--blue);color:var(--text);transform:translateY(-1px)}.hero-panel{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:1;padding:26px;position:relative}.hero-panel:before{content:"";background:linear-gradient(90deg, transparent, var(--blue), transparent);opacity:.5;height:1px;position:absolute;top:0;left:20px;right:20px}.hero-panel-label{text-transform:uppercase;letter-spacing:.15em;color:var(--blue);margin-bottom:16px;font-family:DM Mono,monospace;font-size:.64rem}.hero-panel ul{flex-direction:column;gap:9px;padding-left:0;list-style:none;display:flex}.hero-panel ul li{color:var(--text-soft);padding-left:14px;font-size:.84rem;font-weight:300;line-height:1.6;position:relative}.hero-panel ul li:before{content:"—";color:var(--text-muted);font-size:.72rem;position:absolute;left:0}.section-header{margin-bottom:40px}.section-kicker{letter-spacing:.2em;text-transform:uppercase;color:var(--green);align-items:center;gap:10px;margin-bottom:10px;font-family:DM Mono,monospace;font-size:.64rem;display:flex}.section-kicker:before{content:"";background:var(--green);flex-shrink:0;width:18px;height:1px}.section-header h2{letter-spacing:-.03em;color:var(--text);font-family:Plus Jakarta Sans,sans-serif;font-size:clamp(1.9rem,3.5vw,3rem);font-weight:800;line-height:1.02}.section-note{color:var(--text-muted);max-width:640px;margin-top:8px;font-size:.92rem;font-weight:300;line-height:1.8}.about-grid{grid-template-columns:280px 1fr;align-items:start;gap:48px;display:grid}.about-card{border-radius:var(--radius-lg);border:0px solid var(--line);min-height:340px;position:relative;overflow:hidden}.about-text p{color:var(--text-soft);margin-bottom:14px;font-size:.94rem;font-weight:300;line-height:1.9}.meta-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:24px;display:grid}.meta-item{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.meta-label{letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:5px;font-family:DM Mono,monospace;font-size:.58rem;display:block}.meta-value{color:var(--text);font-size:.84rem;font-weight:600}.projects-section{padding-left:0;padding-right:0;overflow:hidden}.projects-section-header{padding:0 var(--pad-x)}.carousel-wrapper{width:100%;padding-bottom:8px;position:relative;overflow:hidden}.carousel-track{scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:20px;padding:20px calc(50% - 36vw) 24px;display:flex;overflow-x:auto}.carousel-track::-webkit-scrollbar{display:none}.carousel-item{scroll-snap-align:center;cursor:pointer;opacity:.38;filter:blur(1.5px);border-radius:var(--radius-lg);outline:none;flex-shrink:0;width:72vw;max-width:1040px;transition:opacity .5s,transform .5s,filter .5s;transform:scale(.87)}.carousel-item.active{opacity:1;filter:blur();transform:scale(1)}.carousel-item:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.carousel-card{border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-lg);transition:border-color .4s,box-shadow .4s;overflow:hidden}.carousel-item.active .carousel-card{box-shadow:0 0 56px #2a6ef521, var(--shadow-lg);border-color:#2a6ef56b}.carousel-image-container{width:100%;height:clamp(280px,40vw,560px);transition:height .55s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.carousel-item.expanded .carousel-image-container{height:clamp(140px,18vw,240px)}.carousel-image-container img{object-fit:cover;opacity:.72;width:100%;height:100%;transition:transform .55s,opacity .4s;display:block}.carousel-item.active .carousel-image-container img{opacity:1}.carousel-item.active:hover .carousel-image-container img{transform:scale(1.04)}.carousel-image-overlay{background:linear-gradient(#0000 0%,#00000085 50%,#000000ed 100%);padding:clamp(20px,4vw,44px) clamp(22px,4vw,40px) clamp(18px,3vw,30px);transition:padding-bottom .55s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:0;right:0}.carousel-item.expanded .carousel-image-overlay{padding-bottom:clamp(12px,2vw,18px)}.carousel-period{letter-spacing:.13em;text-transform:uppercase;color:#ffffff7a;margin-bottom:5px;font-family:DM Mono,monospace;font-size:.58rem}.carousel-title{color:#fff;letter-spacing:-.025em;text-shadow:0 2px 18px #00000073;margin-bottom:5px;font-family:Plus Jakarta Sans,sans-serif;font-size:clamp(1.35rem,3vw,2.3rem);font-weight:800;line-height:1.08}.carousel-subtitle-label{letter-spacing:.1em;text-transform:uppercase;color:#ffffff80;font-family:DM Mono,monospace;font-size:.62rem}.carousel-click-hint{color:#ffffff59;letter-spacing:.06em;opacity:0;margin-top:8px;font-family:DM Mono,monospace;font-size:.58rem;transition:opacity .3s,transform .3s;transform:translateY(4px)}.carousel-item.active .carousel-click-hint{opacity:1;transform:none}.carousel-number{color:var(--blue);letter-spacing:.08em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:2;background:#0a0a0cb8;border:1px solid #2a6ef552;border-radius:5px;padding:3px 8px;font-family:DM Mono,monospace;font-size:.58rem;font-weight:500;position:absolute;top:14px;left:14px}.carousel-placeholder{background:linear-gradient(135deg, var(--surface-3) 0%, var(--surface-2) 100%);justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.carousel-placeholder-text{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);text-align:center;padding:0 24px;font-family:DM Mono,monospace;font-size:.62rem;line-height:1.7}.carousel-expand-panel{background:var(--surface);max-height:0;transition:max-height .55s cubic-bezier(.4,0,.2,1);overflow:hidden}.carousel-item.expanded .carousel-expand-panel{max-height:500px}.carousel-expand-inner{border-top:1px solid var(--line);padding:clamp(14px,2.2vw,22px) clamp(22px,4vw,36px) clamp(18px,2.8vw,26px)}.carousel-status-badge{color:#fa0;letter-spacing:.12em;text-transform:uppercase;background:#ffaa0017;border:1px solid #ffaa0047;border-radius:20px;align-items:center;gap:7px;margin-bottom:13px;padding:3px 10px 3px 8px;font-family:DM Mono,monospace;font-size:.59rem;font-weight:500;display:inline-flex}.carousel-status-dot{background:#fa0;border-radius:50%;flex-shrink:0;width:5px;height:5px;animation:1.8s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.carousel-expand-grid{grid-template-columns:1fr 210px;align-items:start;gap:22px;display:grid}.carousel-bullets{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.carousel-bullets li{color:var(--text-soft);padding-left:16px;font-size:.83rem;font-weight:300;line-height:1.62;position:relative}.carousel-bullets li:before{content:"▸";color:var(--blue);font-size:.6rem;position:absolute;top:3px;left:0}.carousel-expand-right{flex-direction:column;gap:13px;display:flex}.carousel-expand-tools{flex-wrap:wrap;gap:6px;display:flex}.carousel-expand-links{flex-direction:column;gap:7px;display:flex}@media (width<=640px){.carousel-expand-grid{grid-template-columns:1fr}.carousel-expand-links{flex-flow:wrap}}.carousel-nav{padding:20px var(--pad-x) 6px;justify-content:center;align-items:center;gap:14px;display:flex}.carousel-dots{align-items:center;gap:8px;display:flex}.carousel-dot{background:var(--text-muted);cursor:pointer;opacity:.45;border:none;border-radius:50%;width:6px;height:6px;padding:0;transition:all .35s cubic-bezier(.4,0,.2,1)}.carousel-dot.active{background:var(--blue);opacity:1;border-radius:3px;width:22px}.carousel-dot:hover:not(.active){opacity:.75;background:var(--text-soft)}.carousel-arrow{background:var(--surface);border:1px solid var(--line-strong);cursor:pointer;width:34px;height:34px;color:var(--text-soft);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.35rem;line-height:1;transition:border-color .2s,color .2s,box-shadow .2s,transform .15s;display:flex}.carousel-arrow:hover{border-color:var(--blue);color:var(--text);box-shadow:0 0 0 3px var(--blue-soft);transform:scale(1.08)}.tool-tag{background:var(--surface-3);border:1px solid var(--line);color:var(--text-muted);letter-spacing:.03em;border-radius:5px;align-items:center;padding:4px 10px;font-family:DM Mono,monospace;font-size:.63rem;display:inline-flex}.project-action-link{letter-spacing:.04em;color:#00ff9c;background:0 0;border:1px solid #00ff9c;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-width:132px;padding:7px 12px;font-family:DM Mono,monospace;font-size:.68rem;text-decoration:none;transition:color .2s,border-color .2s,background .2s,box-shadow .2s,transform .2s;display:inline-flex}.project-action-link:hover{background:#00ff9c1a;transform:translateY(-1px);box-shadow:0 0 18px #00ff9c29}.project-action-link-live{color:#00ff9c;border-color:#00ff9c}.project-action-link-live:hover{background:#00ff9c1a}.experience-list{gap:14px;display:grid}.experience-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:border-color .2s;overflow:hidden}.experience-item:hover{border-color:var(--line-strong)}.experience-image{width:100%;height:180px;overflow:hidden}.experience-image img{object-fit:cover;opacity:.7;width:100%;height:100%;transition:opacity .3s;display:block}.experience-item:hover .experience-image img{opacity:.9}.experience-body{padding:22px 26px}.experience-top{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:16px;margin-bottom:14px;display:flex}.experience-top h3{margin-bottom:3px;font-family:Plus Jakarta Sans,sans-serif;font-size:1rem;font-weight:700}.experience-company{color:var(--text-muted);font-size:.84rem}.experience-period{color:var(--text-muted);letter-spacing:.06em;white-space:nowrap;font-family:DM Mono,monospace;font-size:.66rem}.experience-item ul{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.experience-item ul li{color:var(--text-soft);padding-left:16px;font-size:.86rem;font-weight:300;line-height:1.7;position:relative}.experience-item ul li:before{content:"";background:var(--green);width:5px;height:1px;position:absolute;top:10px;left:0}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.skill-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px}.skill-group h3{color:var(--text);margin-bottom:12px;font-family:Plus Jakarta Sans,sans-serif;font-size:.86rem;font-weight:700}.skill-tags{flex-wrap:wrap;gap:7px;display:flex}.skill-tag{background:var(--surface-3);border:1px solid var(--line);color:var(--text-soft);border-radius:5px;align-items:center;padding:4px 10px;font-size:.75rem;display:inline-flex}.contact-layout{grid-template-columns:1fr 1.6fr;align-items:start;gap:48px;display:grid}.contact-info{flex-direction:column;display:flex}.contact-info-heading{color:var(--text);margin-bottom:8px;font-family:Plus Jakarta Sans,sans-serif;font-size:1rem;font-weight:700}.contact-info-note{color:var(--text-muted);margin-bottom:26px;font-size:.87rem;font-weight:300;line-height:1.75}.contact-links-list{flex-direction:column;gap:10px;display:flex}.contact-link{color:var(--text-soft);align-items:center;gap:12px;font-size:.87rem;transition:color .2s;display:flex}.contact-link:hover{color:var(--text)}.contact-link-icon{background:var(--surface-3);border:1px solid var(--line);width:34px;height:34px;color:var(--blue);border-radius:8px;flex-shrink:0;place-items:center;font-family:DM Mono,monospace;font-size:.68rem;transition:border-color .2s;display:grid}.contact-link:hover .contact-link-icon{border-color:var(--blue)}.contact-form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px;position:relative;overflow:hidden}.contact-form-card:before{content:"";background:linear-gradient(90deg, transparent, var(--blue), transparent);opacity:.5;height:1px;position:absolute;top:0;left:20px;right:20px}.form-row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.form-field{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.form-field:last-of-type{margin-bottom:0}.form-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-family:DM Mono,monospace;font-size:.6rem}.form-input,.form-textarea{background:var(--surface-3);border:1px solid var(--line);color:var(--text);border-radius:8px;outline:none;width:100%;padding:11px 13px;font-family:Plus Jakarta Sans,sans-serif;font-size:.87rem;transition:border-color .2s,box-shadow .2s}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-input:focus,.form-textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.form-input.field-error,.form-textarea.field-error{border-color:#c0392b8c;box-shadow:0 0 0 3px #c0392b14}.form-textarea{resize:vertical;min-height:110px;line-height:1.6}.form-error-msg{color:#e05a4a;margin-top:2px;font-size:.7rem}.form-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:20px;display:flex}.form-status{color:var(--text-muted);font-size:.8rem}.form-status.success{color:#4ade80}.form-status.error-state{color:#e05a4a}.submit-btn{background:var(--blue);color:#fff;cursor:pointer;box-shadow:0 0 18px var(--blue-glow);border:none;border-radius:8px;align-items:center;gap:8px;padding:11px 24px;font-family:Plus Jakarta Sans,sans-serif;font-size:.84rem;font-weight:600;transition:all .2s;display:inline-flex}.submit-btn:hover:not(:disabled){box-shadow:0 0 28px var(--blue-glow);background:#3d7ef6;transform:translateY(-1px)}.submit-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.footer{border-top:1px solid var(--line);padding:24px var(--pad-x);color:var(--text-muted);justify-content:space-between;align-items:center;font-size:.74rem;display:flex}@keyframes letterUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{50%{opacity:0}}@media (width<=1200px){:root{--pad-x:48px}.skills-grid{grid-template-columns:repeat(2,1fr)}.carousel-item{width:78vw}.carousel-track{padding:20px calc(50% - 39vw) 24px}}@media (width<=1000px){.hero,.about-grid{grid-template-columns:1fr}.hero:after{display:none}.meta-grid{grid-template-columns:repeat(2,1fr)}.contact-layout{grid-template-columns:1fr}.carousel-item{width:82vw}.carousel-track{padding:20px calc(50% - 41vw) 24px}}@media (width<=800px){:root{--pad-x:28px;--pad-y:64px}.carousel-item{width:88vw}.carousel-track{gap:14px;padding:16px calc(50% - 44vw) 22px}.carousel-image-container{height:clamp(200px,52vw,380px)}.carousel-item.expanded .carousel-image-container{height:140px}.skills-grid{grid-template-columns:1fr}}@media (width<=540px){:root{--pad-x:20px;--pad-y:56px}.form-row,.meta-grid{grid-template-columns:1fr}.hero-actions{flex-direction:column;align-items:flex-start}.hero{min-height:auto;padding-top:24px}.navbar{padding:14px var(--pad-x)}.nav-links{gap:12px}.footer{text-align:center;flex-direction:column;gap:6px}.carousel-item{width:92vw}.carousel-track{gap:12px;padding:12px calc(50% - 46vw) 20px}.carousel-image-container{height:clamp(180px,58vw,320px)}.carousel-item.expanded .carousel-image-container{height:120px}.carousel-title{font-size:1.3rem}}
