:root{--color-bg:#0b0f19;--color-surface:#151b2b;--color-primary:#38bdf8;--color-secondary:#020202;--color-text:#f8fafc;--text-primary:var(--color-text);--text-secondary:oklch(from var(--color-text) l c h / .7);--text-muted:oklch(from var(--color-text) l c h / .5);--primary:var(--color-primary);--primary-hover:oklch(from var(--color-primary) calc(l - .08) c h);--primary-active:oklch(from var(--color-primary) calc(l - .15) c h);--primary-soft:oklch(from var(--color-primary) l c h / .12);--secondary:var(--color-secondary);--secondary-hover:oklch(from var(--color-secondary) calc(l - .08) c h);--secondary-soft:oklch(from var(--color-secondary) l c h / .12);--surface:var(--color-surface);--surface-hover:oklch(from var(--color-surface) calc(l + .04) c h)}@font-face{font-family:Poppins;src:url(/fonts/Poppins-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Ubuntu Mono;src:url(/fonts/UbuntuMono-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:My Soul;src:url(/fonts/MySoul-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Lavishly Yours;src:url(/fonts/LavishlyYours-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--font-primary:"Poppins", sans-serif;--font-mono:"Ubuntu Mono", monospace;--font-script:"My Soul", cursive;--font-display:"Lavishly Yours", cursive;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--font-size-5xl:3rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.1;--line-height-heading:1.2;--line-height-body:1.6;--text-display-size:clamp(2.25rem, 5vw, 4rem);--text-display-weight:var(--font-weight-bold);--text-display-line-height:var(--line-height-tight);--text-h2-size:clamp(1.75rem, 3vw, 2.5rem);--text-h2-weight:var(--font-weight-bold);--text-h3-size:1.5rem;--text-h3-weight:var(--font-weight-semibold);--text-body-size:1rem;--text-body-weight:var(--font-weight-regular);--text-small-size:var(--font-size-sm);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--border-subtle:oklch(from var(--color-text) l c h / .1);--border-default:oklch(from var(--color-text) l c h / .16);--border-strong:oklch(from var(--color-text) l c h / .25);--shadow-sm:0 1px 20px #0003;--shadow-md:0 4px 12px #00000040;--shadow-lg:0 12px 30px #f5f5f54d;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--container-width:1200px;--sidebar-width:250px;--container-padding:1.5rem}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth;font-size:100%}body{min-height:100vh}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}img,picture,svg,video,canvas{max-width:100%;display:block}img{height:auto}textarea{resize:vertical}body{background:var(--color-bg);min-height:100vh;color:var(--text-primary);transition:background var(--transition-normal), color var(--transition-normal), border var(--transition-normal);max-width:1200px;font-family:var(--font-primary);line-height:var(--line-height-body);margin:0 auto;font-size:1rem;font-weight:400;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);font-weight:700;line-height:1.2}p{font-size:1rem;line-height:1.6}h1{font-size:clamp(2.5rem,6vw,4.5rem)}h2{font-size:clamp(2rem,4vw,3.5rem)}h3{font-size:clamp(1.25rem,2vw,1.75rem)}h4{font-size:clamp(.8rem,2vw,1rem)}.home-infos>span{font-size:1rem;font-weight:500}.code,.tech,.technology{font-family:var(--font-mono)}.about-title,.project-title,.contact-title{text-transform:uppercase;display:inline-flex;position:relative}.title-category{text-transform:uppercase;margin-bottom:1rem;font-size:clamp(.8rem,2vw,1.2rem);display:inline-flex;position:relative}.btn{background-color:var(--primary);color:var(--color-bg);font:inherit;cursor:pointer;border:1px solid #0000;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;transition:background-color .3s,color .3s,border-color .3s,transform .3s;display:inline-flex}.btn:hover{background-color:var(--color-secondary);color:var(--primary);border-color:var(--primary);transform:translateY(-2px)}.btn:focus-visible{outline-offset:3px;outline:2px solid tomato}.btn:active{transform:translateY(0)}.about-btn{gap:.5rem;display:flex}.icon-category{border-radius:9999px;padding:.1rem .4rem}.card-btn{justify-content:space-evenly;align-items:center;width:100%;margin-top:1rem;display:inline-flex}.card-btn a{cursor:pointer;cursor:pointer;background:0 0;border-radius:9999px;align-items:center;gap:8px;padding:.4rem .8rem;transition:transform .3s;display:inline-flex;transform:translateY(0)}.card-btn a:hover{background:var(--color-secondary);transform:translateY(-2px)}.card-btn a:first-child:hover{color:var(--primary)}.card-btn a:last-child:hover{color:tomato}.btn-submit{background:var(--primary);border-radius:var(--radius-lg);border:none;align-items:center;gap:8px;padding:.7rem 1.4rem;display:flex}.btn-submit:active{filter:brightness(.9);opacity:.85;transform:scale(.98)}.tech-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;display:grid}.tech-category{border-radius:var(--radius-lg);box-shadow:transparent;background:0 0;border:1px solid #64687348;padding:1rem;transition:background .3s,transform .2s,box-shadow .2s;overflow:hidden;transform:translateY(0)}.tech-category:hover{transform:translateY(-4px);box-shadow:0 2px 20px #38bff83a}.cards{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:2rem;display:grid}.project-card{border-radius:var(--radius-lg);background:0 0;border:1px solid #38bff81f;transition:all .3s;overflow:hidden}.project-card:hover{background:var(--color-surface)}.project-card img{opacity:.7;aspect-ratio:4/3;object-fit:cover;transition:transform .3s,opacity .3s}.project-card:hover img{opacity:1;transform:scale(1.1)}.card-desc{padding-block:2rem 1rem;padding-inline:1rem}.card-desc p{margin-top:1rem}.form-section-title{margin-bottom:1rem}.nav-toggle__input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.nav-toggle__label{cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;display:flex;position:relative}.nav-toggle__label span{width:var(--space-6);background:var(--color-primary);height:3px;transition:transform .3s,opacity .3s;display:block}.nav-toggle__input:checked+.nav-toggle__label span:first-child{transform:translateY(8px)rotate(45deg)}.nav-toggle__input:checked+.nav-toggle__label span:nth-child(2){opacity:0}.nav-toggle__input:checked+.nav-toggle__label span:last-child{transform:translateY(-8px)rotate(-45deg)}.nav-toggle__input:focus-visible+.nav-toggle__label{outline-offset:5px;border-radius:.25rem;outline:2px solid tomato}@media (width>=992px){.nav-toggle__label{opacity:0;visibility:hidden;pointer-events:none}}.navbar{z-index:100;background:var(--color-surface);border-bottom:1px solid var(--primary);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);opacity:0;visibility:hidden;pointer-events:none;width:100%;height:50vh;transition:opacity .35s,transform .7s,visibility .25s;position:absolute;top:100%;transform:translate(100%)}.nav-toggle__input:checked~.navbar{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(calc(-1 * var(--space-4)))}.nav-list{width:100%;height:100%;padding:var(--space-6);justify-content:center;align-items:center;gap:var(--space-10);flex-direction:column;display:flex}.nav-link a{width:100%;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--primary);color:var(--color-text);border-radius:var(--radius-md);align-items:center;gap:.75rem;font-weight:700;transition:color .2s,background-color .2s;display:flex}.nav-link a.active,.nav-link a:hover{color:tomato}.nav-link a:focus-visible{outline:2px solid var(--primary);outline-offset:3px}@media (width>=992px){.navbar{opacity:1;visibility:visible;pointer-events:auto;background:0 0;border:none;width:100%;position:static;transform:none}.nav-list{flex-direction:column;display:flex}}.title-category:before{content:"";background:var(--primary);width:30px;height:2px;position:absolute;top:100%;transform:translateY(4px)}.about-title:before,.project-title:before,.contact-title:before{content:"";background:var(--primary);border-radius:var(--radius-md);width:35%;height:5px;position:absolute;top:100%}.about-title:after,.project-title:after,.contact-title:after{content:"";background:var(--primary);border-radius:var(--radius-md);width:25%;height:5px;position:absolute;top:100%;transform:translateY(10px)}input,textarea{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;color:var(--color-text);border:none;outline:none;padding:1rem}.main-content{min-height:100vh;padding-top:4.5rem}.container{width:100%;max-width:1200px;padding-inline:var(--space-4);margin-inline:auto}@media (width>=992px){.main-content{margin-left:var(--sidebar-width);min-width:0;padding-top:0}}.home:before{content:"";pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg width='100' height='100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 20 H40 V0 H60 V20 H100' fill='none' stroke='rgba(56,189,248,0.06)' stroke-width='1'/%3E%3Cpath d='M0 50 H30 V30 H50 V50 H100' fill='none' stroke='rgba(56,189,248,0.06)' stroke-width='1'/%3E%3Cpath d='M0 80 H20 V60 H40 V80 H100' fill='none' stroke='rgba(56,189,248,0.06)' stroke-width='1'/%3E%3Ccircle cx='40' cy='20' r='2' fill='rgba(56,189,248,0.1)'/%3E%3Ccircle cx='60' cy='20' r='2' fill='rgba(56,189,248,0.1)'/%3E%3Ccircle cx='30' cy='50' r='2' fill='rgba(56,189,248,0.1)'/%3E%3Ccircle cx='50' cy='50' r='2' fill='rgba(56,189,248,0.1)'/%3E%3Ccircle cx='20' cy='80' r='2' fill='rgba(56,189,248,0.1)'/%3E%3Ccircle cx='40' cy='80' r='2' fill='rgba(56,189,248,0.1)'/%3E%3C/svg%3E");position:absolute;inset:0}.home-container{align-items:center;min-height:calc(100vh - 4.5rem);display:flex}.home-content{justify-content:0;flex-direction:column;align-items:center;gap:3rem;display:flex}.home-infos>span{margin-bottom:.5rem;display:block}.home-infos h2{color:var(--primary);margin-bottom:.5rem}.home-infos p{margin-inline:auto;max-width:55ch;margin-bottom:2rem}.home-image{justify-content:center;width:100%;display:flex}.home-image img{aspect-ratio:1;object-fit:cover;max-width:280px}@media (width>=768px){.home-content{flex-direction:row;justify-content:space-between;align-items:center;gap:4rem}.home-infos{text-align:left;flex:1;max-width:600px}.home-infos p{margin-inline:0}.home-image{flex:none;width:auto}}picture{position:relative}picture img:last-child{position:absolute;top:0}.about-container{min-height:calc(100vh - 4.5rem)}.tech-title{text-align:center}.bio{max-width:60ch;margin-inline:auto}.bio .bio-title{margin-top:2rem}.about-title,.bio-title,.bio p,.tech-title{margin-bottom:1rem}.tech-title{margin-top:2rem}.tech-category h3{margin-bottom:1rem}.list-category{flex-wrap:wrap;gap:.5rem;width:100%;display:flex}.project-grid{margin-top:4rem}.grid-contact{gap:var(--space-5);grid-template-columns:1fr;margin-top:4rem;display:grid}.address-text{margin-bottom:1rem}.address-text h3{margin-bottom:.5rem}.contact-infos{justify-content:center;gap:var(--space-4);text-align:center;flex-direction:column;display:flex}.contact-infos-item{background:var(--color-surface);border-radius:var(--radius-lg);flex-direction:column;justify-content:space-evenly;height:90px;display:flex;overflow:hidden}.contact-infos-item i{width:100%;max-width:50px;height:50px;color:var(--primary);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:1.8rem;transition:backgound .3s,font-size .3s,color .3s;display:inline-flex}.contact-infos-item:hover i{background:var(--primary);color:var(--color-bg);font-size:1.5rem}.social-links{justify-content:start;align-items:center;gap:var(--space-4);margin-top:1rem;font-size:1.8rem;display:flex}.social-links a{color:inherit;background:0 0;transition:transform .3s,color .3s;transform:translateY(0)}.social-links a:hover{color:var(--primary);transform:translateY(-2px)}.form-content{width:100%}.form{flex-direction:column;align-items:center;gap:1rem;width:100%;display:flex}@media (width>=992px){.grid-contact{text-align:center;grid-template-columns:1fr 1fr}}.header{z-index:100;width:100%;min-height:4.5rem;padding:var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--primary);border-right:none;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0}@media (width>=992px){.header{width:var(--sidebar-width);border-right:1px solid var(--primary);border-bottom:none;flex-direction:column;justify-content:center;height:100vh;position:fixed;top:0;left:0}}.section{width:100%;padding-block:4rem}footer{background:var(--color-surface);justify-content:center;align-items:center;width:100%;height:3rem;display:flex;position:absolute;left:0;right:0}footer .container{text-align:center}footer .container a{color:var(--primary);text-decoration:underline}
