@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";@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-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}:root{--main:#25572a;--main-strong:#17391b;--main-soft:#dceee0;--accent:#ce6c2f;--accent-strong:#a84f1f;--accent-soft:#f7e2d4;--bg:#fff;--bg-soft:#fbf8f2;--bg-deep:#f2ede3;--ink:#1b281c;--ink-muted:#3e513f;--line:#c7d4c7;--shadow:0 16px 44px #17391b1c;--ring:#25572a57;--nav-height:76px;--footer-height:62px;--font-sans:"Space Grotesk", sans-serif;--font-mono:"IBM Plex Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;min-height:100%}body{font-family:var(--font-sans);color:var(--ink);background:linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 100%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.startup-loader{z-index:1400;background:linear-gradient(#f5f8f4 0%,#edf4ec 100%);place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.startup-loader-panel{-webkit-backdrop-filter:blur(8px)saturate(120%);background:#ffffffb3;border:1px solid #25572a33;border-radius:18px;justify-items:center;gap:.72rem;width:min(420px,100vw - 2rem);padding:1rem 1rem 1.1rem;display:grid;position:relative;box-shadow:0 14px 36px #17391b24,inset 0 1px #ffffffb3}.startup-loader-art{justify-content:center;align-items:center;gap:.5rem;display:flex}.startup-loader-icon{-o-object-fit:contain;object-fit:contain;width:110px;height:auto}.startup-loader-icon-main{filter:drop-shadow(0 10px 16px #25572a33);animation:1.8s ease-in-out infinite loaderFloat}.startup-loader-icon-ghost{opacity:.36;width:72px}.startup-loader-icon-left{transform:translate(6px)scale(.94)}.startup-loader-icon-right{transform:translate(-6px)scale(.94)}.startup-loader-title{color:var(--main-strong);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;font-size:.72rem}.startup-loader-progress{background:#25572a1f;border-radius:999px;width:min(240px,82%);height:4px;overflow:hidden}.startup-loader-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--main), var(--accent));width:0;height:100%;animation:5s linear forwards loaderProgress;display:block}body.custom-cursor-enabled,body.custom-cursor-enabled *,body.custom-cursor-enabled :before,body.custom-cursor-enabled :after{cursor:none!important}@media (pointer:coarse),(hover:none){body.custom-cursor-enabled,body.custom-cursor-enabled *,body.custom-cursor-enabled :before,body.custom-cursor-enabled :after{cursor:auto!important}}body:before,body:after{content:"";pointer-events:none;z-index:-3;position:fixed}body:before{aspect-ratio:1;background:radial-gradient(circle,#ce6c2f42 0%,#ce6c2f14 48%,#0000 72%);border-radius:999px;width:min(46vw,560px);animation:18s ease-in-out infinite alternate skyDrift;inset:-12% -16% auto auto}body:after{aspect-ratio:1;background:radial-gradient(circle,#25572a2e 0%,#25572a0f 48%,#0000 75%);border-radius:999px;width:min(56vw,720px);animation:22s ease-in-out infinite alternate-reverse skyDrift;inset:auto auto -18% -12%}a{color:inherit;text-decoration:none}button,input,textarea{font-family:inherit}.focus-ring:focus-visible{outline:2px solid var(--main);outline-offset:2px;box-shadow:0 0 0 6px var(--ring)}.skip-link{z-index:140;color:var(--main-strong);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:#fff;border:1px solid #25572a66;border-radius:999px;padding:.62rem .9rem;font-size:.7rem;transition:top .22s;position:fixed;top:-120px;left:1rem}.skip-link:focus-visible{top:.7rem}.portfolio-shell{min-height:100vh;position:relative;overflow:clip}.portfolio-shell:before,.portfolio-shell:after{content:"";pointer-events:none;z-index:-2;position:absolute}.portfolio-shell:before{-webkit-backdrop-filter:blur(4px)saturate(120%);opacity:.95;will-change:transform;background:radial-gradient(circle at 34% 30%,#ffffff8a 0%,#ffffff2e 18%,#fff0 38%),radial-gradient(circle at 56% 60%,#ce6c2f8f 0%,#ce6c2f3d 56%,#ce6c2f14 74%,#0000 82%);border:1px solid #ffffff73;border-radius:50%;width:clamp(120px,16vw,230px);height:clamp(120px,16vw,230px);animation:14s ease-in-out infinite sunFloat;top:clamp(5rem,11vh,9rem);left:clamp(2rem,7vw,8rem);box-shadow:inset 0 1px #ffffff9e,inset 0 -14px 26px #a84f1f2e,0 12px 28px #ce6c2f33}.portfolio-shell:after{top:calc(var(--nav-height) + 1.5rem);opacity:.58;background:linear-gradient(100deg,#25572a1a,#ce6c2f2e);border-radius:180px;width:min(52vw,740px);height:260px;right:-3.2rem;transform:rotate(-6deg)}.top-nav{z-index:90;height:var(--nav-height);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe6;justify-content:space-between;align-items:center;padding:0 clamp(.95rem,3vw,2.8rem);display:flex;position:sticky;top:0}.brand{font-family:var(--font-mono);color:var(--main-strong);letter-spacing:.09em;text-transform:uppercase;font-size:.87rem;font-weight:600}.brand:after{content:"";background:linear-gradient(90deg, var(--accent), transparent);width:62%;height:2px;margin-top:4px;display:block}.nav-toggle{color:var(--main-strong);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(140deg,#ce6c2f1f,#25572a14);border:1px solid #25572a3d;border-radius:999px;padding:.45rem .9rem;font-size:.75rem;display:none}.top-nav-links{align-items:center;gap:.48rem;display:flex}.top-nav-links a{min-height:40px;color:var(--ink-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.46rem .82rem;font-size:.71rem;transition:color .24s,border-color .24s,background-color .24s,transform .24s;display:inline-flex;position:relative;overflow:hidden}.top-nav-links a:after{content:"";background:linear-gradient(90deg, var(--main), var(--accent));transform-origin:50%;border-radius:999px;height:2px;transition:transform .26s;position:absolute;bottom:6px;left:18%;right:18%;transform:scaleX(0)}.top-nav-links a:hover{color:var(--main-strong);transform:translateY(-1px)}.top-nav-links a:hover:after,.top-nav-links a:focus-visible:after,.top-nav-links a.active:after{transform:scaleX(1)}.top-nav-links a.active{color:var(--main-strong);background:linear-gradient(135deg,#25572a1f,#25572a0a);border-color:#25572a59}.top-nav-links .nav-hire{color:#8a3e18;background:linear-gradient(140deg,#ce6c2f33,#ce6c2f14);border-color:#ce6c2f61}.portfolio-rail{height:calc(100vh - var(--nav-height) - var(--footer-height));scroll-behavior:smooth;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;outline:none;display:flex;overflow:auto hidden}.portfolio-rail:focus-visible{box-shadow:inset 0 0 0 3px var(--ring)}.portfolio-rail::-webkit-scrollbar{height:12px}.portfolio-rail::-webkit-scrollbar-track{background:linear-gradient(90deg,#25572a14,#ce6c2f17);border-radius:999px}.portfolio-rail::-webkit-scrollbar-thumb{background:linear-gradient(95deg,#25572ad9,#ce6c2fd1);border:2px solid #ffffffbf;border-radius:999px;box-shadow:inset 0 0 0 1px #25572a29}.portfolio-rail::-webkit-scrollbar-thumb:hover{background:linear-gradient(95deg,#25572af2,#ce6c2feb)}.portfolio-panel{scroll-snap-align:start;flex:0 0 100vw;padding:clamp(1.8rem,4.2vw,3.35rem) clamp(1.05rem,3.2vw,3rem);overflow-y:auto}.portfolio-panel::-webkit-scrollbar{width:10px}.portfolio-panel::-webkit-scrollbar-track{background:#25572a0f;border-radius:999px}.portfolio-panel::-webkit-scrollbar-thumb{background:linear-gradient(#25572ab8,#ce6c2fa8);border:2px solid #ffffffb8;border-radius:999px}.portfolio-panel::-webkit-scrollbar-thumb:hover{background:linear-gradient(#25572ad6,#ce6c2fc7)}.portfolio-shell,.portfolio-rail,.portfolio-panel{scrollbar-width:thin;scrollbar-color:#25572ab8 #25572a14}.panel-inner{max-width:1200px;min-height:100%;box-shadow:var(--shadow);background:linear-gradient(#ffffffe6 0%,#fcf8f1f5 100%);border:1px solid #25572a29;border-radius:28px;flex-direction:column;justify-content:center;gap:1.08rem;margin:0 auto;padding:clamp(1.2rem,2.5vw,2.1rem);display:flex;position:relative;overflow:hidden}.panel-inner:before,.panel-inner:after{content:"";pointer-events:none;position:absolute}.panel-inner:before{background:radial-gradient(circle,#ce6c2f61,#ce6c2f1f 48%,#0000 68%);border-radius:50%;width:220px;height:220px;top:-70px;right:-38px}.panel-inner:after{background:linear-gradient(#0000 0%,#25572a0a 100%),repeating-linear-gradient(90deg,#25572a0d 0 11px,#0000 11px 22px);height:54px;animation:13s linear infinite stripeDrift;bottom:0;left:0;right:0}.hero-panel .panel-inner:before{background:radial-gradient(circle,#ce6c2f94,#ce6c2f33 47%,#0000 67%);width:290px;height:290px;animation:14s ease-in-out infinite sunFloat;top:-110px;right:-24px}.hero-panel .panel-inner{-webkit-backdrop-filter:blur(18px)saturate(145%);background:linear-gradient(132deg,#ffffff94 0%,#ffffff57 42%,#ffffff3d 100%);border-color:#ffffff85;box-shadow:0 22px 52px #10261429,inset 0 1px #ffffffb3,inset 0 -1px #25572a14}.kicker{font-family:var(--font-mono);letter-spacing:.11em;text-transform:uppercase;color:var(--main);font-size:.74rem}.panel-title,.hero-title{z-index:1;letter-spacing:-.02em;max-width:18ch;color:var(--main-strong);font-size:clamp(2rem,4.4vw,4.2rem);line-height:1.03;position:relative}.panel-copy{z-index:1;max-width:63ch;color:var(--ink-muted);font-size:1.01rem;line-height:1.72;position:relative}.btn{min-height:42px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.72rem 1.08rem;font-size:.73rem;transition:transform .22s,box-shadow .22s,border-color .22s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{color:#fff;background:linear-gradient(120deg, var(--main), #2f6d35);box-shadow:0 10px 24px #25572a45}.btn-ghost{color:#7f3a17;background:linear-gradient(130deg,#ce6c2f33,#ce6c2f14);border-color:#ce6c2f6b}.btn-subtle{color:var(--main-strong);background:#ffffffdb;border-color:#25572a57}.hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:start;gap:clamp(1rem,3vw,2.8rem);display:grid}.hero-actions{flex-wrap:wrap;gap:.65rem;margin-top:.6rem;display:flex}.hero-card{box-shadow:var(--shadow);background:linear-gradient(#ffffffdb,#f7f2e9f2);border:1px solid #25572a42;border-radius:20px;padding:1.15rem;animation:7s ease-in-out infinite cardFloat;position:relative}.hero-card:before{content:"";background:radial-gradient(circle,#ce6c2f73,#ce6c2f1a 58%,#0000 70%);border-radius:999px;width:70px;height:70px;position:absolute;top:18px;right:18px}.hero-card h2{color:var(--main-strong);margin-bottom:.8rem;font-size:1.1rem}.resume-list{gap:.72rem;margin-bottom:.95rem;list-style:none;display:grid}.resume-list li{border-bottom:1px dashed #25572a42;gap:.24rem;padding-bottom:.64rem;display:grid}.resume-list span{color:var(--ink-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;font-size:.66rem}.resume-list strong{color:var(--main-strong);font-size:.95rem;line-height:1.36}.hero-contact-mini{gap:.38rem;display:grid}.hero-contact-mini a{color:var(--main);font-family:var(--font-mono);word-break:break-word;font-size:.72rem}.hero-art-frame{background:var(--bg-deep);border-radius:2px;grid-column:1/-1;margin-top:.24rem;margin-bottom:3rem;overflow:hidden}.hero-art-image{aspect-ratio:1024/197;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;width:100%;height:auto;display:block}.about-grid,.skill-layout,.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(.85rem,2.4vw,2rem);display:grid}.about-timeline{box-shadow:var(--shadow);background:linear-gradient(#ffffffdb,#f6f0e6f0);border:1px solid #25572a38;border-radius:18px;gap:.94rem;padding:1.15rem;display:grid}.timeline-item{border-left:3px solid #25572a8c;gap:.3rem;padding-left:.8rem;display:grid}.timeline-item h3{color:var(--main-strong);font-size:1.01rem}.timeline-item p{color:var(--ink-muted);font-size:.91rem;line-height:1.58}.timeline-item p:first-child{color:#8f4a1c;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.67rem}.chip-list{flex-wrap:wrap;gap:.5rem;margin-top:.2rem;display:flex}.chip{color:#2f4832;font-family:var(--font-mono);background:linear-gradient(130deg,#25572a14,#ffffffe6);border:1px solid #25572a3d;border-radius:999px;padding:.38rem .66rem;font-size:.68rem}.skill-meter-list{gap:.82rem;margin-top:.55rem;display:grid}.skill-meter{gap:.44rem;display:grid}.skill-meter>div:first-child{color:var(--main-strong);font-family:var(--font-mono);letter-spacing:.04em;justify-content:space-between;align-items:center;font-size:.73rem;display:flex}.skill-meter>div:first-child strong{font-size:.77rem}.meter-track{background:#25572a21;border-radius:999px;width:100%;height:.54rem;overflow:hidden}.meter-fill{border-radius:inherit;background:linear-gradient(90deg, var(--main), var(--accent));transform-origin:0;height:100%;animation:1.05s cubic-bezier(.2,1,.3,1) both meterGrow}.skill-meter:first-child .meter-fill{animation-delay:40ms}.skill-meter:nth-child(2) .meter-fill{animation-delay:80ms}.skill-meter:nth-child(3) .meter-fill{animation-delay:.12s}.skill-meter:nth-child(4) .meter-fill{animation-delay:.16s}.skill-meter:nth-child(5) .meter-fill{animation-delay:.2s}.skill-meter:nth-child(6) .meter-fill{animation-delay:.24s}.skill-meter:nth-child(7) .meter-fill{animation-delay:.28s}.skill-meter:nth-child(8) .meter-fill{animation-delay:.32s}.spec-grid{align-content:center;gap:.74rem;display:grid}.spec-card{box-shadow:var(--shadow);background:linear-gradient(145deg,#ffffffdb,#f7f0e5f0);border:1px solid #25572a33;border-radius:16px;gap:.34rem;padding:.92rem;transition:transform .24s,border-color .24s;display:grid}.spec-card:hover{border-color:#ce6c2f70;transform:translateY(-2px)}.spec-card p:first-child{color:#8f4a1c;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.65rem}.spec-card h3{color:var(--main-strong);font-size:1rem}.spec-card p:last-child{color:var(--ink-muted);font-size:.9rem;line-height:1.56}.projects-carousel{gap:.82rem;margin-top:.72rem;display:grid}.projects-carousel-head{justify-content:space-between;align-items:center;gap:.7rem;display:flex}.projects-counter{color:var(--main);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem}.projects-controls{gap:.42rem;display:flex}.projects-nav{min-height:40px;color:var(--main-strong);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:#25572a14;border:1px solid #25572a47;border-radius:999px;padding:.44rem .82rem;font-size:.67rem;transition:transform .22s,background-color .22s,opacity .22s}.projects-nav:hover:not(:disabled),.projects-nav:focus-visible:not(:disabled){background:#25572a24;transform:translateY(-1px)}.projects-nav:disabled{opacity:.45;cursor:not-allowed}.projects-viewport{border-radius:18px;overflow:hidden}.projects-track{will-change:transform;transition:transform .42s cubic-bezier(.22,1,.36,1);display:flex}.projects-slide{width:100%;min-width:100%;padding:.02rem}.projects-dots{justify-content:center;align-items:center;gap:.42rem;display:flex}.project-dot{background:#25572a24;border:1px solid #25572a57;border-radius:999px;width:10px;height:10px;transition:transform .2s,background-color .2s,width .2s}.project-dot.active{background:linear-gradient(90deg, var(--main), var(--accent));border-color:#25572a9e;width:26px}.project-card{border:1px solid #25572a38;border-left:5px solid var(--project-color,var(--main));box-shadow:var(--shadow);background:linear-gradient(160deg,#ffffffe6,#f8f2e9f2);border-radius:16px;gap:.55rem;padding:1rem;transition:transform .25s,border-color .25s,box-shadow .25s;display:grid;position:relative;overflow:hidden}.project-card:before{content:"";background:radial-gradient(circle,#ce6c2f40,#0000 68%);border-radius:50%;width:170px;height:170px;position:absolute;inset:auto -40px -60px auto}.project-card:after{content:"";background:linear-gradient(90deg, var(--project-color,var(--main)), var(--accent));transform-origin:0;height:3px;transition:transform .28s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(.16)}.project-card:hover{border-color:#ce6c2f70;transform:translateY(-4px)scale(1.008);box-shadow:0 18px 40px #17391b29}.project-card:hover:after,.project-card:focus-within:after,.project-card:focus-visible:after{transform:scaleX(1)}.project-card:focus-within,.project-card:focus-visible{box-shadow:0 0 0 4px var(--ring), 0 18px 40px #17391b29;border-color:#25572a85}.project-card>p:first-child{color:#8f4a1c;width:fit-content;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:#ce6c2f21;border:1px solid #ce6c2f4d;border-radius:999px;padding:.26rem .58rem;font-size:.64rem}.project-card h3{color:var(--main-strong);font-size:1.07rem}.project-card>p:nth-of-type(2){color:var(--main);font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;font-size:.66rem}.project-card>p:nth-of-type(3){color:var(--ink-muted);font-size:.91rem;line-height:1.63}.project-stack{flex-wrap:wrap;gap:.42rem;display:flex}.tag{color:var(--main);font-family:var(--font-mono);background:#25572a14;border:1px solid #25572a3d;border-radius:999px;padding:.23rem .6rem;font-size:.67rem}.project-highlights{color:var(--ink-muted);gap:.31rem;margin-left:.95rem;font-size:.85rem;line-height:1.5;display:grid}.project-link{width:fit-content;color:var(--main-strong);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:#25572a1c;border:1px solid #25572a4d;border-radius:999px;align-items:center;gap:.35rem;padding:.42rem .74rem;font-size:.66rem;transition:transform .22s,background-color .22s;display:inline-flex}.project-link:after{content:"↗";transition:transform .22s}.project-link:hover,.project-link:focus-visible{background:#25572a29;transform:translateY(-1px)}.project-link:hover:after,.project-link:focus-visible:after{transform:translate(2px,-1px)}.contact-list{box-shadow:var(--shadow);background:linear-gradient(165deg,#ffffffe0,#f8f1e6f2);border:1px solid #25572a33;border-radius:17px;gap:.64rem;padding:1rem;display:grid}.contact-item{border-bottom:1px dashed #25572a38;gap:.18rem;padding-bottom:.5rem;display:grid}.contact-item:last-child{border-bottom:none;padding-bottom:0}.contact-item span{color:var(--ink-muted);font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;font-size:.66rem}.contact-item a,.contact-item strong{color:var(--main);font-size:.92rem}.contact-form{box-shadow:var(--shadow);background:linear-gradient(150deg,#ffffffe6,#f8f1e6f5);border:1px solid #25572a3d;border-radius:18px;gap:.56rem;padding:1rem;display:grid}.contact-form label{color:var(--ink-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.66rem}.contact-form input,.contact-form textarea{width:100%;min-height:44px;color:var(--ink);background:#fff;border:1px solid #25572a3d;border-radius:11px;padding:.72rem .78rem;font-size:.92rem}.contact-form textarea{resize:vertical;min-height:138px}.contact-form input:focus,.contact-form textarea:focus{box-shadow:0 0 0 4px var(--ring);border-color:#25572a80;outline:none}.form-error{color:#7a2f14;font-family:var(--font-mono);letter-spacing:.03em;background:#ce6c2f1c;border:1px solid #9c31154d;border-radius:9px;padding:.6rem .7rem;font-size:.68rem}.sent-card{box-shadow:var(--shadow);background:linear-gradient(145deg,#25572a1a,#fffffff5);border:1px solid #25572a4d;border-radius:18px;gap:.43rem;padding:1.2rem;display:grid}.sent-card svg{color:var(--main);font-size:1.54rem}.sent-card h3{color:var(--main-strong);font-size:1.06rem}.sent-card p{color:var(--ink-muted);font-size:.9rem;line-height:1.56}.site-footer{min-height:var(--footer-height);border-top:1px solid var(--line);background:#ffffffe6;justify-content:space-between;align-items:center;gap:.9rem;padding:.58rem clamp(.95rem,2.8vw,2.8rem);display:flex}.site-footer>div:first-child{gap:.05rem;display:grid}.site-footer>div:first-child strong{color:var(--main-strong);font-size:.79rem}.site-footer>div:first-child span,.site-footer p{color:var(--ink-muted);font-family:var(--font-mono);letter-spacing:.05em;font-size:.67rem}.footer-links{gap:.5rem;display:flex}.footer-links a{color:var(--main-strong);font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;background:#25572a14;border:1px solid #25572a42;border-radius:999px;padding:.32rem .66rem;font-size:.65rem;transition:transform .24s,background-color .24s}.footer-links a:hover{background:#ce6c2f24;transform:translateY(-1px)}.reveal{opacity:0;transition:opacity .72s,transform .72s;transform:translateY(20px)}.reveal.visible{opacity:1;transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1024px){.nav-toggle{justify-content:center;align-items:center;min-height:44px;display:inline-flex}.top-nav-links{top:calc(var(--nav-height) + .65rem);opacity:0;pointer-events:none;background:#fffffffa;border:1px solid #25572a38;border-radius:16px;gap:.44rem;padding:.95rem;transition:opacity .24s,transform .24s;display:grid;position:fixed;left:.95rem;right:.95rem;transform:translateY(-8px);box-shadow:0 20px 42px #17391b29}.top-nav-links.open{opacity:1;pointer-events:auto;transform:translateY(0)}.top-nav-links a{text-align:center;width:100%;min-height:44px;padding:.62rem .82rem}.portfolio-rail{height:auto;display:block;overflow:visible}.portfolio-panel{width:100%;min-height:auto;padding:4.5rem 1.1rem 3rem;overflow:visible}.panel-inner{border-radius:20px;min-height:auto}.hero-grid,.about-grid,.skill-layout,.contact-grid{grid-template-columns:1fr}.hero-art-frame{margin-bottom:2.85rem}.hero-art-image{min-height:118px}.projects-carousel{gap:.74rem}.projects-nav{min-height:42px}.site-footer{flex-direction:column;align-items:flex-start;padding-top:1rem;padding-bottom:1rem}}@media (width<=640px){.startup-loader-panel{border-radius:14px;width:min(360px,100vw - 1rem);padding:.86rem .82rem .92rem}.startup-loader-title{letter-spacing:.14em;font-size:.66rem}.startup-loader-icon{width:92px}.startup-loader-icon-ghost{width:56px}.startup-loader-progress{width:min(210px,80%)}.top-nav{padding-inline:.82rem}.panel-title,.hero-title{font-size:clamp(1.65rem,8.2vw,2.1rem)}.panel-copy{font-size:.94rem}.hero-actions{flex-direction:column;align-items:stretch}.hero-art-frame{margin-bottom:2.7rem}.hero-art-image{min-height:96px}.btn{width:100%}.site-footer p{line-height:1.5}.footer-links{flex-wrap:wrap}}@media (width<=412px){:root{--nav-height:70px;--footer-height:58px}.top-nav{padding-inline:.74rem}.nav-toggle{padding:.38rem .74rem;font-size:.7rem}.top-nav-links{top:calc(var(--nav-height) + .5rem);border-radius:14px;padding:.74rem;left:.8rem;right:.8rem}.top-nav-links a{letter-spacing:.07em;font-size:.69rem}.brand{letter-spacing:.07em;font-size:.78rem}.portfolio-panel{padding:3.95rem .78rem 2.3rem}.panel-inner{border-radius:16px;gap:.88rem;padding:.86rem}.panel-title,.hero-title{font-size:clamp(1.62rem,7vw,1.92rem);line-height:1.04}.panel-copy{font-size:.9rem;line-height:1.62}.hero-actions{gap:.5rem}.hero-art-frame{margin-bottom:2.45rem}.hero-art-image{min-height:90px}.btn{padding:.64rem .78rem}.projects-carousel{gap:.66rem}.projects-nav{min-height:38px;padding:.38rem .66rem;font-size:.63rem}.project-card{gap:.5rem;padding:.84rem}.project-highlights{font-size:.8rem;line-height:1.45}.tag{padding:.2rem .5rem;font-size:.63rem}}@media (width<=390px){.top-nav-links{padding:.74rem;left:.64rem;right:.64rem}.top-nav-links a{min-height:42px;padding:.54rem .58rem;font-size:.66rem}.projects-counter{font-size:.64rem}.projects-dots{gap:.34rem}.project-dot{width:9px;height:9px}.project-dot.active{width:22px}.kicker{letter-spacing:.09em;font-size:.62rem}.panel-title,.hero-title{font-size:clamp(1.54rem,8.1vw,1.82rem)}.panel-copy{font-size:.86rem;line-height:1.58}.hero-card:before{width:56px;height:56px}.hero-art-image{min-height:86px}.chip{padding:.32rem .52rem;font-size:.62rem}.project-link{padding:.37rem .6rem;font-size:.62rem}.footer-links{width:100%}.footer-links a{flex:calc(50% - .3rem);justify-content:center;font-size:.62rem}}@media (width<=360px){:root{--nav-height:68px}.top-nav{padding-inline:.62rem}.brand{letter-spacing:.06em;font-size:.68rem}.top-nav-links{top:calc(var(--nav-height) + .45rem);padding:.66rem;left:.58rem;right:.58rem}.projects-carousel-head{gap:.5rem}.projects-nav{min-height:36px;padding:.34rem .58rem;font-size:.6rem}.top-nav-links a{min-height:40px;padding:.5rem .52rem;font-size:.64rem}.panel-title,.hero-title{font-size:clamp(1.42rem,8.9vw,1.74rem);line-height:1.05}.panel-copy{font-size:.84rem}.btn{min-height:40px;padding:.62rem .74rem;font-size:.64rem}.hero-card{padding:.86rem}.hero-art-frame{margin-bottom:2.2rem}.hero-art-image{min-height:80px}.project-card{border-radius:14px;padding:.76rem}.tag{padding:.18rem .44rem;font-size:.6rem}.project-highlights{margin-left:.66rem;font-size:.77rem}.contact-form{gap:.48rem;padding:.78rem}.contact-form input,.contact-form textarea{font-size:.86rem}}@media (prefers-contrast:more){:root{--ink-muted:#2d3f2f;--line:#8ea08e;--ring:#17391b80}.panel-inner,.hero-card,.about-timeline,.spec-card,.project-card,.contact-list,.contact-form,.sent-card{border-width:2px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation:none!important}}@keyframes loaderFloat{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-4px)scale(1.01)}}@keyframes loaderProgress{0%{width:0}to{width:100%}}@keyframes meterGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes cardFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes stripeDrift{0%{background-position-x:0,0}to{background-position-x:0,56px}}@keyframes sunFloat{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}@keyframes skyDrift{0%,to{transform:translate(0)}50%{transform:translate(-14px,8px)}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
