@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&display=swap";.unity-game-section{display:flex;justify-content:center;align-items:center;min-height:90vh;padding:2rem}.unity-game-section #unity-container{width:90vw;max-width:960px;aspect-ratio:960/600}.unity-game-section #unity-canvas{width:100%;height:100%;background:#231f20}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Space Grotesk,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-background: #0a0a0a;--color-text-primary: #eaeaea;--color-text-secondary: #a0a0a0;--color-accent-primary: #771e08;--color-accent-hover: #ffffff;--color-border: rgba(255, 255, 255, .1);--color-card-background: rgba(255, 255, 255, .05);--color-glow: rgba(0, 242, 234, .4)}body[data-theme=light]{--color-background: #f4f7f9;--color-text-primary: #1c1c1e;--color-text-secondary: #5a5a5f;--color-accent-primary: #007aff;--color-accent-hover: #0056b3;--color-border: rgba(0, 0, 0, .1);--color-card-background: #ffffff;--color-glow: rgba(0, 122, 255, .3)}body{background-color:var(--color-background);color:var(--color-text-primary);transition:background-color .3s ease,color .3s ease}body.custom-cursor-active,body.custom-cursor-active a,body.custom-cursor-active button{cursor:none}main{overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:700}section{padding:100px 20px;max-width:1100px;margin:0 auto;border-bottom:1px solid var(--color-border)}.site-header{position:sticky;top:0;z-index:10;background-color:color-mix(in srgb,var(--color-background) 80%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border)}.site-header__wrapper{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:1.5rem 1.25rem}.site-header__logo{font-size:1.5rem;font-weight:700;text-decoration:none;color:var(--color-text-primary);transition:color .3s ease}.site-header__logo:hover{color:var(--color-accent-primary)}.site-header__actions{display:flex;align-items:center;gap:1rem}.site-header__nav a{text-decoration:none;color:var(--color-text-secondary);margin-left:2rem;font-weight:500;transition:color .3s ease}.site-header__nav a:hover{color:var(--color-text-primary)}.hero{min-height:calc(100vh - 90px);display:flex;align-items:center;border-bottom:none;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;left:var(--mouse-x, 50%);top:var(--mouse-y, 50%);width:350px;height:350px;background:radial-gradient(circle at center,color-mix(in srgb,var(--color-accent-primary) 15%,transparent) 0%,transparent 70%);transform:translate(-50%,-50%);transition:all .2s ease-out;z-index:0}.hero__content{position:relative;z-index:1}.hero__title{font-size:clamp(2.5rem,8vw,5rem);line-height:1.1;margin-bottom:1.5rem;background:linear-gradient(90deg,var(--color-text-primary),var(--color-text-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;min-height:140px}.hero__title--animated{color:var(--color-accent-primary);-webkit-text-fill-color:initial;background:none}.hero__subtitle{font-size:clamp(1rem,4vw,1.25rem);max-width:650px;margin-bottom:2.5rem;color:var(--color-text-secondary);line-height:1.6}.hero__cta-button{display:inline-block;background:transparent;color:var(--color-accent-primary);border:2px solid var(--color-accent-primary);padding:12px 35px;font-size:1rem;font-weight:500;text-decoration:none;border-radius:4px;transition:all .3s ease}.hero__cta-button:hover{background-color:var(--color-accent-primary);color:var(--color-background);box-shadow:0 0 25px var(--color-glow)}.about{opacity:0;transform:translateY(30px);transition:opacity .8s ease-out,transform .8s ease-out}.about.is-visible{opacity:1;transform:translateY(0)}.about__title{font-size:clamp(2rem,5vw,2.5rem);text-align:center;margin-bottom:4rem;position:relative;padding-bottom:1rem}.about__title:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:60px;height:3px;background-color:var(--accent-primary)}.about__content{display:grid;grid-template-columns:2fr 1fr;gap:3rem}.about__text p{font-size:1.1rem;line-height:1.7;color:var(--text-secondary);margin-bottom:1.5rem}.about__skills h3{font-size:1.2rem;color:var(--text-primary);margin-bottom:1.5rem;border-left:3px solid var(--accent-primary);padding-left:1rem}.about__skills ul{list-style:none;font-size:1rem;line-height:2;color:var(--text-secondary)}@media (max-width: 768px){.about__content{grid-template-columns:1fr;gap:2.5rem}}.portfolio{position:relative}.portfolio__header{text-align:center;margin-bottom:4rem;position:relative}.portfolio__title{font-size:clamp(2rem,5vw,2.5rem);padding-bottom:1rem;display:inline-block}.portfolio__connector{position:absolute;top:100%;left:50%;transform:translate(-50%);height:100px;width:100px}.portfolio__connector path{stroke-dasharray:400;stroke-dashoffset:400;transition:stroke-dashoffset 1.5s ease-out;transition-delay:.3s}.portfolio.is-visible .portfolio__connector path{stroke-dashoffset:0}.portfolio__title{font-size:clamp(2rem,5vw,2.5rem);text-align:center;margin-bottom:4rem;position:relative;padding-bottom:1rem}.portfolio__title:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:60px;height:3px;background-color:var(--accent-primary)}.portfolio__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem}.portfolio-card{opacity:0;transform:translateY(30px);transition:opacity .6s ease-out,transform .6s ease-out}.portfolio.is-visible .portfolio-card{opacity:1;transform:translateY(0)}.portfolio-card{background-color:#ffffff0d;border:1px solid var(--border-color);border-radius:8px;padding:2rem;display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease,background-color .3s ease}.portfolio-card:hover{transform:translateY(-8px);background-color:#ffffff14;box-shadow:0 0 30px #00f2ea33}.portfolio-card__title{font-size:1.3rem;color:var(--text-primary);margin-bottom:1rem}.portfolio-card__description{font-size:1rem;line-height:1.6;color:var(--text-secondary);flex-grow:1;margin-bottom:1.5rem}.portfolio-card__tags{margin-bottom:1.5rem;display:flex;flex-wrap:wrap;gap:.5rem}.portfolio-card__tags span{background-color:#00f2ea1a;color:var(--accent-primary);padding:.25rem .75rem;border-radius:15px;font-size:.8rem;font-weight:500}.portfolio-card__link{color:var(--text-primary);text-decoration:none;font-weight:500;transition:color .3s ease}.portfolio-card__link:hover{color:var(--accent-primary)}.contact{opacity:0;transform:translateY(30px);transition:opacity .8s ease-out,transform .8s ease-out}.contact.is-visible{opacity:1;transform:translateY(0)}.contact{text-align:center;border-bottom:none}.contact__title{font-size:clamp(2rem,5vw,2.5rem);margin-bottom:1.5rem}.contact__subtitle{font-size:1.1rem;color:var(--text-secondary);max-width:600px;margin:0 auto 2.5rem;line-height:1.7}.contact__button{display:inline-block;background:transparent;color:var(--accent-primary);border:2px solid var(--accent-primary);padding:12px 35px;font-size:1rem;font-weight:500;text-decoration:none;border-radius:4px;transition:all .3s ease;margin-bottom:3rem}.contact__button:hover{background-color:var(--accent-primary);color:var(--background-dark);box-shadow:0 0 25px #00f2ea80}.contact__socials{display:flex;justify-content:center;gap:2rem}.contact__socials a{color:var(--text-secondary);text-decoration:none;font-weight:500;transition:color .3s ease}.contact__socials a:hover{color:var(--accent-primary)}.footer{z-index:1;--footer-background: color-mix(in srgb, var(--color-accent-primary) 85%, var(--color-background));display:grid;position:relative;grid-area:footer;min-height:12rem;overflow:hidden}.bubbles{position:absolute;top:0;left:0;right:0;height:1rem;background:var(--footer-background);filter:url(#blob)}.bubbles .bubble{position:absolute;left:var(--position, 50%);background:var(--footer-background);border-radius:100%;animation:bubble-size var(--time, 4s) ease-in infinite var(--delay, 0s),bubble-move var(--time, 4s) ease-in infinite var(--delay, 0s);transform:translate(-50%,100%)}.content{z-index:2;display:grid;grid-template-columns:1fr auto;grid-gap:2rem;padding:2rem 4rem;background:var(--footer-background)}.content a,.content p{color:var(--color-text-primary);text-decoration:none;opacity:.8}.content a:hover{opacity:1;text-decoration:underline}.content b{color:var(--color-text-primary);opacity:1}.content p{margin:0;font-size:.85rem}.footer-links{display:flex;gap:3rem;flex-wrap:wrap}.footer-links>div{display:flex;flex-direction:column;gap:.5rem}.footer-credits{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;text-align:right}@keyframes bubble-size{0%,75%{width:var(--size, 4rem);height:var(--size, 4rem)}to{width:0rem;height:0rem}}@keyframes bubble-move{0%{bottom:-4rem}to{bottom:var(--distance, 10rem)}}@media (max-width: 768px){.content{grid-template-columns:1fr;justify-items:center;text-align:center;gap:2.5rem;padding:2rem 1.5rem}.footer-links{justify-content:center;gap:2rem}.footer-credits{align-items:center;text-align:center}}.custom-cursor{position:fixed;width:60px;height:60px;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s ease}.custom-cursor.is-visible{opacity:1}.custom-cursor img{width:100%;height:100%;transition:transform .3s ease}.custom-cursor.is-idle img{transform:rotate(-15deg)}.custom-cursor.is-link-hover{transform:translate(-50%,-50%) scale(1.5)}.custom-cursor.is-link-hover img{transform:scale(.66)}.custom-cursor.is-clicking{transform:translate(-50%,-50%) scale(.8);transition:transform .1s ease-out}.custom-cursor.is-clicking.is-link-hover{transform:translate(-50%,-50%) scale(1.2)}.interactive-3d-section{min-height:150vh;position:relative;display:flex;justify-content:center;align-items:center}.interactive-3d-section__title{position:relative;z-index:10;font-size:clamp(3rem,10vw,6rem);text-align:center;color:var(--text-primary)}.scene{position:absolute;width:300px;height:300px;perspective:1000px}.cube{width:100%;height:100%;position:relative;transform-style:preserve-3d}.face{position:absolute;width:300px;height:300px;border:3px solid var(--color-accent-primary);background-color:color-mix(in srgb,var(--color-accent-primary) 10%,transparent);box-shadow:0 0 50px var(--color-glow)}.front{transform:rotateY(0) translateZ(150px)}.back{transform:rotateY(180deg) translateZ(150px)}.right{transform:rotateY(90deg) translateZ(150px)}.left{transform:rotateY(-90deg) translateZ(150px)}.top{transform:rotateX(90deg) translateZ(150px)}.bottom{transform:rotateX(-90deg) translateZ(150px)}.timelapse-section{position:relative;height:150vh;overflow:hidden;background-color:#0c0a18}.timelapse-sky{position:sticky;top:0;width:100%;height:100vh;transition:background .5s linear;overflow:hidden}@keyframes drift{0%{transform:translate(-25%)}to{transform:translate(25%)}}.clouds{position:absolute;top:0;left:-25%;width:150%;height:100%;background:radial-gradient(circle,rgba(255,255,255,.1) 10%,transparent 50%) 20% 10%/300px 300px,radial-gradient(circle,rgba(255,255,255,.15) 10%,transparent 60%) 80% 30%/400px 400px;background-repeat:no-repeat;animation:drift 120s linear infinite alternate;opacity:.5}.sun,.moon{position:absolute;border-radius:50%;transform:translate(-50%,-50%);transition:opacity .5s ease-in-out}.sun{width:clamp(60px,10vw,100px);height:clamp(60px,10vw,100px);background:#fd0;box-shadow:0 0 50px #fd0,0 0 100px #ffb703;filter:blur(2px)}.moon{width:clamp(50px,8vw,80px);height:clamp(50px,8vw,80px);background:#f4f4f4;box-shadow:0 0 30px #f4f4f4,inset -20px 0 20px -10px #0000004d}.clock{position:absolute;color:var(--color-text-primary);top:10vh;left:50%;transform:translate(-50%);font-size:clamp(1.5rem,4vw,3rem);font-weight:700;color:var(--text-primary);background:#0000004d;padding:.5rem 1.5rem;border-radius:10px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);opacity:0;transition:opacity .5s ease;z-index:20}.ocean{position:absolute;bottom:0;left:0;width:100%;height:25%;z-index:5}.wave{position:absolute;bottom:0;left:0;width:200%;height:100px;background-image:url(data:image/svg+xml,...);background-repeat:repeat-x;animation:wave-move 20s linear infinite}.wave:nth-of-type(2){bottom:10px;animation-duration:25s;opacity:.7}.theme-toggle{background:none;border:none;cursor:none;color:var(--color-text-secondary);display:flex;align-items:center;padding:.5rem;border-radius:50%;transition:color .3s ease,background-color .3s ease}.theme-toggle:hover{color:var(--color-text-primary);background-color:var(--color-border)}.playground-section{padding:100px 20px}.playground-wrapper{max-width:900px;margin:0 auto;border:1px solid var(--color-border);border-radius:8px;overflow:hidden;background-color:var(--color-card-background);box-shadow:0 10px 30px #0003;transition:background-color .3s ease,border-color .3s ease}.playground-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background-color:color-mix(in srgb,var(--color-background) 50%,var(--color-text-primary) 5%);border-bottom:1px solid var(--color-border);transition:background-color .3s ease,border-color .3s ease}.playground-tabs{display:flex;gap:.5rem}.playground-tabs .tab{background:none;border:none;color:var(--color-text-secondary);padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500;transition:all .2s ease;cursor:none}.playground-tabs .tab.active{background-color:var(--color-background);color:var(--color-text-primary)}.playground-tabs .tab:hover:not(.active){background-color:var(--color-border)}.playground-controls .run-button{background-color:var(--color-accent-primary);color:var(--color-background);border:none;padding:.6rem 1.5rem;border-radius:6px;font-weight:700;transition:background-color .2s ease,opacity .2s ease;cursor:none}.playground-controls .run-button:hover{filter:brightness(1.1)}.playground-controls .run-button:disabled{background-color:var(--color-text-secondary);color:var(--color-background);opacity:.6}.cm-editor{font-size:1rem;outline:1px solid var(--color-border)}.playground-output{min-height:100px;background-color:#011627;padding:1rem;color:#d6deeb;font-family:Courier New,Courier,monospace;font-size:.9rem;line-height:1.5;border-top:1px solid var(--color-border)}.playground-output pre{margin:0;white-space:pre-wrap;word-wrap:break-word}.playground-output .output-line--log{color:#d6deeb}.playground-output .output-line--error{color:#ff5572;font-weight:700}.playground-output .output-line--system{color:#82aebb;font-style:italic}.case-study-page{padding-bottom:4rem}.case-study-hero{height:60vh;background-size:cover;background-position:center;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff}.case-study-hero__overlay{background:linear-gradient(0deg,#000c,#0003);position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:4rem 2rem}.case-study-hero h1{font-size:clamp(2.5rem,6vw,4rem);margin-bottom:.5rem}.case-study-hero p{font-size:1.2rem;color:var(--color-text-secondary);max-width:600px;margin:0 auto}.case-study-content-layout{display:grid;grid-template-columns:3fr 1fr;gap:4rem;max-width:1200px;margin:4rem auto;padding:0 2rem}.case-study-main h2{font-size:2rem;margin-bottom:1.5rem;border-left:4px solid var(--color-accent-primary);padding-left:1rem}.case-study-main p{line-height:1.8;color:var(--color-text-secondary);margin-bottom:1.5rem}.case-study-sidebar .sidebar-widget{background-color:var(--color-card-background);border:1px solid var(--color-border);border-radius:8px;padding:1.5rem;margin-bottom:2rem}.case-study-sidebar .sidebar-widget h3{margin-top:0;margin-bottom:1rem}.case-study-sidebar .sidebar-widget p{font-size:.9rem;line-height:1.6;color:var(--color-text-secondary)}.case-study-sidebar .sidebar-widget .tags{display:flex;flex-wrap:wrap;gap:.5rem}.case-study-sidebar .sidebar-widget .tags span{background-color:color-mix(in srgb,var(--color-accent-primary) 15%,transparent);color:var(--color-accent-primary);padding:.25rem .75rem;border-radius:15px;font-size:.8rem}.case-study-footer{text-align:center;margin-top:4rem}.case-study-footer .back-to-portfolio-link{color:var(--color-text-secondary);text-decoration:none;font-weight:500}.case-study-footer .back-to-portfolio-link:hover{color:var(--color-accent-primary)}@media (max-width: 900px){.case-study-content-layout{grid-template-columns:1fr}.case-study-sidebar{grid-row:1}}#cards{width:100%;max-width:1100px;margin:4rem auto;padding-inline:20px;display:flex;flex-wrap:wrap;justify-content:center;gap:30px}#cards .card{min-width:200px;height:350px;flex:1 1 250px;background-color:var(--color-card-background);border-radius:12px;position:relative;border:1px solid var(--color-border)}#cards:hover>.card{background:radial-gradient(400px circle at var(--mouse-x) var(--mouse-y),color-mix(in srgb,var(--color) 100%,transparent),var(--color-card-background) 40%)}#cards .card:before{content:"";position:absolute;width:100%;height:100%;top:0;left:0;background:radial-gradient(500px circle at var(--mouse-x) var(--mouse-y),color-mix(in srgb,var(--color) 35%,transparent),transparent 40%);border-radius:inherit;opacity:0;z-index:-1;transition:opacity .3s ease}#cards:hover>.card:before{opacity:1}.card_content{position:absolute;inset:1px;background-color:var(--color-background);border-radius:inherit;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:1rem;text-align:center}.card:nth-child(1){--color: 348 80% 60%}.card:nth-child(2){--color: 210 5% 80%}.card:nth-child(3){--color: 210 80% 60%}.card_content>i{font-size:5rem;color:var(--color-text-secondary)}.card_content>h2{font-size:1.5rem;color:var(--color-text-primary)}.card_content>p{color:var(--color-text-secondary)}.card_content>a{all:unset;cursor:none;width:90%;padding-block:.8rem;background-color:color-mix(in srgb,var(--color-text-primary) 5%,transparent);border:1px solid var(--color-border);border-radius:8px;display:flex;justify-content:center;align-items:center;gap:8px;z-index:10;color:var(--color-text-primary);transition:all .2s ease}.card_content>a:hover{background-color:color-mix(in srgb,var(--color-text-primary) 10%,transparent);border-color:color-mix(in srgb,var(--color-text-primary) 20%,transparent)}
