:root{--color-black:#0a0a0a;--color-dark:#121212;--color-grey-dark:#1a1a1a;--color-grey:#2a2a2a;--color-grey-mid:#3a3a3a;--color-grey-light:#555;--color-white:#fff;--color-white-dim:#e0e0e0;--columns:8;--rows:6;--square-size:min(calc(100vw/var(--columns)),calc(100vh/var(--rows)));--gap:1px;--transition-fast:.2s ease;--transition-smooth:.4s cubic-bezier(.4,0,.2,1);--transition-slow:.6s cubic-bezier(.4,0,.2,1);--font-main:"Poppins",-apple-system,BlinkMacSystemFont,sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--color-black);width:100vw;height:100vh;font-family:var(--font-main);color:var(--color-white);text-transform:lowercase;overflow:hidden}body.light-theme{background:var(--color-white);color:var(--color-black)}@media (max-width:1024px){:root{--columns:6}}@media (max-width:768px){:root{--columns:4}}@media (max-width:480px){:root{--columns:3}}
.square{background:var(--color-grey-dark);cursor:default;transition:background var(--transition-smooth),transform var(--transition-smooth),box-shadow var(--transition-smooth);border:1px solid #0000;justify-content:center;align-items:center;animation:4s ease-in-out infinite breathe;display:flex;position:relative;overflow:hidden}.square:nth-child(3n){animation-delay:0s}.square:nth-child(3n+1){animation-delay:1.2s}.square:nth-child(3n+2){animation-delay:2.4s}@keyframes breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.01)}}.grid-intro .square{animation:.8s cubic-bezier(.22,1,.36,1) both square-intro;animation-delay:var(--intro-delay,0s)}.grid-intro .square .square-content{animation:.5s both content-fade-in;animation-delay:calc(var(--intro-delay,0s) + .4s)}@keyframes square-intro{0%{opacity:0;border-radius:6px;transform:scale(.3)}60%{opacity:.9;transform:scale(1.03)}to{opacity:.85;border-radius:0;transform:scale(1)}}@keyframes content-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.square:hover{z-index:10;border-color:#fff6;animation-play-state:paused}.square.glow-1{border-color:#ffffff26}.square.glow-2{border-color:#ffffff40}.square.glow-3{border-color:#ffffff59}.square-id{color:#ffffff26;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:monospace;font-size:.6rem;font-weight:300;position:absolute;bottom:4px;right:6px}.square-content{text-align:center;opacity:1;transition:opacity var(--transition-smooth),transform var(--transition-smooth);padding:1rem;transform:translateY(0)}.square.size-2{grid-area:span 2/span 2}.square.size-3{grid-area:span 2/span 3}.square h1{letter-spacing:-.02em;margin-bottom:.25rem;font-size:clamp(1.5rem,4vw,3rem);font-weight:700}.square h3{margin-bottom:.25rem;font-size:clamp(.9rem,1.5vw,1.2rem);font-weight:600}.square p{color:var(--color-white-dim);font-size:clamp(.7rem,1vw,.9rem);font-weight:300;line-height:1.4}.square a{color:var(--color-white);border-bottom:1px solid var(--color-grey-light);transition:border-color var(--transition-fast);font-size:.85rem;text-decoration:none}.square a:hover{border-color:var(--color-white)}.square.depth{box-shadow:4px 4px 10px #00000080,-4px -4px 10px #32323233}.square.depth-inset{box-shadow:inset 4px 4px 10px #00000080,inset -4px -4px 10px #32323233}.square.empty{background:var(--color-grey-dark)}body.light-theme .square{background:#e8e8e8}body.light-theme .square:hover{border-color:#0006}body.light-theme .square.glow-1{border-color:#00000026}body.light-theme .square.glow-2{border-color:#00000040}body.light-theme .square.glow-3{border-color:#00000059}body.light-theme .square-id{color:#00000026}body.light-theme .square-content,body.light-theme .square h1,body.light-theme .square h3,body.light-theme .square p,body.light-theme .square .icon{color:var(--color-black)}body.light-theme .square a{color:var(--color-black);border-bottom-color:var(--color-grey-light)}@media (max-width:768px){.square.size-2,.square.size-3{grid-area:span 2/span 2}}@media (max-width:480px){.square-content{padding:.5rem}}@media (prefers-reduced-motion:reduce){.square{animation:none}.grid-intro .square{opacity:.85;animation:none}.grid-intro .square .square-content{opacity:1;animation:none}.square,.square-content{transition:none}}
.square.brand-square .square-content{opacity:1;flex-direction:column;justify-content:space-between;align-items:center;height:100%;padding:1rem;display:flex;transform:translateY(0)}.square.brand-square{background:linear-gradient(135deg,var(--color-grey-dark)0%,var(--color-black)100%)}.square .logo{object-fit:contain;filter:brightness(0)invert();max-width:90%;max-height:60%}body.light-theme .square.brand-square{background:linear-gradient(135deg,#e0e0e0 0%,#fff 100%)}body.light-theme .square .logo{filter:none}.square.service-square svg{width:28px;height:28px;stroke:var(--color-white);opacity:.8;margin-bottom:.75rem}.square.service-square:hover svg{stroke:var(--color-black)}.service-title{opacity:.9;font-size:1.15rem;font-weight:400}.square.service-square:hover{background:var(--color-white);color:var(--color-black)}.square.service-square:hover .icon,.square.service-square:hover h3,.square.service-square:hover p,.square.service-square:hover .square-id{color:var(--color-black)}body.light-theme .square.service-square svg{stroke:var(--color-black)}body.light-theme .square.service-square .service-title{color:var(--color-black)}body.light-theme .square.service-square:hover{background:var(--color-black);color:var(--color-white)}body.light-theme .square.service-square:hover svg{stroke:var(--color-white)}body.light-theme .square.service-square:hover .service-title,body.light-theme .square.service-square:hover .square-id{color:var(--color-white)}.square.section-square{cursor:pointer}.square.section-square .section-link{width:100%;height:100%;color:inherit;border:none;flex-direction:column;justify-content:center;align-items:center;text-decoration:none;display:flex}.square.section-square svg{width:28px;height:28px;stroke:var(--color-white);opacity:.8;margin-bottom:.75rem}.square.section-square:hover svg{stroke:var(--color-black)}.section-title{opacity:.9;font-family:monospace;font-size:1.1rem;font-weight:600}.section-subtitle{opacity:.5;margin-top:.25rem;font-size:.8rem;font-weight:300}.square.section-square:hover{background:var(--color-white);color:var(--color-black)}.square.section-square:hover .section-title{color:var(--color-black)}.square.section-square:hover .section-subtitle{color:var(--color-black);opacity:.6}.square.section-square:hover .square-id{color:var(--color-black)}body.light-theme .square.section-square svg{stroke:var(--color-black)}body.light-theme .square.section-square .section-title,body.light-theme .square.section-square .section-subtitle{color:var(--color-black)}body.light-theme .square.section-square:hover{background:var(--color-black);color:var(--color-white)}body.light-theme .square.section-square:hover svg{stroke:var(--color-white)}body.light-theme .square.section-square:hover .section-title,body.light-theme .square.section-square:hover .section-subtitle,body.light-theme .square.section-square:hover .square-id{color:var(--color-white)}.contact-title{margin-bottom:.5rem;font-size:1.4rem;font-weight:600}.contact-row{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.contact-row svg{opacity:.6;flex-shrink:0}.contact-row a{border:none;font-size:.85rem}.social-links{justify-content:flex-start;gap:1rem;margin-top:.75rem;display:flex}.social-links a{opacity:.5;transition:opacity var(--transition-fast),transform var(--transition-fast);border:none;justify-content:center;align-items:center;display:flex}.social-links a:hover{opacity:1;border:none;transform:translateY(-2px)}.contact-icon{opacity:.8;width:28px;height:28px}.contact-header{justify-content:space-between;align-items:flex-start;width:100%;margin-bottom:.3rem;display:flex}.contact-header .social-links{margin-top:0}.square.contact-square .square-content{text-align:left;flex-direction:column;width:100%;height:100%;padding:1rem;display:flex;justify-content:space-between!important;align-items:flex-start!important}.contact-top,.contact-bottom{flex-direction:column;align-items:flex-start;width:100%;display:flex}.square.contact-square .contact-title,.square.contact-square .contact-icon,.square.contact-square .contact-row,.square.contact-square .social-links,.square.contact-square .legal-links,.square.contact-square .copyright{text-align:left}.legal-links{border-top:none;gap:.3rem;width:100%;margin-top:0;padding-top:0;display:flex}.legal-links a,.legal-links span{opacity:.4;color:inherit;border:none;text-decoration:none;font-size:.6rem!important}.legal-links span{opacity:.5}.copyright{opacity:.35;margin-top:.2rem;font-size:.55rem!important}.square.contact-square{background:var(--color-grey-dark);border:1px solid #ffffff0d;box-shadow:inset 6px 6px 12px #0009,inset -6px -6px 12px #3c3c3c33}.square.contact-square:hover{box-shadow:inset 8px 8px 16px #000000b3,inset -8px -8px 16px #46464640}body.light-theme .square.contact-square{background:#e0e0e0;box-shadow:inset 6px 6px 12px #0000001a,inset -6px -6px 12px #ffffffb3}.square.theme-toggle-square{position:relative}.square.theme-toggle-square .square-content{padding:0;position:absolute;top:12px;right:12px}.theme-btn{cursor:pointer;background:#252525;border:1px solid #333;border-radius:6px;justify-content:center;align-items:center;width:40px;height:40px;transition:all .1s;display:flex;box-shadow:0 4px #1a1a1a,0 5px 3px #0000004d}.theme-btn:hover{background:#2a2a2a}.theme-btn:active{transform:translateY(3px);box-shadow:0 1px #1a1a1a,0 2px 2px #0003}.theme-btn svg{stroke:#888;width:20px;height:20px;transition:stroke var(--transition-smooth)}.theme-btn:hover svg{stroke:#aaa}body.light-theme .theme-btn{background:#2a2a2a;border:1px solid #444;box-shadow:0 4px #1a1a1a,0 5px 3px #0000004d}body.light-theme .theme-btn:active{box-shadow:0 1px #1a1a1a,0 2px 2px #0003}body.light-theme .theme-btn svg{stroke:#888}body.light-theme .theme-btn:hover svg{stroke:#aaa}
.grid-container{grid-template-columns:repeat(var(--columns),var(--square-size));grid-template-rows:repeat(var(--rows),var(--square-size));gap:var(--gap);background:var(--color-dark);place-content:center;width:100vw;height:100vh;display:grid}body.light-theme .grid-container{background:#f0f0f0}
