@charset "UTF-8";:root{--color-background: #f2f2f2;--color-navigation-background: #cdcecfc2;--color-text: #0f0f0f;--color-text-invert: #f2f2f2;--color-text-muted: #303030;--color-text-deep-muted: #939393;--color-text-muted-subtitle: #9e8d8a;--color-accent: rgba(19, 81, 221, 1);--color-accent-muted: rgba(25, 86, 229, .725);--color-accent-hover: rgb(19, 55, 140);--color-radial-gradient-1: rgba(19, 81, 221, .5);--color-radial-gradient-2: rgba(0, 255, 0, .5);--color-radial-gradient-3: rgba(255, 0, 0, .5);--color-picture-blob-1: rgba(19, 81, 221, 1);--color-picture-blob-2: rgba(21, 228, 146, 1);--color-background-blur: rgba(110, 113, 114, .096);--color-background-skill: rgba(171, 172, 178, .192);--color-background-browser-1: rgba(94, 98, 99, .192);--color-background-browser-2: rgba(184, 186, 197, .496);--color-background-browser-dark: rgba(68, 71, 72, .242);--color-background-experience-dates: rgba(68, 71, 72, .1);--tag-react-text: #1f8adb;--tag-react-border: #2d9bb4;--tag-react-bg: rgba(88, 196, 220, .14);--tag-typescript-text: #0f57c2;--tag-typescript-border: #3178c6;--tag-typescript-bg: rgba(49, 120, 198, .14);--tag-nodejs-text: #226b21;--tag-nodejs-border: #4e9a3f;--tag-nodejs-bg: rgba(78, 154, 63, .14);--tag-express-text: #2a2a2a;--tag-express-border: #6e6e6e;--tag-express-bg: rgba(110, 110, 110, .13);--tag-react-native-text: #1f8adb;--tag-react-native-border: #3eabc4;--tag-react-native-bg: rgba(92, 188, 214, .14);--tag-esp32-text: #8b2f1b;--tag-esp32-border: #d14b24;--tag-esp32-bg: rgba(209, 75, 36, .14);--tag-cpp-text: #1f4aa5;--tag-cpp-border: #4f7dd9;--tag-cpp-bg: rgba(79, 125, 217, .14);--tag-blender-text: #c76110;--tag-blender-border: #f57c00;--tag-blender-bg: rgba(245, 124, 0, .14);--tag-3d-printing-text: #0b7480;--tag-3d-printing-border: #13a4b6;--tag-3d-printing-bg: rgba(19, 164, 182, .14);--tag-chrome-extension-text: #1a6e2e;--tag-chrome-extension-border: #34a853;--tag-chrome-extension-bg: rgba(52, 168, 83, .14);--tag-javascript-text: #8a6d00;--tag-javascript-border: #f0db4f;--tag-javascript-bg: rgba(240, 219, 79, .14)}[data-theme=dark]{--color-background: #03121f;--color-navigation-background: #303f4cae;--color-text: #f2f2f2;--color-text-invert: #0f0f0f;--color-text-muted: #8f8e8e;--color-text-deep-muted: #4f5153;--color-text-muted-subtitle: #7a7474;--color-accent: rgb(67, 124, 255);--color-accent-muted: rgba(25, 86, 229, .725);--color-accent-hover: rgb(19, 55, 140);--color-radial-gradient-1: rgba(19, 81, 221, .25);--color-radial-gradient-2: rgba(21, 228, 146, .35);--color-radial-gradient-3: rgba(204, 22, 22, .45);--color-picture-blob-1: rgba(19, 81, 221, 1);--color-picture-blob-2: rgba(21, 228, 146, 1);--color-background-blur: rgba(185, 190, 193, .08);--color-background-skill: rgba(185, 190, 193, .143);--color-background-browser-1: rgba(94, 98, 99, .192);--color-background-browser-2: rgba(94, 95, 101, .354);--color-background-browser-dark: rgba(137, 141, 141, .242);--color-background-experience-dates: rgba(210, 210, 210, .1);--tag-react-text: #8fdfff;--tag-react-border: #58c4dc;--tag-react-bg: rgba(88, 196, 220, .2);--tag-typescript-text: #8bb7ff;--tag-typescript-border: #5f95e6;--tag-typescript-bg: rgba(95, 149, 230, .2);--tag-nodejs-text: #9ddf8f;--tag-nodejs-border: #66b35b;--tag-nodejs-bg: rgba(102, 179, 91, .2);--tag-express-text: #e7e7e7;--tag-express-border: #9b9b9b;--tag-express-bg: rgba(155, 155, 155, .2);--tag-react-native-text: #9adff6;--tag-react-native-border: #69bdd4;--tag-react-native-bg: rgba(105, 189, 212, .2);--tag-esp32-text: #ffb8a8;--tag-esp32-border: #ff7f5a;--tag-esp32-bg: rgba(255, 127, 90, .2);--tag-cpp-text: #b7ceff;--tag-cpp-border: #7ea6ff;--tag-cpp-bg: rgba(126, 166, 255, .2);--tag-blender-text: #ffd2ab;--tag-blender-border: #ff9e45;--tag-blender-bg: rgba(255, 158, 69, .2);--tag-3d-printing-text: #a8f3ff;--tag-3d-printing-border: #62ddee;--tag-3d-printing-bg: rgba(98, 221, 238, .2);--tag-chrome-extension-text: #9ddf8f;--tag-chrome-extension-border: #66b35b;--tag-chrome-extension-bg: rgba(102, 179, 91, .2);--tag-javascript-text: #ffe082;--tag-javascript-border: #ffd54f;--tag-javascript-bg: rgba(255, 213, 79, .2)}html{scroll-behavior:smooth}body{margin:0;font-family:Roboto Slab,sans-serif;font-weight:400;font-style:normal;scroll-behavior:smooth;transition:background-color .1s ease;color:var(--color-text);background:radial-gradient(circle at -20% 10%,var(--color-radial-gradient-1),transparent 50%),radial-gradient(circle at 130% 30%,var(--color-radial-gradient-2),transparent 40%),radial-gradient(circle at -10% 80%,var(--color-radial-gradient-3),transparent 40%);background-color:var(--color-background);transition:background-color .2s ease-in-out}.view-github-badge,.view-live-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem 1rem;margin-bottom:.75rem;text-decoration:none;background-color:var(--color-background-skill);border:2px solid var(--color-background-blur);color:var(--color-text);border-radius:9999px;font-size:.875rem;font-weight:500;transition:border-color .12s ease}.view-github-badge:hover,.view-live-badge:hover{border-color:var(--color-accent)}.view-github-badge svg,.view-live-badge svg{width:1rem;height:1rem}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1;display:flex}}.popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:995;opacity:1;transition:opacity .4s ease}@media(prefers-reduced-motion:reduce){.home-container #home-content .home-top-container .home-welcome .home-location-badge{transition:none;animation:none}.home-container #home-content .home-top-container .home-welcome .home-location-badge:hover{animation:none}.home-container #home-content .home-top-container .home-welcome .home-location-badge:hover .home-location-icon svg{animation:none}}footer{box-sizing:border-box;width:100%;padding:1rem 2rem;margin-top:5rem}footer .footer-title{text-align:center;margin-bottom:.5rem}footer .footer-title .footer-logo{font-family:Courier New,Courier,monospace;font-size:2.5rem;text-decoration:none}footer .footer-title .footer-logo .footer-logo-center{color:var(--color-text-muted)}footer .footer-title .footer-logo .footer-logo-around{color:var(--color-accent-muted)}footer .footer-copyright{text-align:center;color:var(--color-text-muted)}.header-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center;position:fixed;top:0;box-sizing:border-box;width:100%;padding:.25rem 1rem;z-index:12;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);transition:top .15s ease-in-out;z-index:1000}.header-container.header-hide{top:-72px}.header-container .header-logo{font-family:Courier New,Courier,monospace;font-size:3.5rem;text-decoration:none;color:var(--color-text);display:inline-flex;align-items:center;line-height:1}.header-container .header-logo .header-logo-around{color:var(--color-accent);display:inline-flex;align-items:center}.header-container .header-logo .header-logo-center{position:relative;top:5px}.header-container .header-controls{display:flex;align-items:center;gap:.75rem}.header-container .skip-link{position:absolute;left:1rem;top:-64px;padding:.5rem .9rem;border-radius:8px;background-color:var(--color-background);color:var(--color-text);border:2px solid var(--color-accent);text-decoration:none;font-size:.95rem;z-index:1100;transition:top .12s ease-in-out}.header-container .skip-link:focus,.header-container .skip-link:focus-visible{top:.6rem;outline:none}.theme-switch-container .theme-switch{border:none;background:transparent;color:var(--color-text);padding:0;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .2s ease}.theme-switch-container .theme-switch:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;border-radius:8px}.theme-switch-container .theme-switch:hover{transform:scale(1.1)}.theme-switch-container .theme-switch:hover svg{color:var(--color-accent)}.theme-switch-container .theme-switch:active{transform:scale(.9)}.language-switch{display:inline-grid;grid-template-columns:1fr 1fr;align-items:center;position:relative;isolation:isolate;border:1px solid var(--color-background-skill);border-radius:999px;padding:.2rem;background-color:var(--color-background-blur);-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px)}.language-switch .language-switch-indicator{position:absolute;top:.2rem;bottom:.2rem;left:.2rem;box-sizing:border-box;width:calc((100% - .4rem - 1px)/2);border-radius:999px;border:1px solid var(--color-accent);background-color:var(--color-background-skill);transform:translate(0);transition:transform .24s ease;z-index:0;pointer-events:none}.language-switch.active-de .language-switch-indicator{transform:translate(100%)}.language-switch .language-switch-button{border:1px solid transparent;border-radius:999px;background:transparent;color:var(--color-text-muted);font-weight:700;font-size:.78rem;letter-spacing:.04em;line-height:1;padding:.35rem .55rem;min-width:2.75rem;cursor:pointer;text-align:center;position:relative;z-index:1;transition:color .22s ease}.language-switch .language-switch-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.language-switch .language-switch-button.active{color:var(--color-text)}.experience-container{margin-bottom:2rem;width:100%;max-width:800px}.experience-container .experience-list{list-style:none;padding:0;padding-inline:10%;margin:0;display:flex;flex-direction:column;gap:1rem;margin-top:1rem;padding-bottom:3rem}.experience-container .experience-item{display:flex;align-items:center;gap:1rem;background-color:var(--color-background-skill);padding:1rem;border-radius:12px;transition:background-color .2s ease}.experience-container .experience-icon{width:48px;height:48px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.experience-container .experience-icon img{width:100%;height:100%;padding:4px;object-fit:contain;border-radius:8px}.experience-container .experience-details{display:flex;flex-direction:column;gap:.25rem;text-align:left}.experience-container .experience-title{margin:0;font-size:1.1rem;font-weight:600;color:var(--color-text)}.experience-container .experience-company{font-size:.95rem;color:var(--color-text-muted)}.experience-container .experience-dates{font-size:.85rem;font-family:monospace;background-color:var(--color-background-experience-dates);padding:.2rem .5rem;border-radius:4px;width:fit-content;font-weight:600}.experience-container .experience-company em{font-style:normal;color:var(--color-accent)}.home-container{display:flex;flex-direction:column}.home-container #home-content{min-height:calc(100vh - 72px);margin-top:10rem;position:relative;box-sizing:border-box;padding-bottom:6rem}.home-container #home-content .home-top-container{display:flex;flex-direction:row;justify-content:center;align-items:center;width:100%}.home-container #home-content .home-top-container .home-picture-container{width:500px}.home-container #home-content .home-top-container .home-picture-container .home-picture-blob{position:relative}.home-container #home-content .home-top-container .home-picture-container .home-picture-blob .home-picture-text{font-family:Fuzzy Bubbles,sans-serif;position:absolute;top:25%;left:50%;rotate:20deg;color:var(--color-text-invert);font-weight:700;font-size:1.2rem}.home-container #home-content .home-top-container .home-picture-container .home-picture-blob .home-picture-text-arrow{rotate:120deg;width:60px}.home-container #home-content .home-top-container .home-welcome{display:flex;flex-direction:column;justify-content:center}.home-container #home-content .home-top-container .home-welcome .home-welcome-1{font-family:Fuzzy Bubbles,sans-serif;font-weight:400;font-style:italic;font-size:3.5rem}.home-container #home-content .home-top-container .home-welcome .home-welcome-name{margin-left:1ch;font-size:4.5rem}.home-container #home-content .home-top-container .home-welcome .home-welcome-sub{margin-left:4ch;font-size:1.9rem}.home-container #home-content .home-top-container .home-welcome .home-welcome-sub u{text-decoration-color:var(--color-accent)}.home-container #home-content .home-top-container .home-welcome .home-location-badge{margin-top:.9rem;margin-left:7ch;display:inline-flex;align-items:center;gap:.45rem;-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);color:var(--color-text-muted);font-size:.92rem;font-weight:600;line-height:1}.home-container #home-content .home-top-container .home-welcome .home-location-badge .home-location-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--color-accent)}.home-container #home-content .home-top-container .home-welcome .home-location-badge .home-location-icon svg{width:1rem;height:1rem;transform-origin:50% 85%;transition:transform .18s ease}@media screen and (max-width:1100px){.home-container #home-content .home-top-container .home-welcome .home-welcome-1{font-size:2.5rem}.home-container #home-content .home-top-container .home-welcome .home-welcome-name{font-size:3.25rem}.home-container #home-content .home-top-container .home-welcome .home-location-badge{font-size:.85rem}}@media screen and (max-width:900px){.home-container #home-content .home-top-container .home-picture-container{width:400px}.home-container #home-content .home-top-container .home-welcome-1{font-size:2rem}.home-container #home-content .home-top-container .home-welcome-name{font-size:2.5rem}}@media screen and (max-width:800px){.home-container #home-content .home-top-container .home-picture-container{width:300px}.home-container #home-content .home-top-container .home-welcome-1{font-size:1.5rem}.home-container #home-content .home-top-container .home-welcome-name{font-size:2.5rem}}@media screen and (max-width:400px){.home-container #home-content .home-top-container .home-picture-container{width:250px}.home-container #home-content .home-top-container .home-welcome .home-welcome-name{font-size:2.5rem}}.home-container #home-content #links{display:flex;justify-content:center;margin-top:2rem;margin-bottom:3.5rem}.home-container #home-content #links ul{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;list-style:none;gap:3rem;padding:0}.home-container #home-content #links ul li{display:flex;flex-direction:column;justify-content:center;width:110px;height:100px;list-style:none}.home-container #home-content #links ul li a{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--color-text);background-color:var(--color-background-blur);-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);padding:.5rem;border:2px solid var(--color-background-skill);border-radius:10px;transition:all .1s ease;text-decoration:none;white-space:nowrap}.home-container #home-content #links ul li a .clicked-link{background-color:red!important}.home-container #home-content #links ul li a:hover{border:2px solid var(--color-accent)}.home-container #home-content #links ul li a svg{transition:all .1s ease;width:60px;height:60px;fill:var(--color-text);color:var(--color-text)}@media(max-width:299px)and (max-height:769px),(max-width:339px)and (max-height:679px),(max-width:439px)and (max-height:739px),(max-width:814px)and (max-height:799px),(max-width:959px)and (max-height:799px){.home-container #scroll-down-container{display:none}}.home-container #scroll-down-container{position:absolute;bottom:100px;left:50%;translate:-50%}.home-container #scroll-down-container:hover a{color:var(--color-text-muted)}.home-container #scroll-down-container a{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-decoration:none;color:var(--color-text-deep-muted);font-weight:700;transition:color .1s ease}.home-container #scroll-down-container a svg{width:40px;height:40px;animation:moveUpDown 1.2s infinite ease-out}@keyframes moveUpDown{0%{transform:translateY(0)}50%{transform:translateY(7px)}to{transform:translateY(0)}}@media screen and (max-width:310px){.home-container .home-welcome-sub{font-size:1.5rem!important}}@media screen and (max-width:280px){.home-container .home-welcome-name{font-size:2rem!important}.home-container .home-welcome-sub{font-size:1.3rem!important}}@media screen and (max-width:700px){.home-container #home-content{margin-top:5rem}.home-container #home-content .home-top-container{flex-direction:column!important}.home-container .home-welcome{align-items:center}.home-container .home-welcome .home-welcome-name{margin-left:0ch!important}.home-container .home-welcome .home-welcome-sub{margin:0ch!important}.home-container .home-welcome .home-location-badge{margin-left:0!important}.home-container #links ul{gap:1rem!important;row-gap:1.5rem!important}.home-container #links ul li{width:70px!important;height:70px!important}.home-container #links ul li a{font-size:.8rem}.home-container #links ul li a svg{width:35px!important;height:40px!important}}.home-container #about{margin:1rem;margin-top:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;will-change:transform}.home-container #about h2,.home-container #about h3{text-align:center}.home-container #about h2{margin-bottom:2rem;font-size:3rem}.home-container #about h3{margin-bottom:3rem;font-size:2rem}.home-container #about .about-container{border-radius:10px;padding:1rem 0;max-width:800px;margin-bottom:1rem}.home-container #about .about-container.blur-container{background-color:var(--color-background-blur);-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px)}.home-container #about .about-container a{color:var(--color-accent);font-weight:700}.home-container #about .about-container.skills-container h3{margin-bottom:1rem;font-size:2.5rem}.home-container #about .about-container.skills-container .skill-subtitle-container{display:flex;justify-content:center}.home-container #about .about-container.skills-container .skill-subtitle-container .skill-subtitle-text{margin-bottom:2rem;color:var(--color-text-muted-subtitle)}.home-container #about .about-container.skills-container ul{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;list-style:none;gap:2rem;padding:0}.home-container #about .about-container.skills-container ul li{width:110px;height:110px;-webkit-user-select:none;user-select:none;position:relative}.home-container #about .about-container.skills-container ul li .skill-inner-container{cursor:pointer;box-sizing:border-box;padding:1rem;border-radius:8px;background-color:var(--color-background-skill);-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:110px;height:110px;z-index:990;transition:transform .4s ease,top .4s ease,left .4s ease,width .4s ease,height .4s ease,border .2s ease-in-out;position:relative;transform-style:preserve-3d;border:2px solid var(--color-background-skill)}.home-container #about .about-container.skills-container ul li .skill-inner-container:hover{border:2px solid var(--color-accent)}.home-container #about .about-container.skills-container ul li .skill-inner-container img{width:60px;height:60px}.home-container #about .about-container.skills-container ul li .skill-inner-container .card-face{box-sizing:border-box;position:absolute;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;backface-visibility:hidden}.home-container #about .about-container.skills-container ul li .skill-inner-container .card-face .card-thumbnail{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.25rem}.home-container #about .about-container.skills-container ul li .skill-inner-container .card-face .card-description{display:none}.home-container #about .about-container.skills-container ul li .skill-inner-container.active .card-face{justify-content:start;align-items:center;padding:.7rem}.home-container #about .about-container.skills-container ul li .skill-inner-container.active .card-face .card-description{display:flex;text-align:justify;padding-block:1rem;line-height:2.2rem;width:80%;overflow-y:auto;font-size:1.15rem}@media screen and (max-width:700px){.home-container #about .about-container.skills-container ul li .skill-inner-container.active .card-face .card-description{text-align:left;font-size:1rem;line-height:1.8rem;width:90%}}.home-container #about .about-container.skills-container ul li .skill-inner-container.active .card-face .card-description.skill-clicked-out{animation:fade-out .2s ease forwards}.home-container #about .about-container.skills-container ul li .skill-inner-container.active .card-face .card-description.skill-clicked-in{animation:fade-in .8s ease forwards}.home-container #about .about-container.projects-container{width:100%}.home-container #about .about-container.projects-container h3{margin-bottom:1.5rem;font-size:2.2rem}.home-container #about .about-container.projects-container .projects-list{list-style:none;margin:0;padding:0 1rem 1rem;display:grid;grid-template-columns:1fr;gap:1rem}.home-container #about .about-container.projects-container .projects-list li{width:100%}.home-container #about .about-container.projects-container .project-card-link{text-decoration:none;color:var(--color-text);background-color:var(--color-background-skill);border:2px solid var(--color-background-skill);border-radius:12px;display:flex;flex-direction:column;gap:1rem;padding:1rem;cursor:pointer;position:relative;transition:border-color .12s ease,transform .12s ease}.home-container #about .about-container.projects-container .project-card-link .project-card-indicator{position:absolute;top:.5rem;right:.5rem;transform:rotate(-45deg);display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);z-index:2}.home-container #about .about-container.projects-container .project-card-link .project-card-indicator svg{width:1.5rem;height:1.5rem}.home-container #about .about-container.projects-container .project-card-link:active{transform:scale(.99);border-color:var(--color-accent)}.home-container #about .about-container.projects-container .project-card-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-color:var(--color-accent)}.home-container #about .about-container.projects-container .project-card-link .project-card-media{order:2;width:220px;height:220px;align-self:center;border-radius:10px;overflow:hidden;border:1px solid var(--color-background-blur)}.home-container #about .about-container.projects-container .project-card-link .project-card-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}@media(hover:hover){.home-container #about .about-container.projects-container .project-card-link:hover{border-color:var(--color-accent)}.home-container #about .about-container.projects-container .project-card-link:hover .project-card-media img{transform:scale(1.05)}}.home-container #about .about-container.projects-container .project-card{display:contents}.home-container #about .about-container.projects-container .project-card .text-container{order:1;display:flex;flex-direction:column;gap:.75rem}.home-container #about .about-container.projects-container .project-card .text-container h4{margin:0;font-size:1.3rem}.home-container #about .about-container.projects-container .project-card .text-container p{margin:0;padding:0;text-align:left;font-size:1rem;font-weight:400;line-height:1.8;color:var(--color-text)}.home-container #about .about-container.projects-container .project-card .project-card-badges{order:2;display:flex;flex-wrap:wrap;gap:.5rem}.home-container #about .about-container.projects-container .project-card .project-card-tags{order:3;display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none}.home-container #about .about-container.projects-container .project-card .project-card-tags li{--project-tag-text: var(--color-text);--project-tag-border: var(--color-text-muted);--project-tag-bg: var(--color-background-blur);background-color:var(--project-tag-bg);color:var(--project-tag-text);-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);width:fit-content;padding:.25rem 1rem;border-radius:999px;border:1px solid var(--project-tag-border);font-size:.8rem;font-weight:600;line-height:1.4}.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--react{--project-tag-text: var(--tag-react-text);--project-tag-border: var(--tag-react-border);--project-tag-bg: var(--tag-react-bg)}.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--typescript{--project-tag-text: var(--tag-typescript-text);--project-tag-border: var(--tag-typescript-border);--project-tag-bg: var(--tag-typescript-bg)}.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--node-js,.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--nodejs{--project-tag-text: var(--tag-nodejs-text);--project-tag-border: var(--tag-nodejs-border);--project-tag-bg: var(--tag-nodejs-bg)}.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--express{--project-tag-text: var(--tag-express-text);--project-tag-border: var(--tag-express-border);--project-tag-bg: var(--tag-express-bg)}.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--react-native{--project-tag-text: var(--tag-react-native-text);--project-tag-border: var(--tag-react-native-border);--project-tag-bg: var(--tag-react-native-bg)}.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--esp32{--project-tag-text: var(--tag-esp32-text);--project-tag-border: var(--tag-esp32-border);--project-tag-bg: var(--tag-esp32-bg)}.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--c-,.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--cpp,.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--c-plus-plus{--project-tag-text: var(--tag-cpp-text);--project-tag-border: var(--tag-cpp-border);--project-tag-bg: var(--tag-cpp-bg)}.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--blender{--project-tag-text: var(--tag-blender-text);--project-tag-border: var(--tag-blender-border);--project-tag-bg: var(--tag-blender-bg)}.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--3d-printing{--project-tag-text: var(--tag-3d-printing-text);--project-tag-border: var(--tag-3d-printing-border);--project-tag-bg: var(--tag-3d-printing-bg)}.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--chrome-extension{--project-tag-text: var(--tag-chrome-extension-text);--project-tag-border: var(--tag-chrome-extension-border);--project-tag-bg: var(--tag-chrome-extension-bg)}.home-container #about .about-container.projects-container .project-card .project-card-tags li.project-tag--javascript{--project-tag-text: var(--tag-javascript-text);--project-tag-border: var(--tag-javascript-border);--project-tag-bg: var(--tag-javascript-bg)}@media screen and (min-width:700px){.home-container #about .about-container.projects-container .projects-list{padding:0 1.5rem 1.5rem}.home-container #about .about-container.projects-container .project-card-link{padding:1.25rem;flex-direction:row;align-items:stretch}.home-container #about .about-container.projects-container .project-card-link .project-card-media{width:240px;height:240px;flex-shrink:0}.home-container #about .about-container.projects-container .project-card{display:flex;flex-direction:column;justify-content:space-between}}.home-container #about p{font-size:1.15rem;text-align:center;margin-block:1rem;padding-inline:10%;line-height:3.5ch}.home-container #about p a{color:var(--color-text);text-decoration-color:var(--color-text);transition:all .1s ease}.home-container #about p a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}.home-container #about p em{font-style:normal;color:var(--color-accent);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.project-page{display:flex;flex-direction:column;min-height:100vh}.project-content{max-width:860px;width:100%;box-sizing:border-box;min-width:0;margin:0 auto;padding:6rem 1.5rem 4rem;flex:1}.project-content p,.project-content figcaption{overflow-wrap:anywhere}.project-back{margin-bottom:2rem}.project-back .project-back-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--color-text);text-decoration:none;font-size:.95rem;transition:color .15s ease;border-radius:6px;padding:.3rem .5rem}.project-back .project-back-link:hover,.project-back .project-back-link:focus-visible{color:var(--color-accent)}.project-back .project-back-link:hover svg,.project-back .project-back-link:focus-visible svg{transform:translate(-.25rem)}.project-back .project-back-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.project-back .project-back-link svg{width:18px;height:18px;flex-shrink:0;transition:transform .15s ease}.project-hero-badges{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:.75rem}.project-tldr{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:3.5rem;padding:1.5rem 1rem;border-radius:12px;background-color:var(--color-background-blur);-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px)}.project-tldr h2{margin:0;font-size:1.4rem;font-weight:700;letter-spacing:.04em;color:var(--color-accent)}.project-tldr .project-tldr-text{font-size:1.05rem;line-height:1.7;color:var(--color-text);text-align:center;max-width:560px;margin:0;font-weight:500}.project-section{margin-bottom:3.5rem}.project-section h2{font-size:1.6rem;font-weight:700;margin:0 0 1rem;letter-spacing:-.01em}.project-section p{font-size:1.05rem;line-height:1.75;color:var(--color-text);margin:0 0 1rem}.project-section p:last-child{margin-bottom:0}.project-section em{font-style:italic;color:var(--color-accent);font-weight:500}.project-content *:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}.project-content pre.code-block{margin:0 0 1rem;padding:.85rem;border-radius:10px;border:1px solid var(--color-background-skill);background-color:var(--color-background-skill);overflow-x:auto;scrollbar-color:var(--color-text-deep-muted) transparent}.project-content pre.code-block::-webkit-scrollbar{height:10px;background:transparent}.project-content pre.code-block::-webkit-scrollbar-track{background:transparent}.project-content pre.code-block::-webkit-scrollbar-corner{background:transparent}.project-content pre.code-block::-webkit-scrollbar-thumb{background-color:var(--color-text-deep-muted);border-radius:999px;border:2px solid transparent;background-clip:content-box}.project-content code.code-highlight{font-family:Roboto Mono,monospace;font-size:.82rem;line-height:1.55;color:var(--color-text);white-space:pre}.project-content code.code-highlight .ts-keyword,.project-content code.code-highlight .json-key{color:var(--color-accent)}.project-content code.code-highlight .ts-string,.project-content code.code-highlight .json-string{color:var(--color-picture-blob-2)}.project-content code.code-highlight .ts-number,.project-content code.code-highlight .json-number{color:var(--color-picture-blob-1)}.project-content code.code-highlight .ts-type,.project-content code.code-highlight .json-boolean{color:var(--color-accent-hover)}.project-content code.code-highlight .ts-comment{color:#6a9955}.project-content code.code-highlight .json-null{color:var(--color-text-muted)}[data-theme=light] .project-content code.code-highlight .ts-string,[data-theme=light] .project-content code.code-highlight .json-string{color:#0b7f5f}[data-theme=light] .project-content code.code-highlight .ts-number,[data-theme=light] .project-content code.code-highlight .json-number{color:#1f4ea8}[data-theme=light] .project-content code.code-highlight .ts-type,[data-theme=light] .project-content code.code-highlight .json-boolean{color:#174182}[data-theme=light] .project-content code.code-highlight .ts-comment{color:#3e8538}[data-theme=light] .project-content code.code-highlight .json-null{color:#5d636a}[data-theme=dark] .project-content code.code-highlight .ts-keyword,[data-theme=dark] .project-content code.code-highlight .json-key{color:#3a80f9}[data-theme=dark] .project-content code.code-highlight .ts-string,[data-theme=dark] .project-content code.code-highlight .json-string{color:#1ce8ae}[data-theme=dark] .project-content code.code-highlight .ts-type,[data-theme=dark] .project-content code.code-highlight .json-boolean{color:#d6601c}[data-theme=dark] .project-content code.code-highlight .ts-number,[data-theme=dark] .project-content code.code-highlight .json-number{color:#0059ff}[data-theme=dark] .project-content code.code-highlight .ts-comment{color:#6a9955}@media screen and (max-width:500px){.project-content{padding:5rem 1rem 3rem}.project-section h2{font-size:1.35rem}}.back-to-top{position:fixed;bottom:2rem;right:2rem;z-index:900;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:2px solid var(--color-background-skill);border-radius:12px;background-color:var(--color-background-blur);-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);color:var(--color-text);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease,border-color .15s ease,color .15s ease}.back-to-top svg{width:20px;height:20px}.back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top:hover,.back-to-top:focus-visible{border-color:var(--color-accent);color:var(--color-accent)}.back-to-top:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media screen and (max-width:500px){.back-to-top{bottom:1.25rem;right:1.25rem;width:40px;height:40px}}.giftboard-hero{text-align:center;margin-bottom:3rem}.giftboard-hero .giftboard-hero-icon{display:flex;justify-content:center;margin-bottom:1rem}.giftboard-hero .giftboard-hero-icon svg{width:56px;height:56px;color:var(--color-accent)}.giftboard-hero h1{font-size:3rem;font-weight:700;margin:0 0 .75rem;letter-spacing:-.02em}.giftboard-hero .giftboard-tagline{font-size:1.1rem;color:var(--color-text-muted);max-width:520px;margin:0 auto;line-height:1.6}.giftboard-hero .giftboard-tagline .giftboard-inline-link{color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:2px}.giftboard-hero .giftboard-tagline .giftboard-inline-link:hover,.giftboard-hero .giftboard-tagline .giftboard-inline-link:focus-visible{color:var(--color-accent-hover);text-decoration-color:var(--color-accent-hover)}.giftboard-story blockquote{margin:0;padding:1.5rem 1.75rem;border-left:4px solid var(--color-accent);background-color:var(--color-background-blur);-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);border-radius:0 12px 12px 0}.giftboard-story blockquote p{font-size:1.02rem;line-height:1.75;color:var(--color-text);margin:0 0 1rem}.giftboard-story blockquote p:last-child{margin-bottom:0}.giftboard-alternating{display:flex;align-items:center;gap:5rem;margin-bottom:4rem}.giftboard-alternating[data-image-side=right] .giftboard-alt-text{order:1}.giftboard-alternating[data-image-side=right] .giftboard-alt-image,.giftboard-alternating[data-image-side=left] .giftboard-alt-text{order:2}.giftboard-alternating[data-image-side=left] .giftboard-alt-image{order:1}.giftboard-alternating .giftboard-alt-text{flex:1;min-width:0}.giftboard-alternating .giftboard-alt-text h2{margin-top:0}.giftboard-alternating .giftboard-alt-text p{font-size:1rem;line-height:1.7;color:var(--color-text)}.giftboard-alternating .giftboard-alt-image{flex:1;min-width:0;perspective:1200px}.giftboard-alternating .giftboard-how-list,.giftboard-alternating .giftboard-tech-grid{grid-template-columns:1fr}@media screen and (max-width:860px){.giftboard-alternating{flex-direction:column;gap:2rem}.giftboard-alternating[data-image-side=right] .giftboard-alt-text,.giftboard-alternating[data-image-side=left] .giftboard-alt-text{order:1}.giftboard-alternating[data-image-side=right] .giftboard-alt-image,.giftboard-alternating[data-image-side=left] .giftboard-alt-image{order:2}.giftboard-alternating .giftboard-how-list,.giftboard-alternating .giftboard-tech-grid{grid-template-columns:repeat(2,1fr)}}@media screen and (max-width:600px){.giftboard-alternating .giftboard-how-list,.giftboard-alternating .giftboard-tech-grid{grid-template-columns:1fr}}.giftboard-3d-image{margin:0}.giftboard-3d-image .image-frame{width:100%;max-width:100%;border-radius:10px}.giftboard-3d-image figcaption{margin-top:.65rem;font-size:.9rem;color:var(--color-text-muted);text-align:center}.giftboard-bottom-image{margin-bottom:3.5rem;perspective:1200px}.giftboard-bottom-image .giftboard-bottom-image-figure{margin:0;max-width:680px;margin-inline:auto}.giftboard-bottom-image .giftboard-bottom-image-figure .image-frame{width:100%;max-width:100%;margin-inline:auto}.giftboard-bottom-image .giftboard-bottom-image-figure figcaption{margin-top:.6rem;font-size:.9rem;color:var(--color-text-muted);text-align:center}.giftboard-how-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}.giftboard-how-list li{display:flex;align-items:flex-start;gap:.85rem;padding:1.15rem;background-color:var(--color-background-blur);-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);border-radius:12px;border:1px solid transparent;transition:border-color .2s ease}.giftboard-how-list li strong{display:block;font-size:1rem;margin-bottom:.2rem}.giftboard-how-list li p{font-size:.92rem;line-height:1.55;color:var(--color-text);margin:0}.giftboard-how-list .giftboard-how-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border-radius:10px;background-color:var(--color-background-skill);color:var(--color-accent)}.giftboard-how-list .giftboard-how-icon svg{width:22px;height:22px}@media screen and (max-width:700px){.giftboard-how-list{grid-template-columns:1fr}}.giftboard-tech-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}@media screen and (max-width:600px){.giftboard-tech-grid{grid-template-columns:1fr}}.giftboard-tech-card{padding:1.5rem;background-color:var(--color-background-blur);-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);border-radius:12px;border:1px solid transparent;transition:border-color .2s ease}.giftboard-tech-card .giftboard-tech-card-icon{margin-bottom:.5rem;color:var(--color-accent)}.giftboard-tech-card .giftboard-tech-card-icon svg{width:28px;height:28px}.giftboard-tech-card h3{font-size:1.15rem;font-weight:600;margin:0 0 .5rem}.giftboard-tech-card p{font-size:.95rem;line-height:1.6;color:var(--color-text);margin:0}.giftboard-json-showcase .giftboard-json-part{margin-bottom:1.5rem;padding:1rem;border-radius:12px;background-color:var(--color-background-blur);-webkit-backdrop-filter:blur;backdrop-filter:blur}.giftboard-json-showcase .giftboard-json-part h3{margin:0 0 .6rem;font-size:1.05rem}.giftboard-json-showcase .giftboard-json-part p{margin-bottom:.9rem;font-size:.98rem;line-height:1.65;color:var(--color-text)}.giftboard-json-showcase .giftboard-json-part pre{margin:0;padding:.85rem;border-radius:10px;border:1px solid var(--color-background-skill);background-color:var(--color-background-skill);overflow-x:auto;scrollbar-color:var(--color-text-deep-muted) transparent}.giftboard-json-showcase .giftboard-json-part pre::-webkit-scrollbar{height:10px;background:transparent}.giftboard-json-showcase .giftboard-json-part pre::-webkit-scrollbar-track{background:transparent}.giftboard-json-showcase .giftboard-json-part pre::-webkit-scrollbar-corner{background:transparent}.giftboard-json-showcase .giftboard-json-part pre::-webkit-scrollbar-thumb{background-color:var(--color-text-deep-muted);border-radius:999px;border:2px solid transparent;background-clip:content-box}.giftboard-json-showcase .giftboard-json-part code{font-family:Roboto Mono,monospace;font-size:.82rem;line-height:1.55;color:var(--color-text);white-space:pre}.giftboard-json-showcase .giftboard-json-part code .json-key{color:var(--color-accent)}.giftboard-json-showcase .giftboard-json-part code .json-string{color:var(--color-picture-blob-2)}.giftboard-json-showcase .giftboard-json-part code .json-number{color:var(--color-picture-blob-1)}.giftboard-json-showcase .giftboard-json-part code .json-boolean{color:var(--color-accent-hover)}.giftboard-json-showcase .giftboard-json-part code .json-null{color:var(--color-text-muted)}.giftboard-scrape-explainer pre{margin:0 0 1rem;padding:.85rem;border-radius:10px;border:1px solid var(--color-background-skill);background-color:var(--color-background-skill);overflow-x:auto;scrollbar-color:var(--color-text-deep-muted) transparent}.giftboard-scrape-explainer pre::-webkit-scrollbar{height:10px;background:transparent}.giftboard-scrape-explainer pre::-webkit-scrollbar-track{background:transparent}.giftboard-scrape-explainer pre::-webkit-scrollbar-corner{background:transparent}.giftboard-scrape-explainer pre::-webkit-scrollbar-thumb{background-color:var(--color-text-deep-muted);border-radius:999px;border:2px solid transparent;background-clip:content-box}.giftboard-scrape-explainer code{font-family:Roboto Mono,monospace;font-size:.82rem;line-height:1.55;color:var(--color-text);white-space:pre}.giftboard-scrape-explainer code .ts-keyword,.giftboard-scrape-explainer code .json-key{color:var(--color-accent)}.giftboard-scrape-explainer code .ts-string,.giftboard-scrape-explainer code .json-string{color:var(--color-picture-blob-2)}.giftboard-scrape-explainer code .ts-number,.giftboard-scrape-explainer code .json-number{color:var(--color-picture-blob-1)}.giftboard-scrape-explainer code .ts-type,.giftboard-scrape-explainer code .json-boolean{color:var(--color-accent-hover)}.giftboard-scrape-explainer code .ts-comment,.giftboard-scrape-explainer code .json-null{color:var(--color-text-muted)}[data-theme=light] .giftboard-json-showcase .giftboard-json-part code .json-string{color:#0b7f5f}[data-theme=light] .giftboard-json-showcase .giftboard-json-part code .json-number{color:#1f4ea8}[data-theme=light] .giftboard-json-showcase .giftboard-json-part code .json-boolean{color:#174182}[data-theme=light] .giftboard-json-showcase .giftboard-json-part code .json-null{color:#5d636a}[data-theme=light] .giftboard-scrape-explainer code .ts-string,[data-theme=light] .giftboard-scrape-explainer code .json-string{color:#0b7f5f}[data-theme=light] .giftboard-scrape-explainer code .ts-number,[data-theme=light] .giftboard-scrape-explainer code .json-number{color:#1f4ea8}[data-theme=light] .giftboard-scrape-explainer code .ts-type,[data-theme=light] .giftboard-scrape-explainer code .json-boolean{color:#174182}[data-theme=light] .giftboard-scrape-explainer code .ts-comment,[data-theme=light] .giftboard-scrape-explainer code .json-null{color:#5d636a}[data-theme=dark] .giftboard-json-showcase .giftboard-json-part code .json-key{color:#3a80f9}[data-theme=dark] .giftboard-json-showcase .giftboard-json-part code .json-string{color:#1ce8ae}[data-theme=dark] .giftboard-json-showcase .giftboard-json-part code .json-number{color:#0059ff}[data-theme=dark] .giftboard-scrape-explainer code .ts-keyword,[data-theme=dark] .giftboard-scrape-explainer code .json-key{color:#3a80f9}[data-theme=dark] .giftboard-scrape-explainer code .ts-string,[data-theme=dark] .giftboard-scrape-explainer code .json-string{color:#1ce8ae}[data-theme=dark] .giftboard-scrape-explainer code .ts-type,[data-theme=dark] .giftboard-scrape-explainer code .json-boolean{color:#d6601c}[data-theme=dark] .giftboard-scrape-explainer code .ts-number,[data-theme=dark] .giftboard-scrape-explainer code .json-number{color:#0059ff}@media screen and (max-width:500px){.giftboard-hero h1{font-size:2.2rem}.giftboard-hero .giftboard-tagline{font-size:1rem}.giftboard-json-showcase .giftboard-json-part{padding:.85rem}.giftboard-json-showcase .giftboard-json-part code{font-size:.76rem}}.image-frame{display:block;width:100%;max-width:100%;margin-inline:auto;box-sizing:border-box;border:1px solid var(--color-background-skill);background-color:var(--color-background-blur);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overflow:hidden}.image-frame img{display:block;width:100%;height:auto}.image-frame .viewport{width:100%}.image-frame.is-minimizing,.image-frame.is-closing,.image-frame.is-expanding{z-index:25;transform-origin:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;contain:paint;backdrop-filter:none;-webkit-backdrop-filter:none}.image-frame.is-minimizing{will-change:transform,scale;animation:minimize-orbit .78s both}.image-frame.is-closing{will-change:transform,opacity;animation:close-poof .8s both}.image-frame.is-expanding{will-change:transform;animation:expand-zoom .65s both}.image-frame.default,.image-frame.default img{border-radius:12px}.image-frame.cursor-look{--mouse-rx: 0deg;--mouse-ry: 0deg;transform:rotateY(var(--mouse-ry)) rotateX(var(--mouse-rx));transform-style:preserve-3d;transition:transform .45s cubic-bezier(.03,.98,.52,.99);will-change:transform}.image-frame:is(.safari,.chrome){border-radius:14px}.image-frame:is(.safari,.chrome) .toolbar{border-bottom:1px solid var(--color-background-skill);background-color:var(--color-background-skill)}.image-frame:is(.safari,.chrome) .mode-toggle{display:inline-flex;position:absolute;right:.5rem;align-items:center;justify-content:center;border-radius:999px;border:none;background-color:transparent;color:var(--color-text-muted);cursor:pointer;flex-shrink:0}.image-frame:is(.safari,.chrome) .mode-toggle svg{width:1rem;height:1rem;fill:var(--color-background-browser-dark)}.image-frame:is(.safari,.chrome) .mode-toggle:hover,.image-frame:is(.safari,.chrome) .mode-toggle:focus-visible{color:var(--color-text);border-color:var(--color-accent-muted);outline:none}.image-frame:is(.safari,.chrome) .dot{width:.58rem;height:.58rem;border-radius:999px;display:inline-flex;padding:0;appearance:none;border:1px solid var(--color-background-blur);cursor:pointer}.image-frame:is(.safari,.chrome) .dot:focus-visible{outline:2px solid var(--color-accent-muted);outline-offset:1px}.image-frame:is(.safari,.chrome) .dot.close{background-color:#ff5c5f}.image-frame:is(.safari,.chrome) .dot.minimize{background-color:#fac800}.image-frame:is(.safari,.chrome) .dot.expand{background-color:#34c759}.image-frame:is(.safari,.chrome) .address-bar{height:.72rem;margin-right:2.5rem;border-radius:999px;background-color:var(--color-background-browser-1);border:1px solid var(--color-background-blur)}.image-frame:is(.safari,.chrome) img{border-radius:0 0 12px 12px}.image-frame.safari .toolbar{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem}.image-frame.safari .traffic-lights{position:absolute;display:flex;align-items:center;gap:.35rem;flex-shrink:0}.image-frame.safari .address-bar{width:min(52%,260px);margin-inline:auto}.image-frame.chrome{background-color:var(--color-background-browser-1)}.image-frame.chrome .toolbar{padding:0}.image-frame.chrome .tabs-row{display:flex;gap:.35rem;padding:.2rem .55rem 0 .5rem}.image-frame.chrome .tabs-row .traffic-lights{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.image-frame.chrome .tab{width:86px;height:.78rem;padding-bottom:.35rem;border-radius:.4rem .4rem 0 0;background-color:var(--color-background-blur)}.image-frame.chrome .tab.active{background-color:var(--color-background-browser-2)}.image-frame.chrome .controls-row{display:flex;align-items:center;gap:.55rem;padding:.5rem;background-color:var(--color-background-browser-2)}.image-frame.chrome .actions{display:flex;align-items:center;gap:.28rem}.image-frame.chrome .action{width:.45rem;height:.45rem;border-radius:999px;background-color:var(--color-text-deep-muted);opacity:.75}.image-frame.chrome .address-bar{flex:1}@keyframes minimize-orbit{0%{transform:translateZ(0) rotate(0) scale(1);opacity:1;animation-timing-function:cubic-bezier(.22,.9,.25,1)}12%{transform:translate3d(2vw,-6vh,0) rotate(-6deg) scale(1.05,.95);opacity:1;animation-timing-function:cubic-bezier(.45,0,1,.45)}44%{transform:translate3d(28vw,128vh,0) rotate(34deg) scale(.25,.18);opacity:0;animation-timing-function:linear}52%{transform:translate3d(28vw,128vh,0) rotate(34deg) scale(.25,.18);opacity:0;animation-timing-function:linear}52.01%{transform:translate3d(-18vw,-120vh,0) rotate(-22deg) scale(.25,.18);opacity:0;animation-timing-function:cubic-bezier(.34,1.56,.64,1)}78%{transform:translate3d(1.2vw,1.6vh,0) rotate(-2deg) scale(1.06,.96);opacity:1;animation-timing-function:ease-out}92%{transform:translate3d(-.4vw,-.6vh,0) rotate(.8deg) scale(.985,1.02);opacity:1;animation-timing-function:ease-in-out}to{transform:translateZ(0) rotate(0) scale(1);opacity:1}}@keyframes close-poof{0%{transform:scale(1) rotate(0);opacity:1;animation-timing-function:ease-in-out}10%{transform:scale(1) rotate(-4deg);opacity:1;animation-timing-function:ease-in-out}20%{transform:scale(.98) rotate(4deg);opacity:1;animation-timing-function:cubic-bezier(.55,0,1,.45)}35%{transform:scale(.1) rotate(-2deg);opacity:.2;animation-timing-function:ease-in}45%{transform:scale(0) rotate(6deg);opacity:0;animation-timing-function:linear}55%{transform:scale(0) rotate(6deg);opacity:0;animation-timing-function:cubic-bezier(.34,1.56,.64,1)}78%{transform:scale(1.08) rotate(-1.5deg);opacity:1;animation-timing-function:ease-in-out}90%{transform:scale(.97) rotate(.5deg);opacity:1;animation-timing-function:ease-out}to{transform:scale(1) rotate(0);opacity:1}}@keyframes expand-zoom{0%{transform:scale(1) rotate(0);animation-timing-function:cubic-bezier(.34,1.56,.64,1)}30%{transform:scale(1.15) rotate(-.8deg);animation-timing-function:ease-in-out}50%{transform:scale(1.2) rotate(.5deg);animation-timing-function:cubic-bezier(.34,1.2,.64,1)}70%{transform:scale(.97) rotate(-.3deg);animation-timing-function:ease-in-out}85%{transform:scale(1.03) rotate(0);animation-timing-function:ease-out}to{transform:scale(1) rotate(0)}}@media(prefers-reduced-motion:reduce){.image-frame.is-minimizing,.image-frame.is-closing,.image-frame.is-expanding{animation:none}.image-frame.cursor-look{transition:none;transform:none}}@media(hover:none){.image-frame.cursor-look{transform:none}}.image-frame.mobile{max-width:390px;border-radius:34px;border-color:var(--color-text-deep-muted);background-color:var(--color-text-invert)}.image-frame.mobile .top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.45rem;padding:.52rem .72rem .35rem;background-color:var(--color-text-invert)}.image-frame.mobile .time{justify-self:start;font-size:.72rem;font-weight:600;line-height:1;color:var(--color-background)}.image-frame.mobile .notch{width:clamp(86px,34%,120px);height:.78rem;border-radius:999px;background-color:var(--color-background);opacity:.92;justify-self:center}.image-frame.mobile .status{justify-self:end;display:flex;align-items:center;gap:.32rem}.image-frame.mobile .signal{width:.68rem;height:.48rem;border-radius:1px;border:1px solid var(--color-background);opacity:.82;position:relative}.image-frame.mobile .signal:before{content:"";position:absolute;inset:.18rem .08rem .07rem;background-color:var(--color-background);border-radius:1px;opacity:.82}.image-frame.mobile .wifi{width:.58rem;height:.45rem;border:1.5px solid var(--color-background);border-top-left-radius:999px;border-top-right-radius:999px;border-bottom:0;opacity:.82}.image-frame.mobile .battery{width:1.18rem;height:.55rem;border:1.5px solid var(--color-background);border-radius:.2rem;padding:.06rem;box-sizing:border-box;position:relative;opacity:.88}.image-frame.mobile .battery:after{content:"";position:absolute;right:-.14rem;top:50%;transform:translateY(-50%);width:.09rem;height:.24rem;border-radius:0 2px 2px 0;background-color:var(--color-background);opacity:.88}.image-frame.mobile .level{display:block;width:70%;height:100%;border-radius:.1rem;background-color:var(--color-background)}.image-frame.mobile .bottom{display:flex;justify-content:center;padding:.38rem 0 .55rem;background-color:var(--color-text-invert)}.image-frame.mobile .bottom:before{content:"";width:clamp(80px,30%,110px);height:.2rem;border-radius:999px;background-color:var(--color-background);opacity:.92}.image-frame.mobile .viewport{padding-inline:.35rem}.image-frame.mobile img{border-radius:20px}.image-stack{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.image-stack-pile{position:relative;width:100%;max-width:420px;aspect-ratio:4/3}.image-stack-card{position:absolute;inset:0;border-radius:12px;overflow:hidden;border:1px solid var(--color-background-browser-1);background-color:var(--color-background-skill);transition:transform .35s ease,opacity .35s ease,box-shadow .35s ease;will-change:transform,opacity}.image-stack-card img{display:block;width:100%;height:100%;object-fit:cover;-webkit-user-select:none;user-select:none;pointer-events:none}.image-stack-card--active{z-index:3;transform:translate(0) rotate(0) scale(1);opacity:1;box-shadow:0 4px 20px #0000001f}.image-stack-card--behind-1{z-index:2;transform:translate(8px,6px) rotate(2.5deg) scale(.97);opacity:.7;box-shadow:0 2px 10px #00000014}.image-stack-card--behind-2{z-index:1;transform:translate(16px,12px) rotate(5deg) scale(.94);opacity:.4;box-shadow:0 1px 6px #0000000d}.image-stack-card--hidden{z-index:0;transform:translate(20px,16px) rotate(6deg) scale(.91);opacity:0;pointer-events:none}.image-stack-nav{display:flex;align-items:center;gap:.75rem}.image-stack-arrow{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:2px solid var(--color-background-browser-1);border-radius:10px;background:var(--color-background-skill);color:var(--color-text);cursor:pointer;transition:border-color .15s ease,color .15s ease}.image-stack-arrow svg{width:18px;height:18px}.image-stack-arrow:hover,.image-stack-arrow:focus-visible{border-color:var(--color-accent);color:var(--color-accent)}.image-stack-arrow:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.image-stack-counter{font-size:.8rem;color:var(--color-text-muted);font-weight:600;min-width:3ch;text-align:center}@media screen and (max-width:500px){.image-stack-pile{max-width:300px}}.custom-party-hero{text-align:center;margin-bottom:3rem}.custom-party-hero .custom-party-hero-icon{display:flex;justify-content:center;margin-bottom:.9rem}.custom-party-hero .custom-party-hero-icon svg{width:54px;height:54px;color:var(--color-accent)}.custom-party-hero h1{margin:0 0 .75rem;font-size:2.8rem;letter-spacing:-.02em}.custom-party-hero .custom-party-tagline{max-width:620px;margin:0 auto;color:var(--color-text-muted)}.custom-party-feature-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.custom-party-feature-list li{display:flex;gap:.85rem;align-items:flex-start;padding:1rem;border-radius:10px;background-color:var(--color-background-blur);border:1px solid transparent}.custom-party-feature-list li>span{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;color:var(--color-accent);background-color:var(--color-background-skill);flex-shrink:0}.custom-party-feature-list li>span svg{width:20px;height:20px}.custom-party-feature-list li strong{display:block;margin-bottom:.2rem}.custom-party-feature-list li p{margin:0;color:var(--color-text);font-size:.96rem;line-height:1.55}.custom-party-tech-card{display:flex;gap:.8rem;align-items:flex-start;padding:1.2rem;border-radius:10px;background-color:var(--color-background-blur)}.custom-party-tech-card .custom-party-tech-icon{color:var(--color-accent)}.custom-party-tech-card .custom-party-tech-icon svg{width:26px;height:26px}.custom-party-tech-card p{margin:0}.custom-party-image{margin-bottom:3.5rem}.custom-party-image figure{margin:0;max-width:680px;margin-inline:auto}.custom-party-image img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--color-background-blur)}.custom-party-image figcaption{margin-top:.6rem;text-align:center;color:var(--color-text-muted);font-size:.9rem}@media screen and (max-width:520px){.custom-party-hero h1{font-size:2.15rem}}.nolicom-hero{text-align:center;margin-bottom:3rem}.nolicom-hero .nolicom-hero-icon{display:flex;justify-content:center;margin-bottom:1rem}.nolicom-hero .nolicom-hero-icon svg{width:56px;height:56px;color:var(--color-accent)}.nolicom-hero h1{font-size:3rem;font-weight:700;margin:0 0 .75rem;letter-spacing:-.02em}.nolicom-hero .nolicom-tagline{font-size:1.1rem;color:var(--color-text-muted);max-width:620px;margin:0 auto;line-height:1.6}.nolicom-story blockquote{margin:0;padding:1.5rem 1.75rem;border-left:4px solid var(--color-accent);background-color:var(--color-background-blur);-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);border-radius:0 12px 12px 0}.nolicom-story blockquote p{font-size:1.02rem;line-height:1.75;color:var(--color-text);margin:0 0 1rem}.nolicom-story blockquote p:last-child{margin-bottom:0}.media-height-restrict video{max-height:70vh}.media-height-restrict img{max-height:70vh;object-fit:contain}.nolicom-alternating{display:flex;align-items:center;gap:5rem;margin-bottom:4rem}.nolicom-alternating[data-image-side=right] .nolicom-alt-text{order:1}.nolicom-alternating[data-image-side=right] .nolicom-alt-image,.nolicom-alternating[data-image-side=left] .nolicom-alt-text{order:2}.nolicom-alternating[data-image-side=left] .nolicom-alt-image{order:1}.nolicom-alternating .nolicom-alt-text,.nolicom-alternating .nolicom-alt-image{flex:1;min-width:0}.nolicom-alternating .nolicom-alt-text{padding:1.5rem 1.75rem;background-color:var(--color-background-blur);-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);border-radius:12px;border:1px solid var(--color-background-skill)}.nolicom-alternating .nolicom-alt-text h2{margin-top:0}.nolicom-alternating .nolicom-alt-text p{font-size:1rem;line-height:1.7;color:var(--color-text)}.nolicom-alternating .nolicom-alt-image{display:grid;gap:1rem}.nolicom-alternating .nolicom-alt-image figure{margin:0}.nolicom-alternating figcaption{margin-top:.65rem;font-size:.9rem;color:var(--color-text-muted);text-align:center}@media screen and (max-width:860px){.nolicom-alternating{flex-direction:column;gap:2rem}.nolicom-alternating[data-image-side=right] .nolicom-alt-text,.nolicom-alternating[data-image-side=left] .nolicom-alt-text{order:1}.nolicom-alternating[data-image-side=right] .nolicom-alt-image,.nolicom-alternating[data-image-side=left] .nolicom-alt-image{order:2}}.nolicom-list{margin:.75rem 0 0;padding-left:1.2rem;display:grid;gap:.35rem}.nolicom-list li{color:var(--color-text);line-height:1.6}.nolicom-feature-card{display:flex;gap:.85rem;align-items:flex-start;padding:1.15rem;background-color:var(--color-background-blur);-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);border-radius:12px;border:1px solid transparent;transition:border-color .2s ease;margin-top:.9rem}.nolicom-feature-card>span{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border-radius:10px;background-color:var(--color-background-skill);color:var(--color-accent)}.nolicom-feature-card>span svg{width:22px;height:22px}.nolicom-feature-card strong{display:block;font-size:1rem;margin-bottom:.2rem}.nolicom-feature-card p{font-size:.92rem;line-height:1.55;color:var(--color-text);margin:0}.nolicom-flow{margin:.75rem 0 0;padding-left:1.2rem;display:grid;gap:.45rem}.nolicom-flow li{line-height:1.65}.nolicom-compact-media{margin:1.2rem auto 0;max-width:560px}.nolicom-compact-media figcaption{margin-top:.6rem;text-align:center;color:var(--color-text-muted);font-size:.9rem}.nolicom-media-grid{display:grid;gap:1rem;margin-top:1rem}.nolicom-media-grid.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}.nolicom-media-grid figure{margin:0}.nolicom-media-grid figcaption{margin-top:.6rem;text-align:center;color:var(--color-text-muted);font-size:.9rem}@media screen and (max-width:700px){.nolicom-media-grid.two-up{grid-template-columns:1fr}}.nolicom-video-row{margin-top:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.nolicom-video-row.full-width{grid-template-columns:1fr}.nolicom-video-row figure{margin:0}.nolicom-video-row figcaption{margin-top:.6rem;text-align:center;color:var(--color-text-muted);font-size:.9rem}.nolicom-video-row video{width:100%;display:block;border-radius:12px;border:1px solid var(--color-background-skill);background-color:var(--color-background-blur)}@media screen and (max-width:700px){.nolicom-video-row{grid-template-columns:1fr}}.nolicom-inline-video{width:100%;display:block;border-radius:12px;border:1px solid var(--color-background-skill);background-color:var(--color-background-blur)}.nolicom-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@media screen and (max-width:780px){.nolicom-columns{grid-template-columns:1fr}}.nolicom-column-card{margin:0;padding:1.1rem;border-radius:12px;background-color:var(--color-background-blur);border:1px solid var(--color-background-skill)}.nolicom-column-card h3{margin:0;display:inline-flex;align-items:center;gap:.4rem;font-size:1.05rem}.nolicom-column-card h3 svg{color:var(--color-accent);width:1.1rem;height:1.1rem}@media screen and (max-width:520px){.nolicom-hero h1{font-size:2.2rem}.nolicom-hero .nolicom-tagline{font-size:1rem}}.nolicom-page>.project-section:not(.nolicom-story){padding:1.5rem 1.75rem;background-color:var(--color-background-blur);-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);border-radius:12px;border:1px solid var(--color-background-skill)}.nolicom-inline-arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;margin:0 .2em;color:var(--color-accent)}.nolicom-workspace-video{margin:0}.nolicom-workspace-video video{width:100%;display:block;border-radius:12px;border:1px solid var(--color-background-skill);background-color:var(--color-background-blur)}.nolicom-workspace-video figcaption{margin-top:.6rem;text-align:center;color:var(--color-text-muted);font-size:.9rem}.nolicom-finishing .nolicom-media-grid{margin-top:1.5rem}.chatgpt-booster-hero{text-align:center;margin-bottom:3rem}.chatgpt-booster-hero .chatgpt-booster-hero-icon{display:flex;justify-content:center;margin-bottom:.9rem}.chatgpt-booster-hero .chatgpt-booster-hero-icon svg{width:54px;height:54px;color:var(--color-accent)}.chatgpt-booster-hero h1{margin:0 0 .75rem;font-size:2.8rem;letter-spacing:-.02em}.chatgpt-booster-hero .chatgpt-booster-tagline{max-width:620px;margin:0 auto;color:var(--color-text-muted)}.chatgpt-booster-feature-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.chatgpt-booster-feature-list li{display:flex;gap:.85rem;align-items:flex-start;padding:1rem;border-radius:10px;background-color:var(--color-background-blur);border:1px solid transparent}.chatgpt-booster-feature-list li>span{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;color:var(--color-accent);background-color:var(--color-background-skill);flex-shrink:0}.chatgpt-booster-feature-list li>span svg{width:20px;height:20px}.chatgpt-booster-feature-list li strong{display:block;margin-bottom:.2rem}.chatgpt-booster-feature-list li p{margin:0;color:var(--color-text);font-size:.96rem;line-height:1.55}.chatgpt-booster-privacy-card{display:flex;gap:.8rem;align-items:flex-start;padding:1.2rem;border-radius:10px;background-color:var(--color-background-blur)}.chatgpt-booster-privacy-card .chatgpt-booster-privacy-icon{color:var(--color-accent);flex-shrink:0}.chatgpt-booster-privacy-card .chatgpt-booster-privacy-icon svg{width:26px;height:26px}.chatgpt-booster-privacy-card ul{margin:0;padding:0 0 0 1.2rem;list-style:disc}.chatgpt-booster-privacy-card ul li{margin-bottom:.35rem;font-size:.96rem;line-height:1.55}.chatgpt-booster-tech-card{display:flex;gap:.8rem;align-items:flex-start;padding:1.2rem;border-radius:10px;background-color:var(--color-background-blur)}.chatgpt-booster-tech-card .chatgpt-booster-tech-icon{color:var(--color-accent)}.chatgpt-booster-tech-card .chatgpt-booster-tech-icon svg{width:26px;height:26px}.chatgpt-booster-tech-card p{margin:0}.chatgpt-booster-image{margin-bottom:3.5rem}.chatgpt-booster-image figure{margin:0;max-width:680px;margin-inline:auto}.chatgpt-booster-image img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--color-background-blur)}.chatgpt-booster-image figcaption{margin-top:.6rem;text-align:center;color:var(--color-text-muted);font-size:.9rem}
