html,body{cursor:none}#website.admin-route,#website.admin-route *{cursor:default!important}footer{text-align:center;width:100%;transition:opacity .3s ease;opacity:1}.footer-hidden{opacity:0;pointer-events:none;transform:translateZ(0)}.footer-icon{display:inline-block;vertical-align:middle;margin:0 4px}.footer-text{margin-top:auto;padding:20px;text-align:center;width:100%;transition:opacity .3s ease;opacity:1}@media screen and (max-width: 640px){.footer-text{padding-bottom:10px}}#container{position:relative;min-height:100vh;overflow:hidden;transform-style:preserve-3d;perspective:1000px;display:flex;flex-direction:column;will-change:transform;padding-bottom:140px}@media screen and (max-width: 768px){#container{padding-bottom:120px}}@media screen and (max-width: 640px){#container{padding-bottom:100px}}.svg-logo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;width:300px;height:300px;display:flex;align-items:center;justify-content:center;will-change:transform,opacity}#teleport-target{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:700}.custom-cursor,.intro-container{contain:layout style;will-change:transform}:root{--background-color: #ffffff;--primary-color: rgb(202, 202, 202);--secondary-color: #fe6536;--accent-color: #fe6536;--text-color: #0A0A0A;--light-text-color: #7f8c8d;--lightest: #f5f7fa;--darkest: #060e16;--low-contrast-color: #b5bcbd;--font-family-serif: "Libre Caslon Text", serif;--font-family-sans: "Sora", sans-serif;--font-family-heading: "Le Murmure", "Libre Caslon Text", serif;--font-size-min: 16px;--font-size-max: 24px;--theme-transition: color .3s ease, background-color .3s ease;--fill-transition-duration: .5s;--link-color: #fe6536;--link-hover-color: #fe6536;--skeleton-background: rgba(0, 0, 0, .08);--skeleton-shine-color: 255, 255, 255}@media (prefers-color-scheme: dark){:root:not(.light-mode){--background-color: #060e16;--primary-color: #555555;--secondary-color: #FFB347;--accent-color: #FF5722;--text-color: #e9edf3;--light-text-color: #c3c3c3;--lightest: #FF8A65;--darkest: #e9edf3;--low-contrast-color: #909090;--link-color: #FF5722;--link-hover-color: #ff9e14;--skeleton-background: rgba(255, 255, 255, .08);--skeleton-shine-color: 0, 0, 0}}.dark-mode{--background-color: #060e16;--primary-color: #555555;--secondary-color: #FFB347;--accent-color: #FF5722;--text-color: #e9edf3;--light-text-color: #c3c3c3;--lightest: #FF8A65;--darkest: #e9edf3;--link-color: #FF5722;--link-hover-color: #ff9e14;--low-contrast-color: #909090;--skeleton-background: rgba(255, 255, 255, .08);--skeleton-shine-color: 0, 0, 0}.light-mode{--background-color: #ffffff;--primary-color: rgb(202, 202, 202);--secondary-color: #fe6536;--accent-color: #fe6536;--text-color: #0A0A0A;--light-text-color: #7f8c8d;--lightest: #f5f7fa;--darkest: #060e16;--link-color: #fe6536;--link-hover-color: #fe6536;--low-contrast-color: #b5bcbd;--skeleton-background: rgba(0, 0, 0, .08);--skeleton-shine-color: 255, 255, 255}a{color:var(--link-color);text-decoration:none;transition:var(--theme-transition)}a:hover{color:var(--link-hover-color)}::selection{background:var(--accent-color);color:var(--text-color)}::-moz-selection{background:var(--accent-color);color:var(--text-color)}::-webkit-scrollbar{width:2px;background-color:var(--accent-color)}::-webkit-scrollbar-thumb{background-color:var(--accent-color);border-radius:2px}::-webkit-scrollbar-track{background-color:var(--background-color);border-radius:3px}*{box-sizing:border-box}*,*:before,*:after{box-sizing:border-box;margin:0;position:relative;font-weight:400}body{min-height:100vh;line-height:1.6;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:var(--font-family-sans);background-color:var(--background-color);cursor:none;overflow-x:hidden;scroll-behavior:smooth}.admin-route body{cursor:default!important}html,body{height:100%;color:var(--text-color)}@font-face{font-family:Sora;src:url(/static/fonts/sora/Sora-VariableFont_wght.ttf) format("truetype-variations"),url(/static/fonts/sora/Sora-VariableFont_wght.ttf) format("truetype");font-weight:100 800;font-style:normal;font-display:swap}@font-face{font-family:Le Murmure;src:url(/static/fonts/le-murmure/LeMurmure-Regular.eot) format("embedded-opentype"),url(/static/fonts/le-murmure/LeMurmure-Regular.woff2) format("woff2"),url(/static/fonts/le-murmure/LeMurmure-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Libre Caslon Text;src:url(/static/fonts/libre-caslon/LibreCaslonText.ttf) format("truetype"),url(/static/fonts/libre-caslon/LibreCaslonText.woff) format("woff"),url(/static/fonts/libre-caslon/LibreCaslonText.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Libre Caslon Text;src:url(/static/fonts/libre-caslon/LibreCaslonText-Italic.ttf) format("truetype"),url(/static/fonts/libre-caslon/LibreCaslonText-Italic.woff) format("woff"),url(/static/fonts/libre-caslon/LibreCaslonText-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}:root{--font-family-serif: Libre Caslon Text, serif;--font-family-sans: Sora, sans-serif}body{font-family:var(--font-family-sans)}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-serif)}h1{font-family:Le Murmure,Libre Caslon Text,serif}.base-font-size,ul,li,p{font-size:1rem;line-height:1.2}@media screen and (min-width: 320px){.base-font-size,ul,li,p{font-size:calc(1rem + .2 * (100vw - 320px) / 960)}}@media screen and (min-width: 1280px){.base-font-size,ul,li,p{font-size:1.2rem}}.smaller-font-size,.contact-info,.smaller{font-size:.9rem;line-height:1.2}@media screen and (min-width: 320px){.smaller-font-size,.contact-info,.smaller{font-size:calc(.9rem + .2 * (100vw - 320px) / 960)}}@media screen and (min-width: 1280px){.smaller-font-size,.contact-info,.smaller{font-size:1.1rem}}.small-font-size,.layout-foot.layout-foot-project-info h3,.layout-foot.layout-foot-project-info p,.layout-foot.layout-foot-project-info .label,.layout-foot.layout-foot-project-info li,.small{font-size:.8rem;line-height:1.2}@media screen and (min-width: 320px){.small-font-size,.layout-foot.layout-foot-project-info h3,.layout-foot.layout-foot-project-info p,.layout-foot.layout-foot-project-info .label,.layout-foot.layout-foot-project-info li,.small{font-size:calc(.8rem + .2 * (100vw - 320px) / 960)}}@media screen and (min-width: 1280px){.small-font-size,.layout-foot.layout-foot-project-info h3,.layout-foot.layout-foot-project-info p,.layout-foot.layout-foot-project-info .label,.layout-foot.layout-foot-project-info li,.small{font-size:1rem}}.smallest-font-size,.code-text,.no-cookies,.footer-text{font-size:.7rem;font-weight:350;line-height:1.2}@media screen and (min-width: 320px){.smallest-font-size,.code-text,.no-cookies,.footer-text{font-size:calc(.7rem + .2 * (100vw - 320px) / 960)}}@media screen and (min-width: 1280px){.smallest-font-size,.code-text,.no-cookies,.footer-text{font-size:.9rem}}.dark-mode .smallest-font-size,.dark-mode .code-text,.dark-mode .no-cookies,.dark-mode .footer-text{font-weight:300}.bigger-font-size,.bigger{font-size:1.05rem;line-height:1.2}@media screen and (min-width: 320px){.bigger-font-size,.bigger{font-size:calc(1.05rem + .15 * (100vw - 320px) / 960)}}@media screen and (min-width: 1280px){.bigger-font-size,.bigger{font-size:1.2rem}}h1,.marquee-content{font-size:4rem;line-height:1}@media screen and (min-width: 320px){h1,.marquee-content{font-size:calc(4rem + 2 * (100vw - 320px) / 960)}}@media screen and (min-width: 1280px){h1,.marquee-content{font-size:6rem}}@media screen and (max-width: 1279px){h1,.marquee-content{margin-bottom:10px}}h2{font-size:1.4rem;line-height:1.5;margin-bottom:20px}@media screen and (min-width: 320px){h2{font-size:calc(1.4rem + .6 * (100vw - 320px) / 960)}}@media screen and (min-width: 1280px){h2{font-size:2rem}}@media screen and (max-width: 1279px){h2{margin-bottom:15px}}h2.subtitle{font-size:1.2rem;line-height:1.2}@media screen and (min-width: 320px){h2.subtitle{font-size:calc(1.2rem + .6 * (100vw - 320px) / 960)}}@media screen and (min-width: 1280px){h2.subtitle{font-size:1.8rem}}h3{font-size:1.1rem;line-height:1.3}@media screen and (min-width: 320px){h3{font-size:calc(1.1rem + .4 * (100vw - 320px) / 960)}}@media screen and (min-width: 1280px){h3{font-size:1.5rem}}h2,h3,h4{font-weight:500;color:var(--text-color);line-height:1.2}.dark-mode h2,.dark-mode h3,.dark-mode h4{font-weight:400}h2.subtitle,h3.subtitle,h4.subtitle,h2.subtitle div,h3.subtitle div,h4.subtitle div{font-family:Sora,sans-serif;font-weight:300!important;color:var(--light-text-color)}.dark-mode h2.subtitle div,.dark-mode h3.subtitle div,.dark-mode h4.subtitle div,.dark-mode h2.subtitle,.dark-mode h3.subtitle,.dark-mode h4.subtitle{font-weight:250!important}h1.h1-404,h1.h1-404 span{font-family:Le Murmure,Libre Caslon Text,serif}h3{line-height:1.3;margin-bottom:10px}@media screen and (max-width: 640px){h3{margin-bottom:15px}}h4{font-size:1.1rem;margin-bottom:10px;color:var(--light-text-color)}@media screen and (min-width: 320px){h4{font-size:calc(1.1rem + .2 * (100vw - 320px) / 960)}}@media screen and (min-width: 1280px){h4{font-size:1.3rem}}@media screen and (max-width: 640px){h4{margin-bottom:15px}}p{line-height:1.5}p+p{margin-bottom:15px;margin-top:15px}@media screen and (max-width: 767px){p+p{margin-bottom:10px;margin-top:10px}}p:last-child{margin-bottom:10px 0}.contact-info{margin-top:10px;font-family:Sora,sans-serif;list-style:none;padding:0;display:flex;justify-content:center;gap:20px}@media screen and (max-width: 767px){.contact-info{flex-direction:column;align-items:center;gap:10px}}.contact-info-item{display:flex;align-items:center;gap:5px}.contact-info-item:not(:last-child):after{content:"|";margin-left:20px;opacity:.5}@media screen and (max-width: 1023px){.contact-info-item{gap:1px}}@media screen and (max-width: 767px){.contact-info-item:not(:last-child):after{display:none}}@media screen and (max-width: 767px){.pipe{display:none}}.year-links{color:var(--text-color)}.year-active{color:var(--secondary-color)}.footer-text{color:var(--low-contrast-color)!important;line-height:1.4}.no-cookies{color:var(--light-text-color)}.code-text{font-family:monospace;color:var(--light-text-color)}@media screen and (max-width: 767px){.on-desktop{display:none}}@media (hover: none) and (pointer: coarse){.on-desktop{display:none}}#website{height:100vh;width:100%}.projects-grid,.layout-body.layout-body-project,.container-cover,.container-media,.container-grid-bento,.container-contained{margin:0 auto}@media screen and (min-width: 1280px){.projects-grid,.layout-body.layout-body-project,.container-cover,.container-media,.container-grid-bento,.container-contained{max-width:1280px}}@media screen and (min-width: 1440px){.projects-grid,.layout-body.layout-body-project,.container-cover,.container-media,.container-grid-bento,.container-contained{max-width:1440px}}@media screen and (min-width: 1620px){.projects-grid,.layout-body.layout-body-project,.container-cover,.container-media,.container-grid-bento,.container-contained{max-width:1620px}}.container{text-align:left;width:98%;height:auto;margin:auto}@media screen and (min-width: 768px){.container{max-width:840px}}@media screen and (min-width: 1024px){.container{max-width:960px;padding:0 20px}}@media screen and (max-width: 640px){.container{margin-top:10px;padding:0 10px}}@media screen and (min-width: 1280px){.container{max-width:1280px}}@media screen and (min-width: 1440px){.container{max-width:1200px}}.container-contained{overflow:hidden}.container-media,.container-grid-bento{width:100%;max-width:1620px;min-height:calc(min(100vw,1620px) * .6666666667)}@media screen and (min-width: 1280px){.container-media,.container-grid-bento{max-width:1280px;min-height:calc(min(100vw,1280px) * .6666666667)}}@media screen and (min-width: 1440px){.container-media,.container-grid-bento{max-width:1440px;min-height:calc(min(100vw,1440px) * .6666666667)}}@media screen and (min-width: 1620px){.container-media,.container-grid-bento{max-width:1620px;min-height:calc(min(100vw,1620px) * .6666666667)}}.container-cover{width:100%;max-width:1620px;min-height:calc(min(100vw,1620px) * .4166666667);background-color:transparent}.container-grid-bento{background-color:transparent;--box-padding: 20px;--box-gap: 20px;--border-radius: 12px;--height-large: 500px;display:grid;grid-template-columns:repeat(6,1fr);gap:var(--box-gap)}.container-grid-bento>div{min-height:var(--height-large);background-color:orange;border-radius:var(--border-radius);padding:var(--box-padding);transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 4px 6px #0000001a}.container-grid-bento>div:hover{transform:translateY(-2px);box-shadow:0 8px 12px #00000026}.container-grid-bento>div:nth-child(1){grid-area:span 2/span 4}.container-grid-bento>div:nth-child(2){grid-area:span 2/span 2}.container-grid-bento>div:nth-child(3){grid-area:span 1/span 2}.container-grid-bento>div:nth-child(4){grid-area:span 2/span 2}.container-grid-bento>div:nth-child(5){grid-area:span 1/span 2}.container-grid-bento>div:nth-child(6){grid-area:span 1/span 2}@media screen and (max-width: 768px){.container-grid-bento{--box-gap: 15px;grid-template-columns:repeat(4,1fr)}.container-grid-bento>div:nth-child(1){grid-area:span 2/span 4}.container-grid-bento>div:nth-child(2){grid-area:span 2/span 2}.container-grid-bento>div:nth-child(3){grid-area:span 2/span 2}.container-grid-bento>div:nth-child(4){grid-area:span 1/span 2}.container-grid-bento>div:nth-child(5){grid-area:span 1/span 2}.container-grid-bento>div:nth-child(6){grid-area:span 1/span 4}}@media screen and (max-width: 640px){.container-grid-bento{--box-gap: 15px;grid-template-columns:repeat(3,1fr)}.container-grid-bento>div{min-height:var(--height-medium)}.container-grid-bento>div:nth-child(1){grid-area:span 1/span 1}.container-grid-bento>div:nth-child(2){grid-area:span 1/span 1}.container-grid-bento>div:nth-child(3){grid-area:span 1/span 1}.container-grid-bento>div:nth-child(5){grid-area:span 1/span 2}.container-grid-bento>div:nth-child(4){grid-area:span 1/span 1}.container-grid-bento>div:nth-child(6){grid-area:span 1/span 1}.container-grid-bento>div:nth-child(7){grid-area:span 1/span 1}.container-grid-bento>div:nth-child(8){grid-area:span 1/span 1}.container-grid-bento>div:nth-child(9){grid-area:span 1/span 2}.container-grid-bento>div:nth-child(10){grid-area:span 1/span 1}}@media screen and (max-width: 640px){.container-grid-bento{grid-template-columns:1fr}.container-grid-bento>div{grid-area:span 1/span 1!important}}.container-media-full{max-width:100%}.container-centered{display:flex;align-items:center;justify-content:center;height:100%}.container-centered-content{height:auto}.layout{position:relative}.layout p{max-width:960px}.layout-head{text-align:center;margin-top:60px}@media screen and (max-width: 767px){.layout-head{margin-top:20px}}.layout-head.layout-head-project{position:fixed;top:0;left:0;width:100%;padding:100px 0 2rem;z-index:1;margin-top:0;will-change:transform;transition:transform .05s ease-in-out}.layout-body{position:relative;margin-top:20px}@media screen and (max-width: 767px){.layout-body{margin-top:10px}}.layout-body.layout-body-home{font-feature-settings:"liga" 1,"dlig" 1}@media screen and (max-width: 768px){.layout-body.layout-body-home{padding:0 50px}}.layout-body.layout-body-project{position:relative;z-index:2;margin-top:100px}@media screen and (max-width: 767px){.layout-body.layout-body-project{margin-top:20px!important}}.layout-foot.layout-foot-project-info .container{display:flex;gap:40px}.layout-foot.layout-foot-project-info .container .col-left{flex:2;border-top:1px solid var(--lightest);padding-top:20px}.layout-foot.layout-foot-project-info .container .col-right{flex:1;border-top:1px solid var(--lightest);padding-top:20px}@media screen and (max-width: 767px){.layout-foot.layout-foot-project-info .container{flex-direction:column;gap:20px}}#homepage{-webkit-user-select:none;user-select:none}@media screen and (max-width: 767px){.layout-head{margin-top:40px}.layout-head.layout-head-project{padding:40px 0 2rem}.layout-body.layout-body-project{margin-top:120px}}section{margin:25px 0}@media screen and (max-width: 1023px){section{margin-bottom:30px 0}}@media screen and (max-width: 767px){section{margin-bottom:15px 0}}ul{list-style-type:none;padding:0;margin-bottom:30px}li{font-weight:300;line-height:1.6;color:var(--text-color);margin-bottom:20px}p,ul,li{font-weight:300;line-height:1.6;margin-bottom:20px;color:var(--text-color)}@media screen and (max-width: 1279px){p,ul,li{line-height:1.3;margin-bottom:15px}}ul{list-style-type:none;padding:0}.logo{transform:translateY(50px);opacity:0;width:80px;height:80px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjQuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDEwMDAgMTAwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiM2RjZGNkU7fQo8L3N0eWxlPgo8Zz4KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03NTAuOSw4MDUuNGMtNzAuNC02Ny4yLTE2OS43LTQyLjQtMjY2LjUtMTguNGMtMTA4LjEsMjYuNC0yMDEuNyw0OS42LTI1My43LTQzLjJMMjAxLDc2MC41CgkJYzY0LDExNS4zLDE4NC45LDg1LjYsMjkxLjQsNTkuMmM5Mi0yMy4yLDE3OC41LTQ0LDIzNi4xLDEwLjRjMTYuOCwxNC40LDMwLjQsMzIuOCw0MCw1Mi44bDMwLjQtMTQuNAoJCUM3ODYuOSw4NDMuOCw3NzAuOSw4MjIuMiw3NTAuOSw4MDUuNHoiLz4KCTxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iNDcwLjgsMjIxLjkgNjU1LjcsNjE2LjUgNzUzLjMsNjEzLjMgNTIzLjYsMTE3IDI0OS45LDYxNC45IDI1My45LDYxNy4zIAkiLz4KPC9nPgo8L3N2Zz4K);background-size:contain;background-repeat:no-repeat;background-position:center}.dark-mode .logo{background-image:url(/assets/logo-white-aad9e8df.svg)!important}.menu-icon{width:80px;height:80px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjQuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDEwMDAgMTAwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiM2RjZGNkU7fQo8L3N0eWxlPgo8Zz4KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03NTAuOSw4MDUuNGMtNzAuNC02Ny4yLTE2OS43LTQyLjQtMjY2LjUtMTguNGMtMTA4LjEsMjYuNC0yMDEuNyw0OS42LTI1My43LTQzLjJMMjAxLDc2MC41CgkJYzY0LDExNS4zLDE4NC45LDg1LjYsMjkxLjQsNTkuMmM5Mi0yMy4yLDE3OC41LTQ0LDIzNi4xLDEwLjRjMTYuOCwxNC40LDMwLjQsMzIuOCw0MCw1Mi44bDMwLjQtMTQuNAoJCUM3ODYuOSw4NDMuOCw3NzAuOSw4MjIuMiw3NTAuOSw4MDUuNHoiLz4KCTxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iNDcwLjgsMjIxLjkgNjU1LjcsNjE2LjUgNzUzLjMsNjEzLjMgNTIzLjYsMTE3IDI0OS45LDYxNC45IDI1My45LDYxNy4zIAkiLz4KPC9nPgo8L3N2Zz4K);background-size:contain;background-repeat:no-repeat;background-position:center}.dark-mode .menu-icon{background-image:url(/assets/logo-white-aad9e8df.svg)!important}@media screen and (max-width: 640px){.menu-icon{width:50px;height:50px}}.menu-icon.small{width:40px!important;height:40px!important}.menu-icon.spaced-bottom{margin-bottom:20px}.logo-svg{width:300px;height:300px}@media screen and (max-width: 640px){.logo-svg{width:200px;height:200px}}.logo-path{fill:var(--text-color);transition:fill .3s ease}.logo-star-desktop{transition:opacity .3s ease,visibility .3s ease;will-change:opacity,visibility;opacity:1;visibility:visible;display:block}@media screen and (min-width: 768px){.logo-star-desktop{margin-top:20px;width:60px;height:60px;display:block;position:relative}.logo-star-desktop svg{width:100%;height:100%}}.name-text{transition:opacity .3s ease,visibility .3s ease;will-change:opacity,visibility}.name-text.hidden,.logo-star-desktop.hidden{opacity:0;visibility:hidden}.link{position:relative;display:inline-block;text-decoration:none;color:var(--link-color);padding-bottom:0;cursor:none!important}.link:before,.link:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background-color:var(--link-color);display:block}.link:before{transform-origin:right;transform:scaleX(1);transition:transform .3s ease-in-out}.link:after{transform-origin:left;transform:scaleX(0);transition:transform .3s ease-in-out;transition-delay:.3s}.link:hover{color:var(--link-hover-color)}.link:hover:before{transform:scaleX(0)}.link:hover:after{transform:scaleX(1)}.hidden .link:before,.hidden .link:after,.name-link:has(.name-text.hidden):before,.name-link:has(.name-text.hidden):after,.name-text.hidden:before,.name-text.hidden:after{display:none}.intro-container{position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;background-color:var(--background-color);display:flex;align-items:center;justify-content:center;z-index:1000;pointer-events:none;will-change:transform;transform:translateZ(0)}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:2rem;width:100%;max-width:1200px;margin:0 auto;padding:2rem 0}.col{display:flex;align-items:center;justify-content:center;padding:1rem;transition:transform .3s ease}.col:hover{transform:translateY(-5px)}.col img{max-width:80px;width:100%;height:auto;opacity:.7;transition:opacity .3s ease;filter:grayscale(100%)}.dark-mode .col img{filter:grayscale(100%) invert(1)}.col img:hover{opacity:1;filter:grayscale(0)}.dark-mode .col img:hover{filter:grayscale(0) invert(1)}.col .hidden{opacity:0;pointer-events:none}@media screen and (max-width: 1279px){.col{padding:.5rem}}@media screen and (max-width: 767px){.col{padding:.25rem}.col img{max-width:60px}}.work-studies{display:grid;grid-template-columns:repeat(2,1fr);gap:4rem;margin:2rem 0}@media screen and (max-width: 767px){.work-studies{grid-template-columns:1fr;gap:0rem}}.work,.studies{width:100%}img{max-width:100%;height:auto}#Project{min-height:100vh}.layout-head-work{padding-bottom:30px}@media screen and (max-width: 767px){.layout-head-work{padding-bottom:0}}.layout-head-project{width:100%;text-align:center;position:absolute;left:0;z-index:1}@media screen and (max-width: 767px){.layout-head-project h1{margin-top:35px}}.project-content{position:relative;z-index:2;padding-top:120px}@media screen and (max-width: 767px){.project-content{padding-top:140px}}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10rem}.projects-grid.projects-grid--3{grid-template-columns:repeat(3,1fr);gap:2rem}@media screen and (max-width: 767px){.projects-grid.projects-grid--3{grid-template-columns:repeat(2,1fr)}}@media screen and (max-width: 1024px){.projects-grid{gap:4rem}}@media screen and (max-width: 767px){.projects-grid{gap:3rem}}@media screen and (max-width: 640px){.projects-grid{gap:1rem}}.error{text-align:center;padding:2rem;color:var(--error-color)}.project-info{text-align:center}.dashboard{max-width:1200px;margin:0 auto;padding:2rem}.dashboard h1{margin:0;text-align:left;color:var(--text-color)}.source-selector{display:flex;gap:1rem;margin:2rem 0}.source-btn{padding:.75rem 1.5rem;background:var(--skeleton-background);border:none;border-radius:var(--radius-small);cursor:pointer;font-weight:500;transition:background-color .2s;color:var(--text-color)}.source-btn.active{background:var(--accent-color);color:var(--background-color)}.project-items{display:grid;gap:1rem}.project-item{display:flex;align-items:center;gap:1.5rem;padding:1.5rem;background:var(--background-color);border-radius:var(--radius-small);box-shadow:0 2px 4px #0000001a}.project-preview{width:80px;height:60px;border-radius:var(--radius-small);overflow:hidden;background:var(--skeleton-background);flex-shrink:0}.project-preview :deep(img),.project-preview :deep(video){width:100%;height:100%;object-fit:cover}.drag-handle{cursor:move;color:var(--light-text-color);padding:.5rem;font-size:1.2rem;display:flex;align-items:center;gap:.5rem}.drag-handle .order-number{font-size:.875rem;color:var(--light-text-color);min-width:24px}.project-info{flex:1;display:flex;align-items:center;gap:1rem}.project-header{display:flex;align-items:center;gap:1rem}.project-header h3{margin:0;color:var(--text-color);font-size:1.1rem}.project-type{color:var(--light-text-color);font-size:.875rem;font-weight:400;padding:.25rem .5rem;background:var(--skeleton-background);border-radius:var(--radius-small)}.project-meta{font-size:.875rem;color:var(--light-text-color);display:flex;align-items:center}.project-meta .project-slug{color:var(--accent-color);text-decoration:none;display:inline-flex;align-items:center;gap:.25rem}.project-meta .project-slug:hover{text-decoration:underline}.project-meta .project-slug svg{width:14px;height:14px}.project-actions{display:flex;gap:.5rem}.move-dropdown{position:relative}.move-dropdown .move-button{padding:.5rem;background:none;border:none;border-radius:var(--radius-small);cursor:pointer;color:var(--text-color);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.move-dropdown .move-button svg{width:20px;height:20px}.move-dropdown .move-button:hover{background:var(--skeleton-background);color:var(--accent-color)}.move-dropdown .move-menu{position:absolute;top:100%;left:0;margin-top:.25rem;background:var(--background-color);border-radius:var(--radius-small);box-shadow:0 2px 8px #0000001a;z-index:10;min-width:150px;overflow:hidden}.move-dropdown .move-option{width:100%;padding:.75rem 1rem;background:none;border:none;text-align:left;color:var(--text-color);cursor:pointer;transition:all .2s ease}.move-dropdown .move-option:hover{background:var(--skeleton-background);color:var(--accent-color)}.visibility-toggle{padding:.5rem;background:none;border:none;border-radius:var(--radius-small);cursor:pointer;color:var(--text-color);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.visibility-toggle svg{width:20px;height:20px}.visibility-toggle.is-visible{color:var(--accent-color)}.visibility-toggle:hover{background:var(--skeleton-background)}.edit-button{padding:.5rem 1rem;background:var(--accent-color);color:var(--background-color);border:none;border-radius:var(--radius-small);cursor:pointer;display:flex;align-items:center;gap:.5rem}.edit-button svg{width:16px;height:16px}.save-changes{position:fixed;bottom:2rem;right:2rem;background:var(--background-color);padding:1rem;border-radius:var(--radius-small);box-shadow:0 2px 8px #0000001a;display:flex;align-items:center;gap:1rem}.save-changes p{color:var(--text-color);margin:0}.save-button{padding:.5rem 1rem;background:var(--accent-color);color:var(--background-color);border:none;border-radius:var(--radius-small);cursor:pointer}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--background-color);border-radius:var(--radius-small);width:90%;max-width:800px;max-height:90vh;overflow-y:auto}.modal-header{padding:1rem;border-bottom:1px solid var(--primary-color);display:flex;justify-content:space-between;align-items:center}.modal-header h2{color:var(--text-color);margin:0}.modal-body{padding:1rem}.modal-footer{padding:1rem;border-top:1px solid var(--primary-color);display:flex;justify-content:flex-end;gap:1rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-color)}input,textarea{width:100%;padding:.5rem;border:1px solid var(--primary-color);border-radius:var(--radius-small);margin-bottom:.5rem;background:var(--background-color);color:var(--text-color)}input::placeholder,textarea::placeholder{color:var(--light-text-color)}textarea{min-height:100px;resize:vertical}.project-info-fields,.case-study-fields{display:grid;gap:.5rem}.mid-save{display:flex;justify-content:flex-end;padding:1rem 0;margin-bottom:1rem;border-bottom:1px solid var(--primary-color)}.media-section{background:var(--skeleton-background);padding:1rem;border-radius:var(--radius-small)}.media-list{display:grid;gap:1rem}.media-item{display:grid;grid-template-columns:1fr 300px;gap:1rem;padding:1rem;background:var(--background-color);border-radius:var(--radius-small);position:relative}.reposition-menu{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;gap:.5rem;background:var(--skeleton-background);padding:.5rem;border-radius:var(--radius-small);z-index:1;margin-bottom:1rem}.reposition-menu .position-input{width:60px;padding:.25rem;text-align:center;margin:0}.reposition-menu .arrow-btn{padding:.25rem;background:none;border:none;color:var(--text-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.reposition-menu .arrow-btn:hover{color:var(--accent-color)}.reposition-menu .arrow-btn:disabled{color:var(--light-text-color);cursor:not-allowed}.reposition-menu .arrow-btn svg{width:16px;height:16px}.media-item-inputs{display:grid;gap:.5rem}.media-type-toggle{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.media-type-toggle label{margin:0;min-width:40px}.toggle-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--skeleton-background);border:none;border-radius:var(--radius-small);color:var(--text-color);cursor:pointer;transition:all .2s ease}.toggle-btn svg{width:16px;height:16px}.toggle-btn.active{background:var(--accent-color);color:var(--background-color)}.checkbox-field{display:flex;align-items:center;gap:.5rem}.checkbox-field input[type=checkbox]{width:auto;margin:0}.checkbox-field label{margin:0}.media-preview{width:100%;display:flex;flex-direction:column;gap:1rem;background:var(--skeleton-background);border-radius:var(--radius-small);overflow:hidden;padding:1rem;margin-top:1rem}.media-preview h5{display:none}.media-preview .preview-cloud{width:100%;aspect-ratio:3/2;background:var(--background-color);border-radius:var(--radius-small);overflow:hidden;display:flex;flex-direction:column;position:relative}.media-preview .preview-cloud:before{content:"Preview of the media as it will appear when deployed";position:absolute;top:-24px;left:0;font-size:.75rem;color:var(--light-text-color)}.media-preview .preview-local{width:33.333%;aspect-ratio:3/2;background:var(--background-color);border-radius:var(--radius-small);overflow:hidden;display:flex;flex-direction:column;opacity:.8;margin-left:auto;position:relative}.media-preview .preview-local:before{content:"Preview of the local development version";position:absolute;top:-24px;left:0;font-size:.75rem;color:var(--light-text-color)}.media-preview :deep(img),.media-preview :deep(video){width:100%;height:100%;object-fit:contain}.add-button{padding:.5rem;background:var(--accent-color);color:var(--background-color);border:none;border-radius:var(--radius-small);cursor:pointer}.remove-button{padding:.25rem .5rem;background:#f44336;color:#fff;border:none;border-radius:var(--radius-small);cursor:pointer}.close-button{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:.5rem;color:var(--text-color)}
