.hero-badge{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1));border-width:1px;border-color:#34d3994d;border-radius:9999px;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;display:inline-flex}.hero-title{font-size:3rem;font-weight:900;line-height:1.25}@media (min-width:768px){.hero-title{font-size:4.5rem;line-height:1}}.hero-gradient{background-image:linear-gradient(to right, var(--tw-gradient-stops));--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:#22c55e var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), #6ee7b7 var(--tw-gradient-via-position), var(--tw-gradient-to);color:#0000;-webkit-background-clip:text;background-clip:text}.btn-primary{background-image:linear-gradient(to right, var(--tw-gradient-stops));--tw-gradient-from:#6ee7b7 var(--tw-gradient-from-position);--tw-gradient-to:#22c55e var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));border-radius:1rem;padding:1rem 2rem;font-weight:600;transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn-primary:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-secondary{border-width:1px;border-color:#fff3;border-radius:1rem;padding:1rem 2rem;transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn-secondary:hover{--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity,1));--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.glass-card{--tw-backdrop-blur:blur(40px);-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);background-color:#ffffff0d;border-width:1px;border-color:#ffffff1a;border-radius:1.5rem}.project-card{cursor:pointer;background-color:#ffffff0d;border-width:1px;border-color:#ffffff1a;border-radius:1.5rem;flex-direction:column;align-self:start;transition:border-color .4s,background .4s,transform .4s;display:flex;overflow:hidden}.project-card:hover{border-color:#34d39959;transform:translateY(-4px)scale(1.05)}.project-content{opacity:0;max-height:0;transition:max-height .5s ease-in-out,opacity .3s ease-in-out,transform .3s ease-in-out;overflow:hidden;transform:translateY(-10px)}.project-content.open{opacity:1;min-height:250px;max-height:400px;transform:translateY(0)}.project-image{transition:transform .4s ease-in-out;transform:scale(1)}.project-card.open .project-image{transform:scale(1.05)}.project-card span{transition:transform .4s}.steam-link-btn{--tw-bg-opacity:1;background-color:rgb(8 27 62/var(--tw-bg-opacity,1));border-radius:9999px;margin-top:.25rem;padding:.5rem;font-weight:700;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.steam-link-btn:hover{--tw-bg-opacity:1;background-color:rgb(8 27 62/var(--tw-bg-opacity,1));--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.steam-link-btn:disabled{cursor:not-allowed;opacity:.5}.steam-link-btn:disabled:hover{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1));--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.skill-card{--tw-backdrop-blur:blur(24px);-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);background-color:#ffffff0d;border-width:1px;border-color:#ffffff1a;border-radius:1rem;padding:1.5rem;transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.skill-card:hover{background-color:#ffffff1a;border-color:#34d39966}.review-panel{justify-items:center;gap:2rem;display:grid;position:relative}.review-card{z-index:1;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff0f;border:1px solid #ffffff14;border-radius:2rem;width:min(100%,860px);padding:2.5rem;transition:transform .35s,border-color .35s,background .35s,opacity .35s;animation:.45s review-switch;position:relative;box-shadow:0 30px 80px #0000002e}.review-card:hover{background:#ffffff1a;border-color:#34d39959;transform:translateY(-8px)}@keyframes review-switch{0%{opacity:0;transform:translateY(18px)}60%{opacity:1;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.review-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.review-action-btn{color:#f8fafc;text-transform:uppercase;letter-spacing:.08em;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:9999px;padding:1rem 1.8rem;font-weight:700;transition:transform .25s,background .25s,border-color .25s}.review-action-btn:hover{background:#10b9811f;border-color:#34d39959;transform:translateY(-2px)}.review-dots{justify-content:center;align-items:center;gap:.75rem;display:flex}.review-dot{background:#ffffff14;border:1px solid #ffffff2e;border-radius:9999px;width:.85rem;height:.85rem;transition:transform .25s,background .25s,border-color .25s}.review-dot.active{background:#34d399bf;border-color:#34d399e6;width:1.1rem;height:1.1rem;transform:scale(1.05)}.review-tags{flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;display:flex}.review-chip{color:#c7f9d9;background:#10b9811f;border:1px solid #34d39929;border-radius:9999px;align-items:center;gap:.4rem;padding:.7rem 1rem;font-size:.8rem;font-weight:600;display:inline-flex}.review-chip:before{content:"★";color:#34d399;font-size:.85rem}.review-badge{color:#a7f3d0;letter-spacing:.06em;background:#10b9811f;border-radius:9999px;flex-direction:column;margin-bottom:1.5rem;padding:.55rem 1rem;font-size:.85rem;display:inline-flex}.review-meta{gap:.25rem;margin-top:1.5rem;display:grid}.review-highlight{color:#d1fae5;background:#10b9811f;border-radius:1.5rem;margin-top:1.5rem;padding:1rem 1.15rem;font-size:.95rem;font-weight:600}.cursor-glow{pointer-events:none;z-index:-10;filter:blur(12px);opacity:0;background:radial-gradient(90px 45px,#ffffff1f 0%,#ffffff0a 45%,#0000 75%);border-radius:50%;width:180px;height:90px;position:fixed;transform:translate(-50%,-50%);box-shadow:0 0 40px #ffffff05}.cursor-glow:after{content:"";background:radial-gradient(90px 45px,#ffffff14 0%,#ffffff05 40%,#0000 70%);border-radius:50%;position:absolute;inset:0}.site-divider{background:0 0;width:100%;height:1px;margin:6rem auto;position:relative;overflow:hidden}.site-divider:before,.site-divider:after{content:"";height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.site-divider:before{background:#ffffff0f;width:100%}.site-divider:after{background:linear-gradient(90deg,#0000,#34d399,#16a34a,#0000);width:1820px}.divider--compact{margin:1rem 0}.section-title{font-size:2.25rem;font-weight:700;line-height:2.5rem}@media (min-width:768px){.section-title{font-size:3.75rem;line-height:1}}.section-label{text-transform:uppercase;letter-spacing:.3em;--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1));font-size:.875rem;line-height:1.25rem}.form-input{outline-offset:2px;background-color:#0006;border-width:1px;border-color:#ffffff1a;border-radius:1rem;outline:2px solid #0000;width:100%;padding:1rem 1.25rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.form-input:focus{--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity,1))}.submit-btn{background-image:linear-gradient(to right, var(--tw-gradient-stops));--tw-gradient-from:#34d399 var(--tw-gradient-from-position);--tw-gradient-to:#16a34a var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));border-radius:1rem;margin-top:.5rem;margin-bottom:.5rem;padding:.75rem 1.5rem;font-weight:600;transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.submit-btn:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ambientGlow{0%{opacity:.5}50%{opacity:1}to{opacity:.6}}@keyframes ambientGlow2{0%{opacity:.3}50%{opacity:.9}to{opacity:.4}}@keyframes drift1{0%{transform:translate(0)}to{transform:translate(80px,-40px)}}@keyframes drift2{0%{transform:translate(0)}to{transform:translate(-60px,50px)}}.bg-orb{pointer-events:none;z-index:-18;filter:blur(100px);will-change:opacity;background:#34d39940;border-radius:50%;width:220px;height:220px;animation:10s ease-in-out infinite orbFade;position:fixed}.orb1{animation-delay:1s}.orb2{animation-delay:2s}.orb3{animation-delay:3s}.orb4{animation-delay:4s}@keyframes orbFade{0%{opacity:0}20%{opacity:.45}80%{opacity:.45}to{opacity:0}}@keyframes pulseGlow{0%{opacity:.3;transform:scale(.9)}50%{opacity:1;transform:scale(1.08)}to{opacity:.4;transform:scale(.95)}}
