@font-face{font-family:Orbitron;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0acc7fdf55eb3220-s.p.532ccaa1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Orbitron;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0acc7fdf55eb3220-s.p.532ccaa1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Orbitron;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0acc7fdf55eb3220-s.p.532ccaa1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Orbitron;font-style:normal;font-weight:900;font-display:swap;src:url(../media/0acc7fdf55eb3220-s.p.532ccaa1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Orbitron Fallback;src:local(Arial);ascent-override:81.5%;descent-override:19.59%;line-gap-override:0.0%;size-adjust:124.05%}.orbitron_20c2194c-module__D43-Nq__className{font-family:Orbitron,Orbitron Fallback;font-style:normal}.orbitron_20c2194c-module__D43-Nq__variable{--font-primary:"Orbitron","Orbitron Fallback"}
@font-face{font-family:Electrolize;font-style:normal;font-weight:400;font-display:swap;src:url(../media/19669a82afbe6afb-s.p.8899b467.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Electrolize Fallback;src:local(Arial);ascent-override:88.87%;descent-override:26.83%;line-gap-override:0.0%;size-adjust:102.51%}.electrolize_3afcc898-module__ziJ48q__className{font-family:Electrolize,Electrolize Fallback;font-style:normal;font-weight:400}.electrolize_3afcc898-module__ziJ48q__variable{--font-secondary:"Electrolize","Electrolize Fallback"}
:root{--color-primary-dark:#bbb;--color-primary-main:#eee;--color-primary-light:#fff;--color-secondary-dark:#19a0b3;--color-secondary-main:#27e1fa;--color-secondary-light:#7eecfb;--color-tertiary-dark:#b5a005;--color-tertiary-main:#fae127;--color-tertiary-light:#feec67;--color-bg-dark:#000;--color-bg-main:#020c1b;--color-bg-light:#112240;--color-text-main:#ccc;--color-heading-main:#eee;--font-primary:"Orbitron",sans-serif;--font-secondary:"Electrolize",sans-serif;--anim-time:.4s;--anim-ease:cubic-bezier(.215,.61,.355,1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--color-bg-dark);color:var(--color-text-main);font-family:var(--font-secondary);min-height:100vh;line-height:1.6;overflow-x:hidden}.page-wrapper{flex-direction:column;display:flex}@media (min-width:1025px){.page-wrapper{display:block}}main{z-index:10;pointer-events:none;width:28%;min-height:100vh;position:relative}main *{pointer-events:auto}.container{max-width:100%;margin:0;padding:0 40px}@media (max-width:768px){.container{padding:0 20px}}header{z-index:1000;pointer-events:none;justify-content:center;width:100%;padding:14px 0 0;display:flex;position:fixed;top:0;left:0}.nav-bar{pointer-events:auto;align-items:center;gap:0;padding:8px 24px;display:flex;position:relative}.header-logo{pointer-events:auto;z-index:1001;align-items:center;height:36px;display:flex;position:fixed;top:14px;right:20px}.header-logo img{object-fit:contain;width:auto;height:100%}.nav-decorator{background:var(--color-secondary-main);opacity:.5;flex-shrink:0;width:18px;height:1px}.nav-decorator-left{margin-right:14px}.nav-decorator-right{margin-left:14px}.nav-tabs{align-items:center;gap:0;list-style:none;display:flex}.nav-tabs li{align-items:center;display:flex}.nav-separator{color:var(--color-secondary-dark);opacity:.3;font-family:var(--font-primary);-webkit-user-select:none;user-select:none;margin:0 6px;font-size:.65rem}.nav-link{color:var(--color-primary-dark);font-family:var(--font-primary);letter-spacing:3px;cursor:pointer;transition:all var(--anim-time)var(--anim-ease);text-transform:uppercase;background:0 0;border:none;align-items:center;gap:6px;padding:6px 12px;font-size:.75rem;display:flex;position:relative}.nav-link-index{color:var(--color-secondary-dark);opacity:.5;letter-spacing:1px;transition:opacity var(--anim-time)var(--anim-ease);font-size:.55rem}.nav-link-label{position:relative}.nav-link-label:after{content:"";background:var(--color-secondary-main);width:0;height:1px;transition:width var(--anim-time)var(--anim-ease);position:absolute;bottom:-4px;left:0;box-shadow:0 0 6px #27e1fa80}.nav-link:hover{color:var(--color-secondary-light)}.nav-link:hover .nav-link-index{opacity:.9}.nav-link:hover .nav-link-label:after{width:100%}.nav-link.active{color:var(--color-secondary-main);text-shadow:0 0 10px #27e1fa66}.nav-link.active .nav-link-index{opacity:1;color:var(--color-secondary-main)}.nav-link.active .nav-link-label:after{background:var(--color-secondary-main);width:100%;box-shadow:0 0 8px #27e1fa99}.hero{z-index:5;pointer-events:none;background:linear-gradient(90deg,#000000eb 0%,#000000d9 40%,#0009 70%,#0000004d 85%,#0000 100%);flex-direction:column;justify-content:center;align-items:flex-start;width:28%;height:100vh;padding:0 30px 0 40px;display:flex;position:fixed;top:0;left:0}.hero *{pointer-events:none!important}.hero h1{font-family:var(--font-primary);color:var(--color-secondary-main);text-shadow:0 0 20px #27e1fa80;margin-bottom:12px;font-size:2rem;line-height:1.2}.hero p{color:var(--color-primary-dark);max-width:320px;font-size:.8rem;line-height:1.7}.hero-separator{background:var(--color-secondary-main);height:2px;box-shadow:0 0 15px var(--color-secondary-main);margin:16px 0;position:relative;overflow:visible}.hero-separator:after{content:"";background:inherit;filter:blur(4px);opacity:.7;width:100%;height:4px;position:absolute;top:-1px;left:0}.hero-download-btn{margin-top:20px;font-size:.75rem;pointer-events:auto!important}.hero-description{border-left:2px solid var(--color-secondary-dark);opacity:.9;margin-left:5px;padding-left:12px;font-style:italic;color:var(--color-text-main)!important;font-size:.75rem!important}.glitch-text{display:inline-block;position:relative}.glitch-text:before,.glitch-text:after{content:attr(data-text);width:100%;height:100%;position:absolute;top:0;left:0}.glitch-text:before{text-shadow:-2px 0 #ff00de;clip:rect(44px,450px,56px,0);animation:5s linear infinite alternate-reverse glitch-anim;left:2px}.glitch-text:after{text-shadow:-2px 0 #00fff9,2px 2px #ff00de;animation:1s linear infinite alternate-reverse glitch-anim2;left:-2px}@keyframes glitch-anim{0%{clip:rect(31px,9999px,94px,0)}20%{clip:rect(60px,9999px,5px,0)}40%{clip:rect(87px,9999px,31px,0)}60%{clip:rect(25px,9999px,65px,0)}80%{clip:rect(73px,9999px,14px,0)}to{clip:rect(45px,9999px,78px,0)}}@keyframes glitch-anim2{0%{clip:rect(65px,9999px,119px,0)}20%{clip:rect(36px,9999px,77px,0)}40%{clip:rect(100px,9999px,40px,0)}60%{clip:rect(19px,9999px,94px,0)}80%{clip:rect(52px,9999px,26px,0)}to{clip:rect(88px,9999px,13px,0)}}.btn,button.btn,a.btn{border:1px solid var(--color-secondary-main);color:var(--color-secondary-main);font-family:var(--font-primary);text-transform:uppercase;letter-spacing:2px;cursor:pointer;transition:all var(--anim-time)var(--anim-ease);background:0 0;padding:12px 30px;font-size:.9rem;text-decoration:none;display:inline-block;position:relative;overflow:hidden}.btn:before,button.btn:before,a.btn:before{content:"";background:var(--color-secondary-main);width:100%;height:100%;transition:left var(--anim-time)var(--anim-ease);z-index:-1;position:absolute;top:0;left:-100%}.btn:hover,button.btn:hover,a.btn:hover{color:var(--color-bg-dark);border-color:var(--color-secondary-main);box-shadow:0 0 20px #27e1fa66}.btn:hover:before,button.btn:hover:before,a.btn:hover:before{left:0}#globe-viz{z-index:1;pointer-events:auto;touch-action:none;width:100%;height:100%;position:fixed;top:0;left:0}#globe-viz canvas{pointer-events:auto;touch-action:none;width:100%;height:100%;display:block}section{opacity:0;padding:0;transition:opacity .5s ease-in-out;display:none}section.active{opacity:1;display:block}#portfolio{width:28%;max-width:28%}@media (max-width:768px){#portfolio{width:100%;max-width:100%}}.section-title{text-align:center;width:100%;color:var(--color-heading-main);font-size:2.5rem;font-family:var(--font-primary);letter-spacing:2px;margin-bottom:30px;display:block;position:relative}.section-title:before,.section-title:after{content:"";background:var(--color-secondary-dark);width:50px;height:2px;position:absolute;top:50%}.section-title:before{margin-right:20px;right:100%}.section-title:after{margin-left:20px;left:100%}.portfolio-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:30px;display:grid}.portfolio-card{border:1px solid var(--color-bg-light);transition:all var(--anim-time)var(--anim-ease);background:#020c1bcc;padding:20px;position:relative;overflow:hidden}.portfolio-card:before{content:"";background:var(--color-secondary-main);transform-origin:0;width:100%;height:2px;transition:transform var(--anim-time)var(--anim-ease);position:absolute;top:0;left:0;transform:scaleX(0)}.portfolio-card:hover{border-color:var(--color-secondary-main);transform:translateY(-5px);box-shadow:0 5px 15px #00000080}.portfolio-card:hover:before{transform:scaleX(1)}.card-title{font-family:var(--font-primary);color:var(--color-primary-main);margin-bottom:10px;font-size:1.2rem}.card-desc{color:var(--color-primary-dark);margin-bottom:20px;font-size:.9rem}.card-link{color:var(--color-secondary-main);text-transform:uppercase;letter-spacing:1px;font-size:.9rem;display:inline-block}.card-link:hover{color:var(--color-tertiary-main)}footer{text-align:center;color:var(--color-primary-dark);border-top:1px solid #27e1fa1a;margin-top:80px;padding:40px 0;font-size:.9rem}.site-footer{z-index:1000;pointer-events:auto;justify-content:center;align-items:center;margin-top:0;padding:6px 18px;display:flex;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.site-footer-text{font-family:var(--font-primary);letter-spacing:2px;text-transform:uppercase;color:var(--color-primary-dark);white-space:nowrap;font-size:.6rem}.site-footer-link{color:var(--color-secondary-main);transition:all var(--anim-time)var(--anim-ease);text-shadow:0 0 8px #27e1fa40;text-decoration:none;position:relative}.site-footer-link:after{content:"";background:var(--color-secondary-main);width:0;height:1px;transition:width var(--anim-time)var(--anim-ease);position:absolute;bottom:-2px;left:0;box-shadow:0 0 6px #27e1fa80}.site-footer-link:hover{color:var(--color-secondary-light)}.site-footer-link:hover:after{width:100%}@media (max-width:1024px){.site-footer{max-width:calc(100% - 32px);margin:24px auto 20px;padding:8px 14px;position:relative;bottom:auto;left:auto;transform:none}.site-footer-text{letter-spacing:1.5px;white-space:normal;text-align:center;font-size:.55rem}}.fade-in-up{animation:.8s cubic-bezier(.215,.61,.355,1) forwards fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1024px){html{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}body{overflow:hidden auto}main{z-index:5;pointer-events:auto;width:100%;padding-top:90px;position:relative;overflow:visible}.hero{text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000c;align-items:center;width:100%;max-width:100%;min-height:auto;padding:40px 20px;position:relative}.hero h1{font-size:2rem}.hero p{max-width:100%;font-size:.9rem}.hero-description{font-size:.8rem!important}.nav-bar{padding:6px 16px}.nav-separator{margin:0 2px}.nav-link{letter-spacing:2px;gap:4px;padding:6px 8px;font-size:.65rem}.nav-link-index{display:none}.nav-decorator{width:10px}#about{background:0 0;width:100%;height:auto;position:relative;top:auto;left:auto;overflow-y:visible}#portfolio{width:100%;height:auto;position:relative;overflow-y:visible}#globe-viz{z-index:1;width:100%;height:65vh;margin-bottom:20px;position:relative;top:0;left:0;right:auto}#globe-viz canvas{max-width:100%;height:100%}.globe-section-divider{background:linear-gradient(to right,transparent,var(--color-secondary-main),transparent);opacity:.3;max-width:80%;height:2px;margin:20px auto}.modal-layout-container{flex-direction:column!important}.info-column{flex:auto!important;max-height:40%!important;padding-right:0!important;overflow-y:auto!important}.preview-column{flex:auto!important;min-height:50%!important}.project-modal{width:98vw!important;height:98vh!important;padding:10px!important}.modal-header{margin-bottom:10px!important}.project-modal h2{font-size:1.3rem!important}.project-modal h3{font-size:.85rem!important}.project-modal p{font-size:.8rem!important}.project-modal .tags span{padding:3px 8px!important;font-size:.6rem!important}.project-modal button{font-size:1.2rem!important}.project-modal .btn{padding:8px 16px!important;font-size:.8rem!important}.hover-card-title{font-size:.95rem!important}.hover-card-description{font-size:.75rem!important}.hover-card-tag{padding:2px 6px!important;font-size:.6rem!important}.project-hover-card{min-width:220px!important;max-width:260px!important}.hover-card-content{padding:12px 14px!important}}.modal{z-index:2000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#000;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.modal-content{border:1px solid var(--color-secondary-main);text-align:center;background-color:#0a0a0ae6;width:90%;max-width:400px;padding:40px;position:relative;box-shadow:0 0 20px #27e1fa33}.modal-content:before{content:"";background:linear-gradient(45deg,var(--color-secondary-main),transparent,var(--color-tertiary-main));z-index:-1;opacity:.5;position:absolute;inset:-2px}.modal-content h2{color:var(--color-secondary-main);font-family:var(--font-primary);letter-spacing:2px;margin-bottom:10px}.modal-content p{color:#aaa;margin-bottom:20px}#password-input{width:100%;color:var(--color-secondary-main);font-family:var(--font-secondary);text-align:center;background:#00000080;border:1px solid #333;outline:none;margin-bottom:20px;padding:10px;font-size:1.2rem;transition:border-color .3s}#password-input:focus{border-color:var(--color-secondary-main);box-shadow:0 0 10px #27e1fa4d}.error-msg{min-height:20px;margin-top:10px;font-size:.9rem;color:#f44!important}.edit-controls-container{flex-direction:column;align-items:center;gap:15px;margin-bottom:30px;display:flex}.edit-buttons-group{flex-wrap:wrap;justify-content:center;gap:15px;display:flex}.btn-edit,.btn-save,.btn-cancel{cursor:pointer;text-transform:uppercase;letter-spacing:1px;border:none;border-radius:4px;min-width:150px;padding:12px 24px;font-size:14px;font-weight:600;transition:all .3s}.btn-edit{background:linear-gradient(135deg,var(--color-secondary-main)0%,var(--color-secondary-dark)100%);color:var(--color-bg-dark)}.btn-edit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #27e1fa66}.btn-save{color:var(--color-bg-dark);background:linear-gradient(135deg,#27e1fa 0%,#14849b 100%)}.btn-save:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #27e1fa66}.btn-cancel{color:#fff;background:linear-gradient(135deg,#fa2727 0%,#9b1414 100%)}.btn-cancel:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #fa272766}.btn-edit:disabled,.btn-save:disabled,.btn-cancel:disabled{opacity:.6;cursor:not-allowed}.error-msg{color:#fa2727;text-align:center;margin-top:10px;font-size:14px}.edit-input{font-family:var(--font-secondary);font-size:inherit;line-height:inherit;max-width:100%;transition:all .3s;display:block;width:90%!important}.edit-input:focus{transform:scale(1.01)}textarea.edit-input{min-height:120px;width:95%!important}@media (max-width:768px){.edit-input{padding:8px 10px;font-size:.9rem;width:100%!important}textarea.edit-input{min-height:100px}.edit-buttons-group{flex-direction:column}.btn-edit,.btn-save,.btn-cancel{width:100%}}@media print{:root{--color-secondary-dark:#14849b;--color-secondary-main:#14849b;--color-secondary-light:#14849b}header,nav,footer,.download-btn-container,.section-title,#globe-viz,#globe-overlay{display:none!important}body{color:#000!important;background:#fff!important}nav a.active,nav a:hover,a,.btn,.modal-content h2,#password-input{color:#14849b!important}nav a:after,.portfolio-card:before{background:#14849b!important}.btn,.modal-content,#password-input:focus{border-color:#14849b!important}}#globe-viz .maplibregl-canvas-container{pointer-events:auto}#globe-viz .maplibregl-ctrl-bottom-left,#globe-viz .maplibregl-ctrl-bottom-right{display:none}#globe-viz .maplibregl-canvas{cursor:grab}#globe-viz .maplibregl-canvas:active{cursor:grabbing}.project-hover-card{border:1px solid var(--color-secondary-main);z-index:1001;pointer-events:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);min-width:280px;max-width:320px;animation:fadeInHoverCard .4s var(--anim-ease);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px));background:#020c1bf2;border-radius:0;padding:0;position:fixed;box-shadow:0 0 15px #27e1fa26,inset 0 0 30px #27e1fa08}.project-hover-card:before{content:"";background:linear-gradient(90deg,var(--color-secondary-main),transparent);width:100%;height:2px;position:absolute;top:0;left:0}.project-hover-card:after{content:"";background:linear-gradient(90deg,transparent,var(--color-secondary-main));width:100%;height:1px;position:absolute;bottom:0;right:0}@keyframes fadeInHoverCard{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.hover-card-content{flex-direction:column;gap:10px;padding:16px 20px;display:flex}.hover-card-title{color:var(--color-secondary-main);font-size:1.1rem;font-weight:700;line-height:1.3;font-family:var(--font-primary);letter-spacing:1px;text-transform:uppercase;text-shadow:0 0 8px #27e1fa4d;margin:0}.hover-card-description{color:var(--color-primary-dark);font-size:.85rem;line-height:1.6;font-family:var(--font-secondary);border-left:2px solid var(--color-secondary-dark);margin:0;padding-left:10px}.hover-card-tags{border-top:1px solid #27e1fa26;flex-wrap:wrap;gap:6px;margin-top:2px;padding-top:8px;display:flex}.hover-card-tag{border:1px solid var(--color-secondary-dark);border-left:2px solid var(--color-secondary-main);color:var(--color-secondary-light);font-size:.7rem;font-family:var(--font-secondary);letter-spacing:1px;text-transform:uppercase;background:0 0;border-radius:0;padding:3px 10px;position:relative}.hover-card-tag:before{content:"//";color:var(--color-secondary-dark);margin-right:4px;font-weight:700}.project-list-panel{z-index:5;pointer-events:auto;background:linear-gradient(270deg,#000000eb 0%,#000c 40%,#00000080 70%,#0003 90%,#0000 100%);flex-direction:column;width:280px;height:calc(100vh - 55px);display:flex;position:fixed;top:55px;right:0}.project-list-header{border-bottom:1px solid #27e1fa33;align-items:center;gap:10px;padding:20px 20px 12px;display:flex}.project-list-title{font-family:var(--font-primary);color:var(--color-secondary-main);letter-spacing:4px;text-shadow:0 0 10px #27e1fa66;margin:0;font-size:.9rem}.project-list-decorator{font-family:var(--font-primary);color:var(--color-secondary-dark);opacity:.6;font-size:.9rem}.project-list-scroll{scrollbar-width:thin;scrollbar-color:var(--color-secondary-dark)transparent;flex:1;padding:8px 0;overflow-y:auto}.project-list-scroll::-webkit-scrollbar{width:3px}.project-list-scroll::-webkit-scrollbar-track{background:0 0}.project-list-scroll::-webkit-scrollbar-thumb{background:var(--color-secondary-dark);border-radius:2px}.project-list-item{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:none;border-left:2px solid #0000;align-items:flex-start;gap:10px;padding:12px 16px;font-family:inherit;transition:all .3s;display:flex;position:relative}.project-list-item:after{content:"";background:linear-gradient(90deg,#27e1fa1a,#0000);height:1px;position:absolute;bottom:0;left:16px;right:16px}.project-list-item:hover,.project-list-item-selected{border-left-color:var(--color-secondary-main);background:#27e1fa0d}.project-list-item:hover .project-list-item-title,.project-list-item-selected .project-list-item-title{color:var(--color-secondary-main);text-shadow:0 0 8px #27e1fa4d}.project-list-item:hover .project-list-item-arrow,.project-list-item-selected .project-list-item-arrow{color:var(--color-secondary-main);transform:translate(3px)}.project-list-item-index{font-family:var(--font-primary);color:var(--color-secondary-dark);opacity:.5;letter-spacing:1px;min-width:18px;padding-top:2px;font-size:.6rem}.project-list-item-content{flex:1;min-width:0}.project-list-item-title{font-family:var(--font-primary);color:var(--color-primary-main);letter-spacing:1px;text-transform:uppercase;margin:0 0 4px;font-size:.7rem;line-height:1.3;transition:all .3s}.project-list-item-desc{font-family:var(--font-secondary);color:var(--color-primary-dark);opacity:.7;margin:0 0 6px;font-size:.65rem;line-height:1.5}.project-list-item-tags{flex-wrap:wrap;gap:4px;display:flex}.project-list-tag{color:var(--color-secondary-light);font-size:.55rem;font-family:var(--font-secondary);letter-spacing:.5px;text-transform:uppercase;opacity:.6;border:1px solid #27e1fa33;padding:1px 6px}.project-list-item-arrow{color:var(--color-primary-dark);opacity:.4;min-width:12px;padding-top:0;font-size:1.2rem;transition:all .3s}.project-list-item-loading{border-left-color:var(--color-secondary-main);background:#27e1fa0d}.project-list-item-loading .project-list-item-title{color:var(--color-secondary-main);text-shadow:0 0 8px #27e1fa4d}.project-list-item-loading .project-list-item-desc{color:var(--color-secondary-light);opacity:.9}.project-list-item-loading .project-list-item-arrow{color:var(--color-secondary-main);opacity:.8}.project-list-item-spinner{border:1.5px solid #27e1fa40;border-top-color:var(--color-secondary-main);vertical-align:middle;border-radius:50%;width:10px;height:10px;animation:.8s linear infinite spin;display:inline-block}.dataset-search-wrap{background:#020c1bcc;border:1px solid #27e1fa33;align-items:center;margin:0 12px 8px;transition:border-color .2s;display:flex;position:relative}.dataset-search-wrap:focus-within{border-color:#27e1fa8c}.dataset-search-icon{color:var(--color-secondary-dark);pointer-events:none;flex-shrink:0;padding:0 8px;font-size:1.05rem;line-height:1}.dataset-search-input{color:var(--color-primary-main);font-family:var(--font-secondary);letter-spacing:.04em;background:0 0;border:none;outline:none;flex:1;padding:7px 0;font-size:.68rem}.dataset-search-input::placeholder{color:#bbbbbb59}.dataset-search-input::-webkit-search-cancel-button{display:none}.dataset-search-clear{color:var(--color-primary-dark);cursor:pointer;opacity:.6;background:0 0;border:none;flex-shrink:0;padding:0 8px;font-size:1rem;line-height:1;transition:opacity .15s,color .15s}.dataset-search-clear:hover{opacity:1;color:var(--color-secondary-main)}.dataset-group{margin-bottom:4px}.dataset-group-header{font-family:var(--font-primary);letter-spacing:.12em;color:var(--color-secondary-dark);text-transform:uppercase;border-bottom:1px solid #27e1fa1a;margin-bottom:2px;padding:10px 16px 4px;font-size:.52rem}.dataset-group-toggle{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;display:flex}.dataset-group-toggle:hover{color:var(--color-secondary);border-bottom-color:#27e1fa40}.dataset-group-arrow{opacity:.6;font-size:.85rem;line-height:1;transition:transform .2s;transform:rotate(0)}.dataset-group-arrow-open{transform:rotate(90deg)}.dataset-search-empty{font-family:var(--font-secondary);color:var(--color-primary-dark);opacity:.5;text-align:center;letter-spacing:.04em;padding:24px 16px;font-size:.68rem}.dataset-overview-btn{color:var(--color-secondary-dark);cursor:pointer;font-size:.85rem;line-height:1;font-family:var(--font-primary);background:0 0;border:1px solid #27e1fa33;margin-left:auto;padding:3px 7px;transition:border-color .2s,color .2s,background .2s}.dataset-overview-btn:hover{border-color:var(--color-secondary-main);color:var(--color-secondary-main);background:#27e1fa0f}.dataset-overview-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:300;background:#0009;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dataset-overview-content{scrollbar-width:thin;scrollbar-color:var(--color-secondary-dark)transparent;background:0 0;border:none;width:100%;max-width:960px;max-height:80vh;padding:28px 28px 24px;overflow-y:auto}.dataset-overview-content::-webkit-scrollbar{width:3px}.dataset-overview-content::-webkit-scrollbar-thumb{background:var(--color-secondary-dark);border-radius:2px}.dataset-overview-header{border-bottom:none;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;display:flex}.dataset-overview-title{font-family:var(--font-primary);letter-spacing:4px;color:var(--color-secondary-main);text-shadow:0 0 10px #27e1fa66;font-size:.85rem}.dataset-overview-close{color:var(--color-primary-dark);cursor:pointer;opacity:.55;background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1;transition:opacity .15s,color .15s}.dataset-overview-close:hover{opacity:1;color:var(--color-secondary-main)}.dataset-overview-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.dataset-overview-cell{background:0 0;border:none;padding:12px 14px}.dataset-overview-cell:hover{background:0 0}.dataset-overview-group-title{font-family:var(--font-primary);letter-spacing:.14em;color:var(--color-secondary-main);text-transform:uppercase;text-shadow:0 0 8px #27e1fa59;border-bottom:none;margin-bottom:10px;padding-bottom:0;font-size:.52rem}.dataset-overview-list{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.dataset-overview-item{font-family:var(--font-secondary);letter-spacing:.02em;color:var(--color-text-main);cursor:pointer;border-left:none;padding:3px 4px;font-size:.75rem;line-height:1.5;transition:color .15s,padding-left .15s,text-shadow .15s}.dataset-overview-item:hover{color:var(--color-secondary-main);text-shadow:0 0 6px #27e1fa4d;padding-left:6px}@media (max-width:1024px){.project-list-panel{display:none}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.leader-line{filter:drop-shadow(0 0 4px var(--color-secondary-main))}.leader-glow{opacity:.3}.leader-circle,.leader-node{animation:2s ease-in-out infinite leaderPulse}@keyframes leaderPulse{0%,to{filter:drop-shadow(0 0 4px var(--color-secondary-main))}50%{filter:drop-shadow(0 0 8px var(--color-secondary-main))drop-shadow(0 0 12px var(--color-secondary-main))}}.typing-cursor{background-color:var(--color-secondary-main);vertical-align:text-bottom;width:3px;height:1em;box-shadow:0 0 10px var(--color-secondary-main);margin-left:2px;animation:.8s infinite cursorBlink,2s ease-in-out infinite cursorGlow;display:inline-block}@keyframes cursorBlink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes cursorGlow{0%,to{box-shadow:0 0 10px var(--color-secondary-main)}50%{box-shadow:0 0 20px var(--color-secondary-main),0 0 30px var(--color-secondary-main)}}#about{z-index:5;pointer-events:auto;background:linear-gradient(90deg,#000000eb 0%,#000c 40%,#00000080 70%,#0003 90%,#0000 100%);flex-direction:column;width:280px;height:calc(100vh - 55px);display:flex;position:fixed;top:55px;left:0}.about-header{border-bottom:1px solid #27e1fa33;align-items:center;gap:10px;padding:20px 20px 12px;display:flex}.about-header-title{font-family:var(--font-primary);color:var(--color-secondary-main);letter-spacing:4px;text-shadow:0 0 10px #27e1fa66;margin:0;font-size:.9rem}.about-decorator{font-family:var(--font-primary);color:var(--color-secondary-dark);opacity:.6;font-size:.9rem}.about-scroll{scrollbar-width:none;-ms-overflow-style:none;flex:1;padding:12px 16px 20px;overflow-y:auto}.about-scroll::-webkit-scrollbar{display:none}.about-item{padding:10px 0;position:relative}.about-item:after{content:"";background:linear-gradient(90deg,#27e1fa1a,#0000);height:1px;position:absolute;bottom:0;left:0;right:0}.about-item:last-child:after{display:none}.about-title{font-family:var(--font-primary);color:var(--color-secondary-main);letter-spacing:4px;text-shadow:0 0 10px #27e1fa66;margin:0;font-size:1.1rem}.about-subtitle{font-family:var(--font-primary);color:var(--color-primary-main);letter-spacing:1px;text-transform:uppercase;margin:0;font-size:.7rem;line-height:1.3}.about-desc{font-family:var(--font-secondary);color:var(--color-primary-dark);opacity:.7;margin:0;font-size:.65rem;line-height:1.6}.about-section-heading{font-family:var(--font-primary);color:var(--color-secondary-light);letter-spacing:1px;text-transform:uppercase;border-left:2px solid var(--color-secondary-main);margin:0 0 6px;padding-left:8px;font-size:.7rem}.about-tags-grid{flex-direction:column;gap:4px;margin-top:8px;display:flex}.about-tech-item{align-items:baseline;gap:6px;padding:3px 0;display:flex}.about-tech-name{font-family:var(--font-primary);color:var(--color-secondary-light);letter-spacing:.5px;min-width:70px;font-size:.6rem;font-weight:600}.about-tech-detail{font-family:var(--font-secondary);color:var(--color-primary-dark);opacity:.6;font-size:.55rem}.about-closing{font-family:var(--font-secondary);color:var(--color-primary-dark);opacity:.5;margin:0;font-size:.65rem;font-style:italic;line-height:1.6}.about-link{color:var(--color-secondary-main);text-decoration:none;transition:all .3s}.about-link:hover{text-shadow:0 0 8px #27e1fa4d}@media (max-width:1024px){#about{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;width:100%;height:auto;min-height:auto;padding:120px 20px 60px;position:relative;top:auto;left:auto;overflow-y:visible}.about-header{padding:0 0 12px}.about-scroll{padding:12px 0 20px;overflow-y:visible}.about-title{font-size:1.4rem}}.project-detail{z-index:5;pointer-events:auto;background:linear-gradient(90deg,#000000eb 0%,#000c 40%,#00000080 70%,#0003 90%,#0000 100%);flex-direction:column;width:280px;height:calc(100vh - 55px);display:flex;position:fixed;top:55px;left:0}.project-detail-header{border-bottom:1px solid #27e1fa33;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.project-detail-back{border:1px solid var(--color-secondary-dark);color:var(--color-secondary-main);cursor:pointer;font-size:.65rem;font-family:var(--font-primary);letter-spacing:2px;text-transform:uppercase;pointer-events:auto;background:0 0;padding:4px 10px;transition:all .3s}.project-detail-back:hover{border-color:var(--color-secondary-main);background:#27e1fa1a}.project-detail-label{font-family:var(--font-secondary);color:var(--color-secondary-dark);letter-spacing:2px;text-transform:uppercase;font-size:.6rem}.project-detail-scroll{scrollbar-width:none;-ms-overflow-style:none;flex:1;padding:16px;overflow-y:auto}.project-detail-scroll::-webkit-scrollbar{display:none}.project-detail-title{color:var(--color-secondary-main);font-family:var(--font-primary);letter-spacing:3px;text-transform:uppercase;text-shadow:0 0 10px #27e1fa66;margin:0;font-size:1rem}.project-detail-separator{background:#27e1fa4d;height:1px;margin:12px 0}.project-detail-section{margin-bottom:16px}.project-detail-section-heading{color:var(--color-secondary-dark);font-size:.6rem;font-weight:600;font-family:var(--font-secondary);letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}.project-detail-desc{color:var(--color-text-main);text-align:justify;font-size:.65rem;line-height:1.7;font-family:var(--font-secondary);border-left:2px solid var(--color-secondary-dark);margin:0;padding-left:10px}.project-detail-tags{flex-wrap:wrap;gap:6px;display:flex}.project-detail-tag{border:1px solid var(--color-secondary-dark);border-left:2px solid var(--color-secondary-main);color:var(--color-secondary-light);font-size:.55rem;font-family:var(--font-secondary);letter-spacing:1px;text-transform:uppercase;background:0 0;padding:3px 8px}.project-detail-tag-prefix{color:var(--color-secondary-dark);margin-right:3px;font-weight:700}.project-detail-actions{border-top:1px solid #27e1fa33;margin-top:16px;padding-top:12px}.project-detail-actions .btn{pointer-events:auto;padding:6px 14px;font-size:.65rem}@media (max-width:768px){.project-detail{background:#000000d9;width:100%;height:auto;min-height:auto;padding-bottom:20px;position:relative;top:auto;left:auto}}.sound-prompt-overlay{z-index:9999;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sound-prompt-card{text-align:center;background:0 0;border:none;flex-direction:column;align-items:center;gap:18px;max-width:340px;padding:0;display:flex}.sound-prompt-icon{color:var(--color-secondary-main);text-shadow:0 0 20px #27e1fa66;opacity:.8;font-size:1.6rem;line-height:1}.sound-prompt-title{font-family:var(--font-primary);letter-spacing:4px;color:var(--color-secondary-main);text-shadow:0 0 15px #27e1fa4d;font-size:.95rem}.sound-prompt-desc{font-family:var(--font-secondary);color:var(--color-text-main);opacity:.5;max-width:280px;font-size:.8rem;line-height:1.6}.sound-prompt-buttons{gap:24px;margin-top:4px;display:flex}.sound-prompt-btn{font-family:var(--font-primary);letter-spacing:3px;color:var(--color-secondary-main);cursor:pointer;transition:all var(--anim-time)var(--anim-ease);background:0 0;border:1px solid #27e1fa33;padding:8px 28px;font-size:.75rem}.sound-prompt-btn:hover{border-color:var(--color-secondary-main);text-shadow:0 0 10px #27e1fa80;color:var(--color-heading-main)}.sound-prompt-btn-no{color:#fff6;border-color:#ffffff1a}.sound-prompt-btn-no:hover{color:var(--color-text-main);text-shadow:none;border-color:#ffffff4d}.mobile-block-overlay{z-index:99999;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000eb;display:none}@media (max-width:1023px){.mobile-block-overlay{display:flex}body:has(.mobile-block-overlay){overflow:hidden}}@media (hover:none) and (pointer:coarse) and (min-width:980px){.mobile-block-overlay{display:none!important}body:has(.mobile-block-overlay){overflow:auto}}.ph-breadcrumb{font-family:var(--font-primary),monospace;letter-spacing:1.5px;text-transform:uppercase;color:#27e1faa6;background:#0a0f2840;border-top:1px solid #27e1fa14;border-bottom:1px solid #27e1fa14;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;font-size:.65rem;display:flex}.ph-breadcrumb-crumb{color:var(--color-secondary-main,#27e1fa);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;transition:color var(--anim-time)var(--anim-ease);background:0 0;border:none;padding:0}.ph-breadcrumb-crumb:hover:not(:disabled){color:#7eecfb;text-shadow:0 0 8px #27e1fa80}.ph-breadcrumb-crumb:disabled{color:#27e1fa59;cursor:default}.ph-breadcrumb-sep{color:#27e1fa4d}.ph-breadcrumb-current{color:var(--color-heading-main,#fff)}.ph-list-status{color:#27e1fa8c;font-family:var(--font-primary),monospace;letter-spacing:1.2px;text-transform:uppercase;padding:18px 14px;font-size:.7rem}.ph-feature-popup-container .maplibregl-popup-content{color:#e1f0ffeb;font-family:var(--font-primary),monospace;background:#050a1eeb;border:1px solid #27e1fa66;border-radius:2px;padding:10px 12px 12px;box-shadow:0 0 18px #27e1fa40}.ph-feature-popup-container .maplibregl-popup-tip{border-top-color:#27e1fa99;border-bottom-color:#27e1fa99}.ph-feature-popup-container .maplibregl-popup-close-button{color:#27e1fad9;padding:2px 6px;font-size:1rem}.ph-feature-popup-container .maplibregl-popup-close-button:hover{color:#fff;background:#27e1fa26}.ph-feature-popup-title{letter-spacing:1.6px;text-transform:uppercase;color:var(--color-secondary-main,#27e1fa);border-bottom:1px solid #27e1fa40;margin-bottom:6px;padding-bottom:6px;font-size:.65rem}.ph-feature-popup-table{border-collapse:collapse;width:100%;max-height:260px;font-size:.65rem;display:block;overflow-y:auto}.ph-feature-popup-table tbody{width:100%;display:table}.ph-feature-popup-table tr:nth-child(odd){background:#27e1fa0a}.ph-feature-popup-key{color:#27e1fabf;letter-spacing:.5px;text-transform:uppercase;vertical-align:top;white-space:nowrap;padding:3px 8px 3px 0;font-size:.58rem}.ph-feature-popup-val{color:var(--color-secondary-main);font-family:var(--font-secondary);word-break:break-word;padding:3px 0}.ph-feature-popup-empty{color:#27e1fa80;letter-spacing:1px;text-transform:uppercase;padding:6px 0;font-size:.6rem}.ph-list-status-error{color:#ff5f7a}.ph-download-panel{background:#0a0f2859;border-top:1px solid #27e1fa26;flex-direction:column;gap:8px;padding:12px 14px 14px;display:flex}.ph-download-label{font-family:var(--font-primary),monospace;letter-spacing:2px;text-transform:uppercase;color:#27e1fabf;font-size:.6rem}.ph-download-buttons{gap:6px;display:flex}.ph-download-btn{color:var(--color-secondary-main,#fff);font-family:var(--font-primary),monospace;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:all var(--anim-time)var(--anim-ease);text-align:center;background:#27e1fa14;border:1px solid #27e1fa59;flex:1 1 0;padding:8px 10px;font-size:.65rem;text-decoration:none}.ph-download-btn:hover:not(:disabled){color:var(--color-heading-main,#fff);text-shadow:0 0 8px #27e1fa99;background:#27e1fa2e;border-color:#27e1fab3}.ph-download-btn:disabled{opacity:.45;cursor:progress}.ph-download-error{font-family:var(--font-primary),monospace;letter-spacing:1.2px;color:#ff5f7a;word-break:break-word;font-size:.6rem}.ph-download-category{flex-direction:column;gap:6px;display:flex}.ph-download-category-title{font-family:var(--font-primary),monospace;letter-spacing:1.8px;text-transform:uppercase;color:#27e1fa80;border-bottom:1px solid #27e1fa14;padding-bottom:4px;font-size:.55rem}.ph-download-buttons-col{flex-direction:column}.ph-search{background:#0a0f2840;border-bottom:1px solid #27e1fa26;flex-direction:column;gap:8px;padding:10px 14px 12px;display:flex}.ph-search-input-wrap{background:#050a1e8c;border:1px solid #27e1fa40;align-items:center;gap:6px;padding:6px 8px;display:flex}.ph-search-input-wrap:focus-within{border-color:#27e1fa99;box-shadow:0 0 0 1px #27e1fa40}.ph-search-prompt{font-family:var(--font-primary),monospace;color:#27e1fa99;font-size:.7rem}.ph-search-input{color:var(--color-heading-main,#fff);font-family:var(--font-primary),monospace;letter-spacing:1.2px;text-transform:uppercase;background:0 0;border:none;outline:none;flex:auto;font-size:.7rem}.ph-search-input::placeholder{color:#27e1fa59;letter-spacing:1.2px}.ph-search-clear{color:#27e1fa99;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:.9rem;line-height:1}.ph-search-clear:hover{color:var(--color-heading-main,#fff)}.ph-search-results{flex-direction:column;gap:10px;max-height:360px;padding-right:2px;display:flex;overflow-y:auto}.ph-search-results::-webkit-scrollbar{width:6px}.ph-search-results::-webkit-scrollbar-track{background:#27e1fa0d}.ph-search-results::-webkit-scrollbar-thumb{background:#27e1fa40}.ph-search-status{font-family:var(--font-primary),monospace;letter-spacing:1.5px;color:#27e1fa8c;padding:4px 2px;font-size:.62rem}.ph-search-status-error{color:#ff5f7a}.ph-search-group{flex-direction:column;gap:4px;display:flex}.ph-search-group-label{font-family:var(--font-primary),monospace;letter-spacing:2px;color:#27e1fa8c;text-transform:uppercase;padding:2px 0;font-size:.58rem}.ph-search-row{background:#050a1e59;border:1px solid #27e1fa1f;flex-direction:column;gap:4px;padding:6px 8px;display:flex}.ph-search-row:hover{border-color:#27e1fa59}.ph-search-row-main{color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:2px 0;display:flex}.ph-search-badge{font-family:var(--font-primary),monospace;letter-spacing:1.2px;text-transform:uppercase;border:1px solid;flex:none;padding:2px 5px;font-size:.55rem}.ph-search-badge-province{color:#27e1fa}.ph-search-badge-municipality{color:#9cf06c}.ph-search-badge-barangay{color:#f0c86c}.ph-search-row-text{flex-direction:column;flex:auto;gap:1px;min-width:0;display:flex}.ph-search-row-name{font-family:var(--font-primary),monospace;letter-spacing:.5px;color:var(--color-heading-main,#fff);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.ph-search-row-crumb{font-family:var(--font-primary),monospace;letter-spacing:1px;color:#27e1fa8c;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;font-size:.55rem;overflow:hidden}.ph-search-row-arrow{color:#27e1fa8c;flex:none;margin-left:auto;font-size:1rem;line-height:1}.ph-search-more{font-family:var(--font-primary),monospace;letter-spacing:1.2px;color:#27e1fa73;padding:2px 0;font-size:.58rem}.download-popup-container{pointer-events:none}.download-popup-menu{pointer-events:auto;min-width:240px;animation:fadeInHoverCard .4s var(--anim-ease);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000d9;border:none;padding:8px 0;position:relative;box-shadow:0 0 25px 15px #000000d9}.download-popup-header{justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 16px 10px;display:flex;position:relative}.download-popup-header:after{content:"";background:linear-gradient(90deg,#27e1fa4d,#0000);height:1px;position:absolute;bottom:0;left:16px;right:16px}.download-popup-title{font-family:var(--font-primary);color:var(--color-secondary-main);letter-spacing:3px;text-shadow:0 0 12px #27e1fa99;text-transform:uppercase;font-size:.85rem}.download-popup-back{color:var(--color-secondary-main);font-family:var(--font-primary);letter-spacing:2px;cursor:pointer;transition:all var(--anim-time);text-transform:uppercase;background:0 0;border:1px solid #0000;margin-left:-8px;padding:4px 8px;font-size:.65rem}.download-popup-back:hover{background:#27e1fa0d;border-radius:4px}.download-popup-buttons{flex-direction:column;display:flex}.about-legal-block{border-top:1px solid #27e1fa26;margin-top:4px;padding-top:12px}.about-legal-heading{color:var(--color-tertiary-light)!important;border-left-color:var(--color-tertiary-main)!important}.about-legal-desc{opacity:.6;margin-bottom:12px}.about-legal-buttons{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.about-legal-btn{color:var(--color-secondary-light);font-family:var(--font-primary);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:all var(--anim-time)var(--anim-ease);background:0 0;border:1px solid #27e1fa59;padding:4px 12px;font-size:.55rem;text-decoration:none;display:inline-block;position:relative;overflow:hidden}.about-legal-btn:before{content:"";width:100%;height:100%;transition:left var(--anim-time)var(--anim-ease);z-index:0;background:#27e1fa14;position:absolute;top:0;left:-100%}.about-legal-btn:hover{border-color:var(--color-secondary-main);color:var(--color-secondary-main);text-shadow:0 0 6px #27e1fa66;box-shadow:0 0 10px #27e1fa33}.about-legal-btn:hover:before{left:0}.legal-page{background:var(--color-bg-dark);min-height:100vh;color:var(--color-text-main);font-family:var(--font-secondary);padding:60px 0 80px}.legal-container{max-width:760px;margin:0 auto;padding:0 32px}.legal-header{border-bottom:1px solid #27e1fa33;margin-bottom:40px;padding-bottom:24px}.legal-back-link{color:var(--color-secondary-dark);font-family:var(--font-primary);letter-spacing:2px;text-transform:uppercase;transition:color var(--anim-time)var(--anim-ease);align-items:center;gap:6px;margin-bottom:20px;font-size:.65rem;text-decoration:none;display:inline-flex}.legal-back-link:hover{color:var(--color-secondary-main);text-shadow:0 0 8px #27e1fa66}.legal-back-arrow{font-size:.8rem}.legal-title-row{align-items:center;gap:12px;margin-bottom:8px;display:flex}.legal-decorator{font-family:var(--font-primary);color:var(--color-secondary-dark);opacity:.5;font-size:1.2rem}.legal-title{font-family:var(--font-primary);color:var(--color-secondary-main);letter-spacing:4px;text-transform:uppercase;text-shadow:0 0 14px #27e1fa66;margin:0;font-size:1.4rem}.legal-effective{font-family:var(--font-secondary);color:var(--color-primary-dark);opacity:.5;letter-spacing:1px;margin-top:4px;font-size:.7rem}.legal-body{flex-direction:column;gap:28px;display:flex}.legal-section{opacity:1;border-left:2px solid #27e1fa33;padding-left:16px;display:block}.legal-section-title{font-family:var(--font-primary);color:var(--color-secondary-light);letter-spacing:1.5px;text-transform:uppercase;margin:0 0 8px;font-size:.75rem}.legal-text{font-family:var(--font-secondary);color:var(--color-primary-dark);opacity:.8;margin:0;font-size:.8rem;line-height:1.75}.legal-list{font-family:var(--font-secondary);color:var(--color-primary-dark);opacity:.8;margin:8px 0 0 16px;padding:0;font-size:.8rem;line-height:1.75}.legal-list li{margin-bottom:4px}.legal-list li::marker{color:var(--color-secondary-dark)}.legal-inline-link{color:var(--color-secondary-main);transition:text-shadow var(--anim-time)var(--anim-ease);text-decoration:none}.legal-inline-link:hover{text-shadow:0 0 8px #27e1fa66}.legal-footer{border-top:1px solid #27e1fa26;align-items:center;gap:12px;margin-top:56px;padding-top:20px;display:flex}.legal-footer-link{font-family:var(--font-primary);color:var(--color-secondary-dark);letter-spacing:1.5px;text-transform:uppercase;transition:color var(--anim-time)var(--anim-ease);font-size:.6rem;text-decoration:none}.legal-footer-link:hover{color:var(--color-secondary-main);text-shadow:0 0 8px #27e1fa4d}.legal-footer-sep{color:var(--color-secondary-dark);opacity:.3;font-size:.7rem}@media (max-width:600px){.legal-container{padding:0 20px}.legal-title{letter-spacing:2px;font-size:1rem}.legal-page{padding:40px 0 60px}}.downloader-info-panel{z-index:6;pointer-events:none;scrollbar-width:none;background:linear-gradient(90deg,#000000f2 0%,#000000e0 40%,#0000009e 70%,#0000004d 85%,#0000 100%);flex-direction:column;justify-content:center;align-items:flex-start;width:28%;height:100vh;padding:80px 30px 40px 40px;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.downloader-info-panel::-webkit-scrollbar{display:none}.downloader-info-panel *{pointer-events:auto}.downloader-info-tag{font-family:var(--font-primary);letter-spacing:3px;color:var(--color-secondary-dark);opacity:.7;text-transform:uppercase;margin-bottom:10px;font-size:.55rem}.downloader-info-title{font-family:var(--font-primary);color:var(--color-secondary-main);letter-spacing:1.5px;text-shadow:0 0 20px #27e1fa73;max-width:320px;margin-bottom:0;font-size:1.1rem;line-height:1.3}.downloader-info-separator{background:var(--color-secondary-main);width:50px;height:2px;box-shadow:0 0 12px var(--color-secondary-main);flex-shrink:0;margin:16px 0}.downloader-info-desc{font-family:var(--font-secondary);color:var(--color-text-main);opacity:.85;max-width:310px;margin-bottom:28px;font-size:.72rem;line-height:1.75}.downloader-slow-warning{font-family:var(--font-primary);letter-spacing:.04em;color:#f44;background:#ff444414;border:1.5px solid #ff444480;border-left:4px solid #f44;max-width:310px;margin-bottom:16px;padding:10px 14px;font-size:.85rem;font-weight:700;line-height:1.55}.downloader-btn-large{font-family:var(--font-primary);letter-spacing:4px;text-transform:uppercase;color:var(--color-secondary-main);cursor:pointer;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));background:#27e1fa0f;border:1px solid #27e1fa80;padding:14px 32px;font-size:.85rem;text-decoration:none;transition:background .3s,color .3s,border-color .3s,box-shadow .3s,text-shadow .3s;display:inline-block;position:relative}.downloader-btn-large:before{content:"";clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));pointer-events:none;border:1px solid #27e1fa26;position:absolute;inset:0}.downloader-btn-large:hover:not(.downloader-btn-large-disabled){color:#fff;border-color:var(--color-secondary-main);text-shadow:0 0 10px #27e1fab3;background:#27e1fa24;box-shadow:0 0 22px #27e1fa59,inset 0 0 12px #27e1fa14}.downloader-btn-large-disabled{opacity:.38;cursor:not-allowed;color:var(--color-primary-dark);border-color:#27e1fa33}.downloader-btn-source{font-family:var(--font-primary);letter-spacing:4px;text-transform:uppercase;color:var(--color-primary-dark);cursor:pointer;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));background:0 0;border:1px solid #27e1fa40;margin-top:8px;padding:8px 20px;font-size:.75rem;text-decoration:none;transition:background .3s,color .3s,border-color .3s,box-shadow .3s;display:inline-block;position:relative}.downloader-btn-source:hover{color:var(--color-secondary-main);background:#27e1fa12;border-color:#27e1fa80;box-shadow:0 0 12px #27e1fa26}.downloader-info-idle{pointer-events:none}.downloader-info-idle-text{font-family:var(--font-secondary);color:var(--color-primary-dark);opacity:.5;max-width:290px;font-size:.75rem;font-style:italic;line-height:1.7}@media (max-width:1024px){.downloader-info-panel{display:none}}#downloader .downloader-page{flex-direction:column;gap:20px;min-height:calc(100vh - 140px);padding:100px 0 60px;display:flex;position:relative}.downloader-header{max-width:560px}.downloader-title{font-family:var(--font-primary);letter-spacing:3px;color:var(--color-heading-main);text-shadow:0 0 12px #27e1fa40;margin-bottom:8px;font-size:1.6rem}.downloader-subtitle{font-family:var(--font-secondary);color:var(--color-text-main);font-size:.85rem;line-height:1.5}.downloader-controls{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.downloader-fetch-btn{font-family:var(--font-primary);letter-spacing:2px;color:var(--color-secondary-main);border:1px solid var(--color-secondary-main);cursor:pointer;transition:all var(--anim-time)var(--anim-ease);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#020c1bb3;padding:12px 20px;font-size:.75rem}.downloader-fetch-btn:hover:not(:disabled){color:var(--color-secondary-light);background:#27e1fa26;box-shadow:0 0 20px #27e1fa59}.downloader-fetch-btn:disabled{opacity:.6;cursor:wait}.downloader-fetch-btn.is-active{color:var(--color-secondary-light);background:#27e1fa33;box-shadow:0 0 20px #27e1fa66}.downloader-status{font-family:var(--font-secondary);letter-spacing:1px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#020c1bb3;border:1px solid;padding:6px 12px;font-size:.8rem}.downloader-status-ok{color:var(--color-secondary-main);border-color:var(--color-secondary-main)}.downloader-status-err{color:#ff6b6b;border-color:#ff6b6b}.downloader-map{z-index:1;pointer-events:auto;width:100%;height:100%;position:fixed;top:0;left:0}.downloader-map .maplibregl-ctrl-bottom-left,.downloader-map .maplibregl-ctrl-bottom-right{display:none}#downloader.active{z-index:10;position:relative}#downloader .downloader-header,#downloader .downloader-controls{z-index:11;position:relative}.fe-editor{width:100%;max-width:310px;margin-top:20px}.fe-toggle{width:100%;color:var(--color-secondary-dark);font-family:var(--font-primary);letter-spacing:3px;cursor:pointer;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));background:#27e1fa0a;border:1px solid #27e1fa38;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.52rem;transition:background .2s,color .2s,border-color .2s;display:flex}.fe-toggle:hover{color:var(--color-secondary-main);background:#27e1fa1a;border-color:#27e1fa80}.fe-toggle-arrow{font-size:1rem;line-height:1;transition:transform .2s;display:inline-block}.fe-toggle-arrow-open{transform:rotate(90deg)}.fe-body{scrollbar-width:thin;scrollbar-color:#27e1fa40 transparent;background:#000000a6;border:1px solid #27e1fa21;border-top:none;max-height:340px;padding:12px;overflow-y:auto}.fe-body::-webkit-scrollbar{width:4px}.fe-body::-webkit-scrollbar-thumb{background:#27e1fa40;border-radius:2px}.fe-tabs{gap:6px;margin-bottom:12px;display:flex}.fe-tab{font-family:var(--font-primary);letter-spacing:2px;color:var(--color-primary-dark);cursor:pointer;background:0 0;border:1px solid #27e1fa24;flex:1;padding:6px 4px;font-size:.48rem;transition:color .2s,background .2s,border-color .2s}.fe-tab:hover{color:var(--color-secondary-main);border-color:#27e1fa61}.fe-tab-active{color:var(--color-secondary-main);background:#27e1fa1a;border-color:#27e1fa73;box-shadow:0 0 10px #27e1fa1f}.fe-row{align-items:center;gap:8px;margin-bottom:10px;display:flex}.fe-label{font-family:var(--font-primary);letter-spacing:2px;color:var(--color-secondary-dark);opacity:.75;flex-shrink:0;min-width:50px;font-size:.46rem}.fe-color-wrap{flex:1;align-items:center;gap:8px;display:flex}.fe-color-input{cursor:pointer;background:0 0;border:1px solid #27e1fa47;border-radius:2px;flex-shrink:0;width:32px;height:22px;padding:0}.fe-color-input::-webkit-color-swatch-wrapper{padding:2px}.fe-color-hex{font-family:var(--font-secondary);color:var(--color-text-main);letter-spacing:1px;opacity:.65;font-size:.66rem}.fe-range{height:2px;accent-color:var(--color-secondary-main);cursor:pointer;flex:1}.fe-range-val{font-family:var(--font-secondary);color:var(--color-text-main);opacity:.65;text-align:right;min-width:36px;font-size:.64rem}.fe-select{font-family:var(--font-secondary);color:var(--color-text-main);cursor:pointer;background:#020c1bd9;border:1px solid #27e1fa38;outline:none;flex:1;min-width:0;padding:4px 6px;font-size:.64rem}.fe-select:focus{border-color:#27e1fa80}.fe-select option{color:var(--color-text-main);background:#020c1b}.fe-cat-list{scrollbar-width:thin;scrollbar-color:#27e1fa2e transparent;flex-direction:column;gap:5px;max-height:190px;margin-top:8px;padding-right:2px;display:flex;overflow-y:auto}.fe-cat-list::-webkit-scrollbar{width:3px}.fe-cat-list::-webkit-scrollbar-thumb{background:#27e1fa2e;border-radius:2px}.fe-cat-item{align-items:center;gap:8px;display:flex}.fe-cat-swatch{cursor:pointer;background:0 0;border:1px solid #27e1fa2e;border-radius:2px;flex-shrink:0;width:24px;height:18px;padding:0}.fe-cat-swatch::-webkit-color-swatch-wrapper{padding:2px}.fe-cat-val{font-family:var(--font-secondary);color:var(--color-text-main);opacity:.78;white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:.64rem;overflow:hidden}.support-overlay{z-index:3000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.support-content{text-align:center;background:0 0;border:none;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:520px;padding:0;display:flex}.support-modal-title{font-family:var(--font-primary);letter-spacing:4px;color:var(--color-secondary-main);text-shadow:0 0 15px #27e1fa4d;font-size:.95rem}.support-modal-text{font-family:var(--font-secondary);color:var(--color-text-main);opacity:.5;max-width:440px;font-size:.8rem;line-height:1.8}.support-qr-grid{grid-template-columns:1fr 1fr;gap:32px;display:grid}.support-qr-item{flex-direction:column;align-items:center;gap:10px;display:flex}.support-qr-label{font-family:var(--font-primary);letter-spacing:2px;color:var(--color-secondary-main);text-transform:uppercase;opacity:.7;font-size:.6rem}.support-qr-image{width:100%;height:auto;display:block}.support-modal-note{font-family:var(--font-secondary);letter-spacing:1px;color:var(--color-text-main);opacity:.3;font-size:.7rem}
