:root{--color-bg: #FAF9F7;--color-bg-dark: #1A1A1A;--color-text: #1A1A1A;--color-text-muted: #7A7A7A;--color-text-light: #B0B0B0;--color-accent: #FF5C28;--color-accent-hover: #E84D1C;--color-border: rgba(26, 26, 26, .1);--color-dot: rgba(26, 26, 26, .08);--font-heading: "Be Vietnam Pro", system-ui, -apple-system, sans-serif;--font-body: "Lato", system-ui, -apple-system, sans-serif;--header-height: clamp(64px, 5.5vw, 96px);--transition-base: .3s ease;--transition-smooth: .6s cubic-bezier(.16, 1, .3, 1);--radius: clamp(8px, .6vw, 12px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-size:clamp(15px,1vw,18px);font-weight:400;line-height:1.6;color:var(--color-text);background-color:var(--color-bg);overflow-x:hidden}img{max-width:100%;height:auto;display:block}.site-main{position:relative}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{cursor:pointer;border:none;background:none;font-family:inherit;color:inherit}body:before{content:"";position:fixed;inset:0;background-image:radial-gradient(circle,var(--color-dot) 1px,transparent 1px);background-size:24px 24px;pointer-events:none;z-index:-1}.cursor-pixel{position:fixed;top:0;left:0;width:22px;height:22px;background:var(--color-accent);pointer-events:none;z-index:9998;will-change:transform;transition:transform .05s linear,border-radius .25s ease,width .25s ease,height .25s ease}.cursor-pixel.is-target{width:10px;height:10px;border-radius:50%}body:after{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:9998}.text-bold{font-family:var(--font-heading);font-weight:700}.text-italic{font-style:italic;font-weight:300}.text-accent{color:var(--color-accent)}.site-header{position:fixed;top:0;left:0;right:0;z-index:9997;background:var(--color-bg);background-image:radial-gradient(circle,var(--color-dot) 1px,transparent 1px);background-size:24px 24px;border-bottom:1px solid var(--color-border)}.header-inner{width:92%;max-width:1400px;margin:0 auto;height:var(--header-height);display:flex;align-items:center;justify-content:space-between}.header-logo .logo-link{display:flex;align-items:center}.logo-svg{height:clamp(13px,1vw,17px);width:auto}.logo-svg g{fill:var(--color-text);transition:fill var(--transition-base)}.logo-link:hover .logo-svg g{fill:var(--color-accent)}.header-nav{display:flex;align-items:center;gap:clamp(24px,2.5vw,48px)}.header-nav-link{font-family:var(--font-body);font-size:clamp(13px,.85vw,15px);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text);transition:color var(--transition-base)}.header-nav-link:hover{color:var(--color-accent)}.header-nav-btn{display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);border:1px solid rgba(26,26,26,.15);border-radius:6px;padding:6px;transition:color var(--transition-base),border-color var(--transition-base),background var(--transition-base);line-height:0}.header-nav-btn svg{width:clamp(15px,1vw,18px);height:clamp(15px,1vw,18px)}.header-nav-btn:hover{color:var(--color-accent);border-color:var(--color-accent);background:#ff5c280f}.hamburger-toggle{display:none;flex-direction:column;gap:6px;padding:8px;z-index:10000;position:relative}.hamburger-toggle .hamburger-line{display:block;width:24px;height:2px;background:var(--color-text);transition:transform var(--transition-base),opacity .2s ease}.hamburger-toggle.active .hamburger-line:first-child{transform:rotate(45deg) translate(3px,3px)}.hamburger-toggle.active .hamburger-line:last-child{transform:rotate(-45deg) translate(3px,-3px)}.mobile-menu{position:fixed;top:0;right:0;bottom:0;width:70vw;max-width:360px;background:#fff;z-index:9998;transform:translate(100%);transition:transform var(--transition-smooth);display:flex;flex-direction:column;justify-content:center;padding:0 10vw}.mobile-menu-close{position:absolute;top:20px;right:20px;font-family:var(--font-body);font-size:14px;color:var(--color-muted);background:none;border:none;cursor:pointer;padding:8px;transition:color var(--transition-base)}.mobile-menu-close:hover{color:var(--color-text)}.mobile-menu.active{transform:translate(0)}.mobile-menu-backdrop{position:fixed;inset:0;background:#00000080;z-index:9997;opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease}.mobile-menu-backdrop.active{opacity:1;visibility:visible}.mobile-menu-nav{display:flex;flex-direction:column}.mobile-menu-link{font-family:var(--font-heading);font-size:clamp(16px,4vw,22px);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text);padding:5vw 0;border-bottom:1px solid rgba(0,0,0,.08);transition:color var(--transition-base)}.mobile-menu-link:hover{color:var(--color-accent)}.mobile-menu-login{position:absolute;bottom:32px;left:10vw;font-family:var(--font-body);font-size:14px;color:var(--color-muted);transition:color var(--transition-base)}.mobile-menu-login:hover{color:var(--color-text)}.header-spacer{height:var(--header-height)}.hero-section{width:92%;max-width:1400px;margin:0 auto;padding:clamp(48px,6vw,100px) 0 clamp(24px,2vw,40px);display:flex;flex-direction:column;align-items:flex-start}.hero-label{font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-muted);margin-bottom:clamp(20px,2.5vw,40px)}.hero-title{font-family:var(--font-heading);font-size:clamp(36px,5vw,80px);font-weight:300;line-height:1.15;color:var(--color-text);max-width:900px;margin-bottom:clamp(16px,1.5vw,24px);mix-blend-mode:multiply}.hero-title strong{font-weight:700}.hero-title em{font-style:italic;font-weight:300}.hero-bottom{display:flex;align-items:center;justify-content:space-between;width:100%;gap:clamp(24px,3vw,48px)}.hero-description{font-family:var(--font-body);font-size:clamp(15px,1.05vw,19px);font-weight:300;color:var(--color-text-muted);max-width:480px;line-height:1.7;font-style:italic;mix-blend-mode:multiply}.hero-bottom .swiper-nav{display:flex;gap:8px;align-items:center;flex-shrink:0}.projects-section{margin-top:0;padding-bottom:clamp(60px,8vw,120px);overflow:hidden}.projects-slider-wrap{position:relative}.projects-swiper{overflow:visible}.projects-swiper .swiper-wrapper{padding-left:max(4%,calc((100vw - 1400px)/2))}.project-slide{width:clamp(280px,26vw,380px);display:flex;align-items:flex-start;justify-content:center;padding:clamp(16px,1.5vw,24px) clamp(12px,1.2vw,20px);color:inherit;transition:opacity var(--transition-base)}.project-slide:last-child{margin-right:max(4%,calc((100vw - 1400px)/2 + 4%))}.project-slide-inner{width:100%}.project-image-wrapper{position:relative;overflow:hidden;border-radius:var(--radius);margin-bottom:clamp(14px,1.3vw,22px);aspect-ratio:9/16}.project-image-wrapper .project-thumbnail{display:block;width:100%;height:100%;object-fit:cover;object-position:top}.project-image-wrapper .project-placeholder{aspect-ratio:9/16}.project-coming-soon{position:absolute;bottom:0;left:0;right:0;padding:20px;text-align:center;font-size:13px;letter-spacing:.04em;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.5),transparent);opacity:0;transition:opacity .3s ease;z-index:3;pointer-events:none}.project-slide:hover .project-coming-soon{opacity:1}.project-hover-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s ease;z-index:2}.project-slide.has-hover-video:hover .project-hover-video{opacity:1}.project-slide.has-hover-video:hover .project-thumbnail,.project-slide.has-hover-video:hover .project-placeholder{opacity:0;transition:opacity .4s ease}.project-placeholder{width:100%;aspect-ratio:9/16;display:flex;align-items:center;justify-content:center;transition:transform .6s cubic-bezier(.16,1,.3,1)}.project-slide:hover .project-placeholder{transform:scale(1.03)}.placeholder-text{font-family:var(--font-heading);font-size:clamp(16px,1.4vw,22px);font-weight:600;color:#1a1a1a1f;letter-spacing:-.01em}.project-slide-info{display:flex;flex-direction:column;gap:4px}.project-name{font-family:var(--font-heading);font-size:clamp(13px,.9vw,16px);font-weight:500;color:var(--color-text);letter-spacing:-.01em;transition:color var(--transition-base)}.project-name strong{font-weight:700}.project-category-inline{font-weight:400;color:var(--color-text-muted)}.project-category-inline:before{content:"| "}.project-tagline{font-family:var(--font-body);font-size:clamp(13px,.85vw,15px);color:var(--color-text-muted);font-style:italic;font-weight:300;line-height:1.5}.swiper-btn{padding:0;line-height:0;transition:transform .2s ease,opacity .3s ease}.swiper-btn:hover{transform:scale(1.08)}.swiper-btn.swiper-button-disabled{opacity:.25;pointer-events:none}.swiper-btn svg{width:clamp(36px,3vw,48px);height:clamp(36px,3vw,48px)}.swiper-btn svg circle{transition:fill var(--transition-base)}.swiper-btn:hover svg circle{fill:var(--color-accent)}.projects-swiper .swiper-wrapper{transition-timing-function:cubic-bezier(.16,1,.3,1)}.swiper-free-mode>.swiper-wrapper{transition-timing-function:linear!important}.project-category{font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:400}.services-section{padding-bottom:clamp(60px,8vw,120px)}.services-layout{width:92%;max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr 1.6fr;gap:clamp(40px,5vw,100px)}.services-heading{position:sticky;top:calc(var(--header-height) + 40px);align-self:start}.services-intro{font-family:var(--font-heading);font-size:clamp(20px,2vw,30px);font-weight:300;line-height:1.5;color:var(--color-text);mix-blend-mode:multiply}.services-intro strong{font-weight:700}.services-intro em{font-style:italic;font-weight:300}.services-card{position:sticky;top:calc(var(--header-height) + 24px);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:clamp(28px,2.5vw,48px) clamp(24px,2.5vw,40px);margin-bottom:24px;box-shadow:0 4px 24px #1a1a1a0f}.services-card:nth-child(2){top:calc(var(--header-height) + 24px + 40px)}.services-card:nth-child(3){top:calc(var(--header-height) + 24px + 80px)}.services-card-label{font-family:var(--font-heading);font-size:clamp(12px,.8vw,14px);font-weight:500;color:var(--color-accent);display:block;margin-bottom:clamp(12px,1vw,20px)}.services-card-title{font-family:var(--font-heading);font-size:clamp(22px,2vw,32px);font-weight:300;line-height:1.2;margin-bottom:clamp(10px,.8vw,16px);mix-blend-mode:multiply}.services-card-title strong{font-weight:700}.services-card-title em{font-style:italic;font-weight:300}.services-card-text{font-family:var(--font-body);font-size:clamp(15px,.95vw,17px);font-weight:300;line-height:1.7;color:var(--color-text-muted);margin-bottom:clamp(16px,1.5vw,28px);mix-blend-mode:multiply}.services-card-tags{display:flex;flex-wrap:wrap;gap:8px}.services-tag{font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);font-weight:400;color:var(--color-text);border:1px solid var(--color-border);border-radius:100px;padding:6px 16px}.portfolio-hero{width:92%;max-width:1400px;margin:0 auto;padding:clamp(40px,4vw,80px) 0 clamp(40px,4vw,60px)}.portfolio-hero-label{font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-muted);margin-bottom:clamp(16px,1.5vw,28px)}.portfolio-hero-title{font-family:var(--font-heading);font-size:clamp(32px,4.5vw,72px);font-weight:700;line-height:1.1;color:var(--color-text);margin-bottom:clamp(16px,2vw,32px);letter-spacing:-.02em}.portfolio-hero-tagline{font-family:var(--font-body);font-size:clamp(15px,1.1vw,19px);color:var(--color-text-muted);max-width:550px;line-height:1.7;font-style:italic;font-weight:300}.portfolio-hero-media{width:92%;max-width:1400px;margin:0 auto clamp(48px,5vw,80px);border-radius:var(--radius);overflow:hidden;aspect-ratio:16/9;position:relative;background:#1a1a1a}.portfolio-hero-video,.portfolio-hero-img{width:100%;height:100%;object-fit:cover}.portfolio-hero-media .project-placeholder{aspect-ratio:16/9}.portfolio-content{width:92%;max-width:720px;margin:0 auto;padding-bottom:clamp(60px,8vw,120px)}.portfolio-section{margin-bottom:clamp(40px,4vw,64px)}.portfolio-section-label{font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--color-accent);margin-bottom:clamp(12px,1vw,20px)}.portfolio-section-text{font-family:var(--font-body);font-size:clamp(15px,1vw,18px);color:var(--color-text);line-height:1.8;font-weight:300}.portfolio-results-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,28px)}.result-item{padding:clamp(20px,2vw,32px);border:1px solid var(--color-border);border-radius:var(--radius);background:#fff}.result-value{font-family:var(--font-heading);font-size:clamp(28px,2.5vw,44px);font-weight:700;color:var(--color-accent);display:block;margin-bottom:4px}.result-label{font-family:var(--font-heading);font-size:clamp(13px,.85vw,15px);font-weight:600;color:var(--color-text);margin-bottom:4px}.result-desc{font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);color:var(--color-text-muted);font-weight:300}.portfolio-testimonial{border-top:1px solid var(--color-border);padding-top:clamp(32px,3vw,48px);margin-top:clamp(40px,4vw,64px)}.portfolio-testimonial blockquote{font-family:var(--font-body);font-size:clamp(18px,1.4vw,26px);line-height:1.6;color:var(--color-text);font-style:italic;font-weight:300;margin-bottom:clamp(16px,1.5vw,24px)}.portfolio-testimonial cite{font-style:normal;font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.portfolio-back{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);transition:color var(--transition-base);margin-top:clamp(32px,3vw,48px)}.portfolio-back:hover{color:var(--color-accent)}.portfolio-back svg{width:16px;height:16px}.about-section{background:var(--color-bg-dark);padding:clamp(60px,8vw,140px) 0;position:relative}.about-grid{width:92%;max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto;gap:clamp(12px,1.2vw,20px)}.about-card{background:#2a2a2a;border-radius:var(--radius);overflow:hidden}.about-card--text{grid-column:1 / 3;grid-row:1;padding:clamp(32px,3vw,56px);display:flex;flex-direction:column;justify-content:center}.about-card--photo{grid-column:3;grid-row:1 / 3}.about-card--team{grid-column:1;grid-row:2;padding:clamp(24px,2.5vw,40px)}.about-card--testimonial{grid-column:2;grid-row:2;padding:clamp(24px,2.5vw,40px);display:flex;flex-direction:column;justify-content:space-between}.about-card-photo{width:100%;height:100%;min-height:clamp(200px,20vw,340px);border-radius:var(--radius);object-fit:cover}.about-label{font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:#fff6;display:block;margin-bottom:clamp(16px,1.5vw,28px)}.about-intro{font-family:var(--font-heading);font-size:clamp(20px,2vw,30px);font-weight:300;line-height:1.5;color:#fff}.about-intro strong{font-weight:700}.about-intro em{font-style:italic;font-weight:300}.about-card-eyebrow{font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#ffffff59;display:block;margin-bottom:clamp(20px,2vw,32px)}.about-team-members{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,1.5vw,24px) clamp(24px,3vw,48px)}.about-team-member{display:flex;align-items:center;gap:clamp(10px,.8vw,14px)}.about-team-avatar{width:clamp(56px,4vw,64px);height:clamp(56px,4vw,64px);object-fit:cover;border-radius:50%;background:linear-gradient(135deg,#444,#555);flex-shrink:0}.about-team-info{display:flex;flex-direction:column;gap:2px}.about-team-name{font-family:var(--font-heading);font-size:clamp(14px,.9vw,16px);font-weight:600;color:#fff}.about-team-role{font-family:var(--font-body);font-size:clamp(12px,.75vw,14px);font-weight:300;color:#fff6}.about-quote-icon{margin-bottom:clamp(12px,1vw,20px);flex-shrink:0}.about-testimonial-quote{font-family:var(--font-heading);font-size:clamp(15px,1.1vw,19px);font-weight:300;font-style:italic;line-height:1.6;color:#ffffffb3;margin:0}.about-testimonial-author{display:flex;flex-direction:column;gap:2px;margin-top:clamp(20px,2vw,32px)}.about-testimonial-author strong{font-family:var(--font-heading);font-size:clamp(13px,.85vw,15px);font-weight:600;color:#fff}.about-testimonial-author span{font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);font-weight:300;color:#ffffff59}.contact-section{padding:clamp(60px,8vw,140px) 0}.contact-layout{width:92%;max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(40px,5vw,100px)}.contact-label{font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-muted);display:block;margin-bottom:clamp(16px,1.5vw,28px)}.contact-title{font-family:var(--font-heading);font-size:clamp(28px,3vw,48px);font-weight:300;line-height:1.2;color:var(--color-text);margin-bottom:clamp(12px,1vw,20px)}.contact-title strong{font-weight:700}.contact-text{font-family:var(--font-body);font-size:clamp(15px,1.05vw,19px);font-weight:300;color:var(--color-text-muted);line-height:1.7;margin-bottom:clamp(24px,2.5vw,40px)}.contact-details{display:flex;flex-direction:column;gap:clamp(12px,1vw,18px);margin-bottom:clamp(24px,2.5vw,40px)}.contact-detail{display:flex;align-items:center;gap:clamp(10px,.8vw,14px);font-family:var(--font-body);font-size:clamp(15px,.95vw,17px);font-weight:400;color:var(--color-text);transition:color var(--transition-base)}.contact-detail svg{flex-shrink:0;color:var(--color-accent)}a.contact-detail:hover{color:var(--color-accent)}.contact-map{width:100%;height:clamp(180px,16vw,260px);border-radius:var(--radius);overflow:hidden;border:1px solid var(--color-border)}.contact-map iframe{width:100%;height:100%;display:block}.faq-list{margin-top:clamp(8px,.5vw,12px)}.faq-item{border-bottom:1px solid var(--color-border)}.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:clamp(16px,1.5vw,24px) 0;font-family:var(--font-heading);font-size:clamp(15px,1vw,18px);font-weight:500;color:var(--color-text);text-align:left;transition:color var(--transition-base)}.faq-question:hover{color:var(--color-accent)}.faq-icon{flex-shrink:0;color:var(--color-text-muted);transition:transform .3s ease,color .3s ease}.faq-item.active .faq-icon{transform:rotate(45deg);color:var(--color-accent)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.16,1,.3,1),padding .4s ease}.faq-item.active .faq-answer{max-height:300px}.faq-answer p{font-family:var(--font-body);font-size:clamp(15px,.95vw,17px);font-weight:300;line-height:1.7;color:var(--color-text-muted);padding-bottom:clamp(16px,1.5vw,24px)}.site-footer{position:relative;width:92%;max-width:1400px;margin:0 auto;padding:clamp(24px,2vw,40px) 0;border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.footer-copy{font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);color:var(--color-text-muted);font-weight:400}.footer-links{display:flex;gap:clamp(16px,1.5vw,32px)}.footer-link{font-family:var(--font-body);font-size:clamp(12px,.8vw,14px);font-weight:400;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;transition:color var(--transition-base)}.footer-link:hover{color:var(--color-accent)}.footer-link--email{text-transform:none;letter-spacing:normal;font-weight:400}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fade-in{opacity:0;transform:translateY(30px)}.fade-in.visible{opacity:1;transform:translateY(0);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.fade-in-delay-1{transition-delay:.1s}.fade-in-delay-2{transition-delay:.2s}.fade-in-delay-3{transition-delay:.3s}.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}@media(max-width:768px){.header-nav{display:none}.hamburger-toggle{display:flex}.projects-grid,.portfolio-results-grid{grid-template-columns:1fr}.site-footer{flex-direction:column;gap:12px;text-align:center}.projects-section-header{gap:12px}.services-layout{grid-template-columns:1fr;gap:clamp(24px,4vw,40px)}.services-heading{position:relative;top:auto}.about-grid{grid-template-columns:1fr;grid-template-rows:auto}.about-card--text,.about-card--photo,.about-card--team,.about-card--testimonial{grid-column:1;grid-row:auto}.about-card-photo{min-height:240px}.contact-layout{grid-template-columns:1fr;gap:clamp(40px,6vw,60px)}}
