:root[data-theme=light]{--bg-primary:#f4f6f8;--bg-secondary:#fff;--text-primary:#1c2b3a;--text-secondary:#5c6b7a;--accent-primary:#1f4e79;--accent-secondary:#163a5c;--on-accent:#f4f6f8;--gallery-accent:#1c2b3a;--header-bg:#f4f6f8e6;--footer-bg:#1c2b3a;--footer-text:#f4f6f8;--card-shadow:0 16px 40px #1c2b3a0f;--line:#1c2b3a1f;--overlay-bg:#10182073;--lightbox-bg:#000000e6}:root[data-theme=dark]{--bg-primary:#10161c;--bg-secondary:#18222c;--text-primary:#f3f6f8;--text-secondary:#b7c3ce;--accent-primary:#b7d0e6;--accent-secondary:#d7e6f2;--on-accent:#10161c;--gallery-accent:#f3f6f8;--header-bg:#10161ce6;--footer-bg:#0c1116;--footer-text:#f3f6f8;--card-shadow:0 16px 40px #00000047;--line:#f3f6f81f;--overlay-bg:#0000009e;--lightbox-bg:#000000f2}.theme-toggle{z-index:1;border:1px solid var(--line);cursor:pointer;width:40px;height:40px;color:var(--text-primary);background:0 0;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:static}.theme-toggle:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.theme-toggle span{color:inherit;font-size:1rem}a{color:inherit;text-decoration:none}*{box-sizing:border-box;margin:0;padding:0}h1,h2,h3,h4,.section-title,.logo,.text-button,.footer-name{font-family:Outfit,Fira Sans,sans-serif}body{color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;font-family:Fira Sans,sans-serif;line-height:1.6}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px}main{max-width:1200px;min-height:calc(100vh - 160px);margin:0 auto;padding:0 2rem}header{background-color:var(--header-bg);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:1000;position:sticky;top:0}.nav-container{justify-content:space-between;align-items:center;gap:1.5rem;max-width:1120px;margin:0 auto;padding:.85rem 1.5rem;display:flex}.logo{letter-spacing:-.02em;color:var(--text-primary);align-items:center;gap:.65rem;font-size:1.05rem;font-weight:650;display:flex}.logo a{color:inherit;text-decoration:none}.nav-logo{width:auto;height:40px;transition:transform .3s}.nav-logo:hover{cursor:pointer;transform:scale(1.05)}.nav-tools{align-items:center;gap:.5rem;margin-left:.75rem;display:flex}.nav-links{gap:1.35rem;margin-left:auto;list-style:none;display:flex}.nav-links a{color:var(--text-secondary);font-size:.95rem;font-weight:500;text-decoration:none}.nav-links a:hover{color:var(--text-primary)}#logo_clicker{margin:0;padding:0;line-height:1}section{padding:4.5rem 0}.eyebrow{color:var(--accent-primary);letter-spacing:.14em;text-transform:uppercase;text-align:center;margin:0 0 .45rem;font-size:.78rem;font-weight:600}.section-title{color:var(--text-primary);text-align:center;letter-spacing:-.04em;margin-bottom:2rem;font-size:clamp(2rem,4vw,2.75rem);font-weight:650}footer{background-color:var(--footer-bg);color:var(--footer-text);margin-top:2rem;padding:2.5rem 0}.footer-content{text-align:center;gap:.35rem;max-width:1120px;margin:0 auto;padding:0 1.5rem;display:grid}.footer-name{letter-spacing:.08em;text-transform:uppercase;font-size:1.05rem}.footer-content p{color:#f4f6f8c7;font-size:.95rem}.hero{background:radial-gradient(ellipse at top, color-mix(in srgb, var(--accent-primary) 18%, transparent), transparent 58%), var(--bg-primary);color:var(--text-primary);text-align:center;border-bottom:1px solid var(--line);box-shadow:none;margin-top:0;padding:3.5rem 0 3rem;position:relative;overflow:hidden}.hero-content{flex-direction:column;align-items:center;gap:2rem;max-width:1200px;margin:0 auto;padding:0 2rem;display:flex}.hero-logo{width:100%;max-width:340px;height:auto;margin-bottom:.25rem}.hero h1,.hero h2{color:var(--text-primary);letter-spacing:-.045em;max-width:12em;margin:.35rem 0 0;font-size:clamp(1.8rem,3.4vw,2.7rem);font-weight:650}.hero-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:.5rem;display:flex}.text-button{background:var(--accent-primary);min-height:44px;color:var(--on-accent);letter-spacing:-.01em;border-radius:999px;justify-content:center;align-items:center;padding:.55rem 1.1rem;font-weight:650;display:inline-flex}.text-button-quiet{color:var(--text-primary);border:1px solid var(--line);background:0 0}.text-button:hover{transform:translateY(-1px)}.hero p{opacity:.9;max-width:600px;margin:0 auto;font-size:1.25rem}.services-grid{counter-reset:service;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:.5rem;display:grid}.service-card{background:var(--bg-secondary);border:1px solid var(--line);box-shadow:var(--card-shadow);counter-increment:service;border-radius:18px;padding:1.5rem 1.35rem 1.6rem}.service-card:before{content:counter(service, decimal-leading-zero);color:var(--accent-primary);letter-spacing:.12em;margin-bottom:1.25rem;font-family:Outfit,Fira Sans,sans-serif;font-size:.82rem;font-weight:650;display:block}.service-card h3{color:var(--text-primary);letter-spacing:-.03em;margin-bottom:.55rem;font-size:1.35rem}.service-card p{color:var(--text-secondary)}.about-content{text-align:center;background:var(--bg-secondary);border:1px solid var(--line);max-width:760px;box-shadow:var(--card-shadow);border-radius:22px;margin:0 auto;padding:2.25rem 2rem;font-size:1.12rem;line-height:1.8}.contact-content{text-align:center;max-width:920px;margin:0 auto}.contact-info{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.5rem;display:grid}.contact-item{text-align:left;background:var(--bg-secondary);border:1px solid var(--line);box-shadow:var(--card-shadow);border-radius:18px;flex-direction:column;align-items:flex-start;gap:.75rem;padding:1.25rem;display:flex}.contact-item i{color:var(--accent-primary)}.contact-icon{object-fit:contain;width:24px;height:24px}.contact-item p{margin:0;font-size:1.1rem}@media (width<=800px){.contact-info{grid-template-columns:1fr}}.gallery-container{max-width:1200px;margin:0 auto;padding:2rem 0;position:relative}.gallery-slider{padding:0 60px;position:relative;overflow:hidden}.gallery-track{touch-action:pan-y pinch-zoom;transition:transform .5s cubic-bezier(.4,0,.2,1);display:flex}.gallery-slide{flex:0 0 100%;padding:0 1rem}.gallery-arrow{color:#fff;cursor:pointer;z-index:10;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.5rem;transition:background-color .3s,opacity .3s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gallery-arrow:hover{background:var(--accent-primary)}.gallery-arrow.prev{left:0}.gallery-arrow.next{right:0}.gallery-indicators{justify-content:center;gap:.5rem;margin-top:1.5rem;display:flex}.gallery-indicator{background:var(--text-secondary);cursor:pointer;opacity:.5;border:none;border-radius:50%;width:10px;height:10px;transition:background-color .3s,transform .3s}.gallery-indicator.active{background:var(--accent-primary);opacity:1;transform:scale(1.2)}.gallery-indicator:hover{background:var(--accent-primary);opacity:.8}.gallery-post{background-color:var(--bg-secondary);border:1px solid var(--line);box-shadow:var(--card-shadow);border-radius:16px;overflow:hidden}.gallery-images{position:relative}.desktop-images{gap:1rem;padding:1rem;display:flex}.mobile-image{display:none}.image-container{width:50%;height:400px;position:relative;overflow:hidden}.image-container img{object-fit:cover;border-radius:4px;width:100%;height:100%;transition:transform .3s}.image-overlay{opacity:0;background:#00000080;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s;display:flex;position:absolute;top:0;left:0}.image-container:hover .image-overlay{opacity:1}.image-overlay span{color:#fff;font-size:1.2rem;font-weight:500}.mobile-image-overlay{color:#fff;text-align:center;background:linear-gradient(#0000,#000000b3);padding:1rem;font-size:1.1rem;font-weight:500;position:absolute;bottom:0;left:0;right:0}.gallery-content{padding:1.5rem}.gallery-content h3{color:var(--gallery-accent);margin-bottom:.5rem;font-size:1.5rem}.gallery-content p{color:var(--text-secondary);font-size:1.1rem}.view-more{color:var(--accent-primary);margin-top:1rem;font-weight:500;text-decoration:none;transition:color .3s;display:inline-block}.view-more:hover{color:var(--accent-secondary)}.gallery-detail{padding:2rem 0}.gallery-detail-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-top:2rem;display:grid}.gallery-detail-image{border-radius:8px;height:300px;position:relative;overflow:hidden;box-shadow:0 2px 4px #0000001a}.gallery-detail-image img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.gallery-detail-image:after{content:attr(data-label);color:#fff;background:#000000b3;padding:.5rem;font-size:.9rem;position:absolute;bottom:0;left:0;right:0}@media (width<=768px){.nav-container{flex-direction:row;gap:1rem}.nav-links{flex-direction:column;align-items:center;gap:1rem}main{padding:0 1rem}.section-title{font-size:2rem}.hero{padding:4rem 0}.hero-logo{max-width:300px}.hero h1{font-size:2.5rem}.hero p{font-size:1.1rem}.services-grid{grid-template-columns:1fr}.about-content{padding:0 1rem}.gallery-images{flex-direction:column}.gallery-images img{width:100%;height:300px}.gallery-arrow{width:35px;height:35px;font-size:1.2rem}.image-overlay{display:none}.gallery-indicators{justify-content:center;gap:.5rem;margin-top:1rem;display:flex}.gallery-indicator{cursor:pointer;background:#ccc;border-radius:50%;width:8px;height:8px}.gallery-indicator.active{background:#3498db}}.container{max-width:1200px;margin:0 auto;padding:0 2rem}.text-center{text-align:center}.mt-4{margin-top:2rem}.mb-4{margin-bottom:2rem}.projects-page{padding:4rem 0}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-top:2rem;display:grid}.project-card{background:var(--bg-secondary);border:1px solid var(--line);box-shadow:var(--card-shadow);border-radius:16px;transition:transform .2s,box-shadow .2s;overflow:hidden}.project-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px #0000001f}.project-images{height:250px;position:relative;overflow:hidden}.project-thumbnail{object-fit:cover;cursor:pointer;width:100%;height:100%;transition:transform .3s}.project-thumbnail:hover{transform:scale(1.05)}.project-content{padding:1.5rem}.project-content h3{color:var(--text-primary);margin-bottom:.5rem;font-size:1.5rem}.project-content p{color:var(--text-secondary);margin-bottom:1rem}.view-project{color:var(--accent-primary);font-weight:500;text-decoration:none;transition:color .3s;display:inline-block}.view-project:hover{color:var(--accent-secondary)}.lightbox{background:var(--lightbox-bg);z-index:1000;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.lightbox img{object-fit:contain;max-width:90%;max-height:90vh}.lightbox-close{color:var(--text-primary);cursor:pointer;z-index:1001;background:0 0;border:none;font-size:2rem;position:absolute;top:20px;right:20px}.lightbox-arrow{background:var(--overlay-bg);color:var(--text-primary);cursor:pointer;border:none;border-radius:50%;width:50px;height:50px;font-size:1.5rem;transition:background-color .3s;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-arrow:hover{background:var(--accent-primary)}.lightbox-arrow.prev{left:20px}.lightbox-arrow.next{right:20px}.gallery-detail-image{cursor:pointer}.gallery-detail-image img{transition:transform .3s}.gallery-detail-image:hover img{transform:scale(1.05)}@media (width<=768px){.projects-grid{grid-template-columns:1fr}.lightbox-arrow{width:40px;height:40px;font-size:1.2rem}}.mobile-menu{background:var(--overlay-bg);z-index:1100;opacity:0;visibility:hidden;width:100%;height:100%;transition:opacity .3s,visibility .3s;position:fixed;top:0;left:0}.mobile-menu.active{opacity:1;visibility:visible}.mobile-menu-content{background:var(--bg-secondary);flex-direction:column;width:80%;max-width:300px;height:100%;padding:2rem;transition:transform .4s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:0;right:0;transform:translate(100%);box-shadow:-2px 0 10px #0000001a}.mobile-menu.active .mobile-menu-content{transform:translate(0)}.mobile-menu-close{color:var(--text-primary);cursor:pointer;opacity:0;z-index:1001;background:0 0;border:none;padding:.5rem;font-size:1.5rem;transition:opacity .3s .1s,transform .3s .1s;position:absolute;top:1rem;right:1rem;transform:scale(.8)}.mobile-menu.active .mobile-menu-close{opacity:1;transform:scale(1)}.mobile-menu-close:hover{transform:scale(1.1)}.mobile-nav-links{opacity:0;margin:2rem 0 0;padding:0;list-style:none;transition:opacity .3s .1s,transform .3s .1s;transform:translate(20px)}.mobile-menu.active .mobile-nav-links{opacity:1;transform:translate(0)}.mobile-nav-links li{opacity:0;margin:1rem 0;transition:opacity .3s,transform .3s;transform:translate(20px)}.mobile-menu.active .mobile-nav-links li{opacity:1;transform:translate(0)}.mobile-nav-links li:first-child{transition-delay:.1s}.mobile-nav-links li:nth-child(2){transition-delay:.15s}.mobile-nav-links li:nth-child(3){transition-delay:.2s}.mobile-nav-links li:nth-child(4){transition-delay:.25s}.mobile-nav-links li:nth-child(5){transition-delay:.3s}.mobile-nav-links a{color:var(--text-primary);padding:.5rem 0;font-size:1.2rem;font-weight:500;text-decoration:none;transition:color .3s;display:block}.mobile-nav-links a:hover{color:var(--accent-primary)}.mobile-theme-toggle{border-top:1px solid var(--text-secondary);opacity:0;justify-content:space-between;align-items:center;margin-top:auto;padding:1rem 0;transition:opacity .3s .2s,transform .3s .2s;display:flex;transform:translateY(20px)}.mobile-menu.active .mobile-theme-toggle{opacity:1;transform:translateY(0)}.mobile-theme-toggle span{color:var(--text-primary);font-size:1.1rem}.mobile-menu-toggle{display:none}@media (width<=768px){main{padding:0 1rem}.mobile-menu-toggle{color:var(--text-primary);background:0 0;border:none;font-size:1.5rem;display:block}.nav-links{display:none}}@media (width<=420px){.logo{transform:scale(.9)}.nav-container{padding:1rem}}@media (width<=968px){.gallery-container{margin:0 -1rem;padding:0}.gallery-slider,.gallery-slide{padding:0}.gallery-post{box-shadow:none;border-radius:0}.desktop-images{display:none}.mobile-image{width:100%;height:300px;display:block}.mobile-image img{border-radius:0}.gallery-content{padding:1rem}.gallery-content h3{font-size:1.3rem}.gallery-content p{font-size:1rem}.gallery-arrow{opacity:.7;background:#00000080;width:35px;height:35px;font-size:1.2rem}.gallery-arrow:hover{opacity:1}.gallery-indicators{margin-top:1rem}.gallery-indicator{width:8px;height:8px}}.flash-message{color:#fff;z-index:1000;border-radius:4px;align-items:center;gap:1rem;padding:1rem;animation:.3s ease-out slideIn;display:flex;position:fixed;top:1rem;right:1rem}.flash-message.error{background:#dc3545}.flash-message.success{background:#28a745}.flash-message.review_success{background:#17a2b8}.flash-message.admin_success{background:#28a745}.flash-message.admin_error{background:#dc3545}.close-flash{color:#fff;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.reveal-container{position:relative}.reveal-button{color:var(--text-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem;font-size:1rem;transition:color .2s;display:flex}.reveal-button:hover{color:var(--accent-primary)}.reveal-icon{transition:transform .2s}.reveal-button.active .reveal-icon{transform:rotate(180deg)}.revealed-content{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--line);box-shadow:var(--card-shadow);z-index:100;border-radius:12px;min-width:220px;margin-top:.5rem;padding:.9rem 1rem;display:none;position:absolute;top:100%;left:0}.revealed-content a,.revealed-content a:link,.revealed-content a:visited{color:var(--text-primary);font-weight:500}.revealed-content a:hover,.revealed-content a:focus-visible{color:var(--text-primary);text-underline-offset:.18em;text-decoration:underline}.revealed-content.active{align-items:center;gap:1rem;display:flex}.copy-button{color:var(--text-primary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:.15rem;line-height:0;transition:color .2s;display:inline-flex}.copy-button svg{display:block}.copy-button:hover{color:var(--accent-primary)}html[data-theme=light] .logo-dark,html[data-theme=dark] .logo-light{display:none}.project-description,.review-text,.about-content p{white-space:pre-line}button.thumb-button{cursor:pointer;background:0 0;border:0;width:100%;height:100%;padding:0;display:block}.flash-message.info{background:#17a2b8}
