:root{--canvas:#FDFCF9;--linen:#F1EBE1;--linen-deep:#E8E0D2;--charcoal:#211F1C;--charcoal-soft:#3A3733;--stone:#A29C90;--stone-light:#D9D3C6;--teal:#1F4B49;--teal-deep:#153634;--teal-tint:#E4EDEC;--font-display:'Fraunces',serif;--font-body:'Inter',sans-serif;--font-mono:'IBM Plex Mono',monospace;--max:1240px;--radius:2px;--ease:cubic-bezier(.22,.61,.36,1);--header-h:73px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h)+16px)}body{font-family:var(--font-body);color:var(--charcoal);background:var(--canvas);line-height:1.6;-webkit-font-smoothing:antialiased;opacity:0}body.loaded{opacity:1;transition:opacity .5s var(--ease)}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}button{font-family:inherit;cursor:pointer;border:none;background:none}:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}@media(max-width:640px){.wrap{padding:0 20px}}[id]{scroll-margin-top:calc(var(--header-h)+16px)}.photo{position:relative;overflow:hidden;background:var(--linen-deep)}.photo img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(25%) sepia(8%) saturate(85%) contrast(1.04)}.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(31,75,73,.16),rgba(33,31,28,.22));mix-blend-mode:multiply;pointer-events:none}.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);display:flex;align-items:center;gap:10px;margin-bottom:18px}.eyebrow::before{content:"";width:26px;height:1px;background:var(--teal)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.08;letter-spacing:-.01em}h2{font-size:clamp(30px,4vw,46px)}h3{font-size:22px}.section-head{max-width:640px;margin-bottom:56px}.section-head p{color:var(--charcoal-soft);font-size:17px;margin-top:16px;max-width:520px}section{padding:104px 0}@media(max-width:768px){section{padding:72px 0}.section-head{margin-bottom:40px}}.btn{display:inline-flex;align-items:center;gap:10px;padding:16px 28px;font-family:var(--font-mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius);transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}.btn-primary{background:var(--teal);color:var(--canvas)}.btn-primary:hover{background:var(--teal-deep);transform:translateY(-2px);box-shadow:0 12px 24px -10px rgba(21,54,52,.55)}.btn-primary:active{transform:translateY(0);box-shadow:none}.btn-ghost{border:1px solid var(--charcoal);color:var(--charcoal)}.btn-ghost:hover{background:var(--charcoal);color:var(--canvas);transform:translateY(-2px)}.btn-light{border:1px solid rgba(253,252,249,.5);color:var(--canvas)}.btn-light:hover{background:var(--canvas);color:var(--charcoal);transform:translateY(-2px)}header{position:sticky;top:0;z-index:100;background:rgba(253,252,249,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--stone-light);transition:box-shadow .35s var(--ease),background .35s var(--ease)}header.scrolled{box-shadow:0 12px 30px -20px rgba(33,31,28,.35)}.scroll-progress{position:absolute;left:0;bottom:-1px;height:2px;background:var(--teal);width:0;transition:width .12s linear}nav{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;max-width:var(--max);margin:0 auto;height:var(--header-h);box-sizing:border-box}.logo{display:flex;align-items:center;gap:10px}.logo img{height:48px;width:auto;display:block;transition:transform .4s var(--ease)}.logo:hover img{transform:scale(1.03)}.logo-chip{display:inline-flex;background:var(--canvas);padding:8px 14px;border-radius:6px}.logo-chip img{height:40px;width:auto;display:block}.nav-links{display:flex;align-items:center;gap:36px;font-size:14px;font-weight:500}.nav-links a{position:relative;padding:4px 0;transition:color .25s var(--ease)}.nav-links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--teal);transition:width .3s var(--ease)}.nav-links a:hover::after,.nav-links a.active::after{width:100%}.nav-links a.active{color:var(--teal)}.nav-cta{display:flex;align-items:center;gap:20px}.hamburger{display:none;flex-direction:column;gap:5px;width:26px;padding:6px}.hamburger span{height:2px;background:var(--charcoal);width:100%;transition:all .3s var(--ease);transform-origin:center}.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-panel{position:fixed;inset:var(--header-h) 0 0 0;background:var(--canvas);z-index:99;padding:32px;display:flex;flex-direction:column;gap:22px;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility 0s linear .3s}.mobile-panel.open{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility 0s}.mobile-panel a{font-family:var(--font-display);font-size:26px;opacity:0;transform:translateY(8px);transition:opacity .35s var(--ease),transform .35s var(--ease)}.mobile-panel.open a{opacity:1;transform:none}.mobile-panel.open a:nth-child(1){transition-delay:.05s}.mobile-panel.open a:nth-child(2){transition-delay:.1s}.mobile-panel.open a:nth-child(3){transition-delay:.15s}.mobile-panel.open a:nth-child(4){transition-delay:.2s}.mobile-panel.open a:nth-child(5){transition-delay:.25s}.mobile-panel.open a:nth-child(6){transition-delay:.3s}@media(max-width:900px){.nav-links{display:none}.nav-cta .btn-primary{display:none}.hamburger{display:flex}}.hero{position:relative;padding:64px 0 0;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}.hero-copy .eyebrow{margin-bottom:22px}.hero h1{font-size:clamp(38px,5.4vw,68px);max-width:640px}.hero h1 .stroke{position:relative;display:inline-block}.hero h1 .stroke svg{position:absolute;left:-4px;right:-4px;bottom:2px;width:calc(100%+8px);height:16px;z-index:-1}.hero h1 .stroke svg path{stroke-dasharray:220;stroke-dashoffset:220;animation:draw 1s var(--ease) .5s forwards}@keyframes draw{to{stroke-dashoffset:0}}.hero p.lead{font-size:18px;color:var(--charcoal-soft);max-width:480px;margin:24px 0 36px}.hero-actions{display:flex;gap:16px;flex-wrap:wrap}.trust-line{margin-top:44px;padding-top:24px;border-top:1px solid var(--stone-light);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--stone)}.hero-visual{position:relative}.hero-visual .photo{aspect-ratio:4/5;border-radius:var(--radius)}.hero-visual .photo img{transition:transform 1.2s var(--ease)}.hero-visual:hover .photo img{transform:scale(1.04)}.swatch-fan{position:absolute;bottom:-36px;left:-36px;display:flex;gap:0}.swatch{width:52px;height:78px;border-radius:2px;box-shadow:0 12px 24px -8px rgba(33,31,28,.3);border:1px solid rgba(255,255,255,.4);transition:transform .35s var(--ease)}.swatch:nth-child(1){background:#DCE3DE;transform:rotate(-14deg) translateY(6px)}.swatch:nth-child(2){background:var(--teal);transform:rotate(-6deg) translateY(2px);z-index:2}.swatch:nth-child(3){background:var(--charcoal);transform:rotate(3deg);z-index:3}.swatch:nth-child(4){background:var(--stone-light);transform:rotate(11deg) translateY(4px)}.swatch-fan:hover .swatch:nth-child(1){transform:rotate(-22deg) translateY(2px) translateX(-6px)}.swatch-fan:hover .swatch:nth-child(2){transform:rotate(-9deg) translateY(-4px)}.swatch-fan:hover .swatch:nth-child(3){transform:rotate(6deg) translateY(-4px)}.swatch-fan:hover .swatch:nth-child(4){transform:rotate(19deg) translateY(2px) translateX(6px)}@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px}.swatch-fan{display:none}}.page-hero{padding:56px 0 88px}.page-hero .eyebrow{margin-bottom:18px}.page-hero h1{font-size:clamp(34px,5vw,54px);max-width:720px}.page-hero p{font-size:17px;color:var(--charcoal-soft);max-width:560px;margin-top:18px}.crumbs{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--stone);margin-bottom:20px}.crumbs a{color:var(--teal)}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--stone-light)}.service-card{background:var(--canvas);display:flex;flex-direction:column}.service-card .photo{aspect-ratio:4/3}.service-card .photo img{transition:transform .6s var(--ease)}.service-card:hover .photo img{transform:scale(1.06)}.service-body{padding:28px 28px 32px}.service-body .num{font-family:var(--font-mono);font-size:12px;color:var(--stone);margin-bottom:10px;display:block}.service-body h3{margin-bottom:10px}.service-body p{color:var(--charcoal-soft);font-size:15px;margin-bottom:18px}.service-body a{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--teal);display:inline-flex;align-items:center;gap:6px;transition:gap .25s var(--ease)}.service-body a:hover{gap:10px}@media(max-width:900px){.services-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.services-grid{grid-template-columns:1fr}}.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:88px 0;border-top:1px solid var(--stone-light)}.service-detail:nth-child(even) .service-detail-media{order:2}.service-detail ul{margin-top:20px;display:flex;flex-direction:column;gap:12px}.service-detail ul li{display:flex;gap:10px;font-size:15px;color:var(--charcoal-soft)}.service-detail ul li::before{content:"—";color:var(--teal);font-family:var(--font-mono)}.service-detail-media .photo{aspect-ratio:4/3.4}@media(max-width:860px){.service-detail{grid-template-columns:1fr;gap:28px;padding:56px 0}.service-detail:nth-child(even) .service-detail-media{order:0}}.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:44px}.filter-btn{padding:9px 18px;border:1px solid var(--stone-light);border-radius:20px;font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}.filter-btn.active,.filter-btn:hover{background:var(--charcoal);border-color:var(--charcoal);color:var(--canvas)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.project-card{cursor:pointer;opacity:0;transform:translateY(14px);animation:cardIn .5s var(--ease) forwards}@keyframes cardIn{to{opacity:1;transform:none}}.project-card .photo{aspect-ratio:5/4;margin-bottom:16px}.project-card .photo img{transition:transform .5s var(--ease)}.project-card:hover .photo img{transform:scale(1.06)}.project-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.project-meta h3{font-size:19px}.project-meta .loc{font-family:var(--font-mono);font-size:11px;color:var(--stone);text-transform:uppercase;margin-top:6px}.project-tag{font-family:var(--font-mono);font-size:11px;color:var(--teal);border:1px solid var(--teal);padding:4px 9px;border-radius:20px;white-space:nowrap}.project-card p{color:var(--charcoal-soft);font-size:14px;margin-top:8px}.project-card[hidden]{display:none}@media(max-width:900px){.project-grid{grid-template-columns:1fr 1fr;gap:20px}}@media(max-width:600px){.project-grid{grid-template-columns:1fr}}.lightbox{position:fixed;inset:0;background:rgba(17,16,14,.94);z-index:200;display:flex;align-items:center;justify-content:center;padding:40px;opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility 0s linear .3s}.lightbox.open{opacity:1;visibility:visible;transition:opacity .3s var(--ease),visibility 0s}.lightbox img{max-height:82vh;max-width:90vw;object-fit:contain;border-radius:2px;transform:scale(.97);transition:transform .3s var(--ease)}.lightbox.open img{transform:scale(1)}.lightbox-close{position:absolute;top:28px;right:32px;color:var(--canvas);font-size:14px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:8px}.lightbox-cap{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);color:var(--stone-light);font-family:var(--font-mono);font-size:12px;text-align:center}.ba-section{background:var(--charcoal);color:var(--canvas)}.ba-section .eyebrow{color:#7FB5B0}.ba-section .section-head p{color:rgba(253,252,249,.65)}.ba-slider{position:relative;max-width:880px;margin:0 auto;aspect-ratio:16/9;overflow:hidden;border-radius:2px;user-select:none;cursor:ew-resize}.ba-slider .photo{position:absolute;inset:0;aspect-ratio:auto}.ba-after{position:absolute;inset:0;overflow:hidden;width:50%;transition:width .05s linear}.ba-after .photo{width:880px;max-width:none;height:100%}.ba-before .photo{height:100%}.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--canvas);transform:translateX(-1px);transition:left .05s linear}.ba-handle::after{content:"⇔";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;background:var(--canvas);color:var(--charcoal);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 8px 20px rgba(0,0,0,.35);transition:transform .25s var(--ease)}.ba-slider:hover .ba-handle::after{transform:translate(-50%,-50%) scale(1.08)}.ba-label{position:absolute;top:16px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:6px 12px;background:rgba(33,31,28,.55);color:var(--canvas);border-radius:20px}.ba-label.before-label{left:16px}.ba-label.after-label{right:16px}.why-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--stone-light);border:1px solid var(--stone-light)}.why-card{background:var(--linen);padding:34px 24px;display:flex;flex-direction:column;gap:16px;transition:background .3s var(--ease),transform .3s var(--ease)}.why-card:hover{background:var(--canvas);transform:translateY(-4px)}.why-card .icon{width:38px;height:38px}.why-card h3{font-size:18px}.why-card p{font-size:14px;color:var(--charcoal-soft)}@media(max-width:1000px){.why-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.why-grid{grid-template-columns:1fr}}.process-list{display:flex;flex-direction:column}.process-row{display:grid;grid-template-columns:120px 1fr;gap:32px;padding:32px 0;border-top:1px solid var(--stone-light);align-items:baseline;transition:padding-left .3s var(--ease)}.process-row:hover{padding-left:8px}.process-row:last-child{border-bottom:1px solid var(--stone-light)}.process-row .swid{font-family:var(--font-mono);font-size:13px;color:var(--teal);display:flex;align-items:center;gap:10px}.process-row .swid .chip{width:12px;height:12px;border-radius:2px;background:var(--teal);display:inline-block;transition:transform .3s var(--ease)}.process-row:hover .swid .chip{transform:rotate(45deg)}.process-row h3{margin-bottom:6px}.process-row p{color:var(--charcoal-soft);font-size:15px;max-width:520px}@media(max-width:640px){.process-row{grid-template-columns:1fr;gap:8px}}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.about-grid .photo{aspect-ratio:4/3.2}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px}.stat b{font-family:var(--font-display);font-size:34px;display:block;color:var(--teal)}.stat span{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--stone)}@media(max-width:900px){.about-grid{grid-template-columns:1fr}}.test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.test-card{background:var(--linen);padding:34px 30px;border-radius:2px;display:flex;flex-direction:column;gap:20px;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.test-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -24px rgba(33,31,28,.35)}.stars{color:var(--teal);letter-spacing:2px;font-size:14px}.test-card p.quote{font-family:var(--font-display);font-size:19px;line-height:1.45}.test-who{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--stone)}@media(max-width:900px){.test-grid{grid-template-columns:1fr}}.review-summary{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:36px}.review-badge{display:flex;align-items:center;gap:14px;background:var(--linen);border:1px solid var(--stone-light);padding:14px 22px;border-radius:2px}.review-badge b{font-family:var(--font-display);font-size:28px;color:var(--teal)}.review-badge .stars{font-size:16px}.review-badge span{display:block;font-family:var(--font-mono);font-size:11px;color:var(--stone);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}.review-badge a{font-family:var(--font-mono);font-size:12px;color:var(--teal);text-decoration:underline;text-underline-offset:3px}.review-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.review-card{background:var(--linen);padding:24px 22px;border-radius:2px;display:flex;flex-direction:column;gap:10px;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.review-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -24px rgba(33,31,28,.35)}.review-card .rhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.review-card .rname{font-weight:600;font-size:14px}.review-card .rdate{font-family:var(--font-mono);font-size:11px;color:var(--stone);white-space:nowrap}.review-card p{font-size:13.5px;color:var(--charcoal-soft);line-height:1.5}@media(max-width:900px){.review-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.review-grid{grid-template-columns:1fr}}.masonry{columns:4 260px;column-gap:16px}.masonry .photo{margin-bottom:16px;break-inside:avoid;border-radius:2px;cursor:pointer}.masonry .photo img{transition:transform .5s var(--ease)}.masonry .photo:hover img{transform:scale(1.05)}.masonry .photo:nth-child(3n+1){aspect-ratio:3/4}.masonry .photo:nth-child(3n+2){aspect-ratio:1/1}.masonry .photo:nth-child(3n){aspect-ratio:4/5}@media(max-width:640px){.masonry{columns:2 160px}}.cta-band{background:var(--teal);color:var(--canvas);text-align:center}.cta-band h2{max-width:680px;margin:0 auto}.cta-band p{max-width:480px;margin:20px auto 36px;color:rgba(253,252,249,.8);font-size:17px}.cta-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.form-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px}.form-side h2{margin-bottom:16px}.form-side p{color:var(--charcoal-soft);margin-bottom:28px}.form-note{display:flex;gap:14px;padding:18px 0;border-top:1px solid var(--stone-light)}.form-note b{font-family:var(--font-mono);font-size:12px;color:var(--teal)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{margin-bottom:18px;display:flex;flex-direction:column;gap:8px}.field label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--stone)}.field input,.field select,.field textarea{border:1px solid var(--stone-light);background:var(--canvas);padding:13px 14px;font-family:var(--font-body);font-size:15px;border-radius:2px;color:var(--charcoal);transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-tint)}.field-upload{border:1px dashed var(--stone-light);padding:22px;text-align:center;border-radius:2px;font-size:13px;color:var(--stone);cursor:pointer;transition:border-color .25s var(--ease),color .25s var(--ease)}.field-upload:hover{border-color:var(--teal);color:var(--teal)}.form-success{display:none;background:var(--teal-tint);border:1px solid var(--teal);color:var(--teal-deep);padding:22px;border-radius:2px;font-size:15px;opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease)}.form-success.show{display:block}.form-success.show.in{opacity:1;transform:none}@media(max-width:900px){.form-wrap{grid-template-columns:1fr;gap:36px}.field-grid{grid-template-columns:1fr}}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:stretch}.contact-info dl{display:grid;grid-template-columns:110px 1fr;gap:16px 12px;margin-top:24px}.contact-info dt{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:var(--stone);letter-spacing:.05em;padding-top:2px}.contact-info dd{font-size:15px}.map-box{background:var(--linen);border:1px solid var(--stone-light);border-radius:2px;min-height:320px;position:relative;overflow:hidden}.map-grid-lines{position:absolute;inset:0;background-image:linear-gradient(var(--stone-light) 1px,transparent 1px),linear-gradient(90deg,var(--stone-light) 1px,transparent 1px);background-size:36px 36px;opacity:.6}.map-pin{position:absolute;top:44%;left:52%;width:16px;height:16px;background:var(--teal);border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 8px 18px rgba(31,75,73,.4);animation:pinDrop .6s var(--ease) .2s both}@keyframes pinDrop{from{transform:rotate(-45deg) translateY(-16px);opacity:0}to{transform:rotate(-45deg) translateY(0);opacity:1}}.call-mobile{display:none}@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}@media(max-width:640px){.call-mobile{display:flex;position:fixed;bottom:18px;left:20px;right:20px;z-index:80;justify-content:center}}footer{background:var(--charcoal);color:var(--stone-light);padding:80px 0 32px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:56px;border-bottom:1px solid rgba(217,211,198,.15)}.footer-brand .logo{color:var(--canvas)}.footer-brand p{margin-top:16px;color:rgba(217,211,198,.6);font-size:14px;max-width:260px}.footer-col h4{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:18px;color:var(--stone)}.footer-col ul{display:flex;flex-direction:column;gap:12px;font-size:14px}.footer-col a{transition:color .25s var(--ease)}.footer-col a:hover{color:var(--canvas)}.social{display:flex;gap:14px;margin-top:20px}.social a{width:34px;height:34px;border:1px solid rgba(217,211,198,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:border-color .25s var(--ease),color .25s var(--ease),transform .25s var(--ease)}.social a:hover{border-color:var(--canvas);color:var(--canvas);transform:translateY(-3px)}.footer-bottom{padding-top:28px;display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:12px;color:rgba(217,211,198,.5);flex-wrap:wrap;gap:12px}@media(max-width:800px){.footer-grid{grid-template-columns:1fr 1fr;gap:32px}}@media(max-width:480px){.footer-grid{grid-template-columns:1fr}}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.reveal,body,.project-card,.mobile-panel a{opacity:1 !important;transform:none !important;animation:none !important;transition:none !important}html{scroll-behavior:auto}}.mobile-panel{background:linear-gradient(180deg,rgba(253,252,249,.98),rgba(241,235,225,.96));padding:34px clamp(24px,7vw,56px);gap:0;box-shadow:0 30px 80px rgba(33,31,28,.18);overflow-y:auto}.mobile-panel::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 12%,rgba(31,75,73,.10),transparent 34%),linear-gradient(90deg,rgba(31,75,73,.08) 1px,transparent 1px),linear-gradient(rgba(31,75,73,.06) 1px,transparent 1px);background-size:auto,48px 48px,48px 48px;pointer-events:none}.mobile-panel>*{position:relative}.mobile-menu-label{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:var(--teal);display:flex;align-items:center;gap:12px;margin-bottom:24px}.mobile-menu-label::before{content:"";width:36px;height:1px;background:var(--teal)}.mobile-panel>a{font-family:var(--font-display);font-size:clamp(34px,11vw,56px);line-height:1.05;padding:16px 0;border-bottom:1px solid rgba(162,156,144,.25);color:var(--charcoal)}.mobile-panel>a:hover,.mobile-panel>a.active{color:var(--teal)}.mobile-menu-actions{display:grid;gap:14px;margin-top:28px}.mobile-menu-actions .btn{width:100%;justify-content:center;padding:18px 22px}.mobile-social-link{font-family:var(--font-mono)!important;font-size:13px!important;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--stone-light);padding:16px 22px!important;text-align:center;background:rgba(253,252,249,.62);color:var(--teal-deep)!important}.mobile-panel.open .mobile-menu-label,.mobile-panel.open .mobile-menu-actions{animation:menuFade .45s var(--ease) both}.mobile-panel.open .mobile-menu-label{animation-delay:.03s}.mobile-panel.open .mobile-menu-actions{animation-delay:.28s}@keyframes menuFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.social-featured{align-items:center;flex-wrap:wrap;gap:10px}.social-featured span{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);width:100%}.social-featured a{width:auto;height:auto;border-radius:999px;padding:10px 16px;background:rgba(253,252,249,.08);border-color:rgba(217,211,198,.35);font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.social-featured a::before{content:"f";font-family:Arial,sans-serif;font-weight:700;margin-right:8px;width:18px;height:18px;border-radius:50%;background:var(--canvas);color:var(--teal-deep);display:inline-flex;align-items:center;justify-content:center;text-transform:none;letter-spacing:0}.social-featured a:hover{background:var(--canvas);color:var(--teal-deep);border-color:var(--canvas)}@media(max-width:480px){.mobile-panel{padding:28px 24px}.mobile-panel>a{font-size:36px;padding:13px 0}.mobile-menu-actions{margin-top:22px}}.mobile-panel{background:var(--canvas)!important;padding:34px clamp(24px,7vw,56px)!important;gap:0!important;box-shadow:0 30px 80px rgba(33,31,28,.18)!important;overflow-y:auto!important}.mobile-panel::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 88% 10%,rgba(31,75,73,.08),transparent 34%),linear-gradient(90deg,rgba(31,75,73,.045) 1px,transparent 1px),linear-gradient(rgba(31,75,73,.035) 1px,transparent 1px);background-size:auto,48px 48px,48px 48px;opacity:.65;pointer-events:none}.mobile-panel>*{position:relative}.mobile-panel>a{font-size:clamp(32px,10vw,52px)!important;line-height:1.02!important;padding:13px 0!important}.mobile-menu-actions{display:grid!important;gap:14px!important;margin-top:24px!important}.mobile-menu-actions .btn{width:100%!important;justify-content:center!important;min-height:64px!important;padding:18px 22px!important;font-size:13px!important;letter-spacing:.08em!important}.mobile-social-link{font-family:var(--font-mono)!important;font-size:12px!important;letter-spacing:.12em!important;text-transform:uppercase!important;border:1px solid var(--stone-light)!important;padding:16px 22px!important;text-align:center!important;background:rgba(253,252,249,.9)!important;color:var(--teal-deep)!important}.mobile-social-link::before{content:"f";font-family:Arial,sans-serif;font-weight:700;margin-right:8px;width:18px;height:18px;border-radius:50%;background:var(--teal);color:var(--canvas);display:inline-flex;align-items:center;justify-content:center;text-transform:none;letter-spacing:0}.mobile-menu-label{margin-bottom:22px!important}@media(max-width:480px){.mobile-panel{padding:28px 24px!important}.mobile-panel>a{font-size:34px!important;padding:11px 0!important}.mobile-menu-actions .btn{min-height:58px!important}.mobile-social-link{padding:14px 20px!important}}.contact-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}.btn-social{border:1px solid var(--teal);color:var(--teal-deep);background:rgba(31,75,73,.06)}.btn-social::before{content:"f";font-family:Arial,sans-serif;font-weight:700;width:18px;height:18px;border-radius:50%;background:var(--teal);color:var(--canvas);display:inline-flex;align-items:center;justify-content:center;font-size:11px;margin-right:2px}.btn-social:hover{background:var(--teal);color:var(--canvas)}.btn-social:hover::before{background:var(--canvas);color:var(--teal-deep)}@media(max-width:480px){.contact-actions{flex-direction:column}.contact-actions .btn{width:100%;justify-content:center}}button.project-card{display:block;width:100%;text-align:left;background:none;border:0;padding:0;font:inherit;color:inherit}
button.project-card:focus-visible{outline:2px solid var(--teal);outline-offset:4px}
.project-card .photo{position:relative}
.project-count{position:absolute;right:12px;bottom:12px;background:rgba(17,16,14,.72);color:var(--canvas);font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;padding:5px 10px;border-radius:20px}
.pv{position:fixed;inset:0;z-index:200;background:rgba(17,16,14,.96);display:flex;flex-direction:column;padding:24px 32px;gap:16px;color:var(--canvas);opacity:0;transition:opacity .3s var(--ease)}
.pv[hidden]{display:none}
.pv.open{opacity:1}
.pv-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.pv-top h2{font-family:var(--font-display);font-size:26px;font-weight:500;color:var(--canvas)}
.pv-tag,.pv-loc,.pv-count{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--stone-light)}
.pv-tag{color:#7FB5B0;margin-bottom:4px}
.pv-loc{margin-top:4px}
.pv-close{color:var(--canvas);font-family:var(--font-mono);font-size:14px;text-transform:uppercase;letter-spacing:.08em;background:none;border:0;cursor:pointer;padding:6px}
.pv-stage{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center}
.pv-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:2px}
.pv-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(17,16,14,.55);color:var(--canvas);font-size:20px;cursor:pointer;transition:background .2s var(--ease)}
.pv-nav:hover{background:var(--teal)}
.pv-nav[hidden]{display:none}
.pv-prev{left:0}
.pv-next{right:0}
.pv-bottom{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.pv-desc{color:var(--stone-light);font-size:14px;margin:0}
.pv-thumbs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.pv-thumbs[hidden]{display:none}
.pv-thumbs button{flex:0 0 auto;width:84px;height:60px;padding:0;border:2px solid transparent;border-radius:2px;overflow:hidden;background:none;cursor:pointer;opacity:.55;transition:opacity .2s var(--ease),border-color .2s var(--ease)}
.pv-thumbs button img{width:100%;height:100%;object-fit:cover;display:block}
.pv-thumbs button:hover{opacity:.85}
.pv-thumbs button.active{opacity:1;border-color:var(--canvas)}
@media(max-width:640px){.pv{padding:16px}.pv-top h2{font-size:20px}.pv-nav{width:40px;height:40px;font-size:16px}.pv-bottom{flex-direction:column;gap:6px}.pv-thumbs button{width:64px;height:46px}}
a.project-card{display:block;color:inherit;text-decoration:none}
.reveal{transform:perspective(900px) rotateX(14deg) translateY(30px);transform-origin:50% 100%}
.fx3d .project-card,.fx3d .service-card,.fx3d .why-card{position:relative;will-change:transform;transition:opacity .7s var(--ease),transform .5s var(--ease),box-shadow .5s var(--ease),background .3s var(--ease)}
.fx3d .tilting{transition:opacity .7s var(--ease),transform .12s ease-out,box-shadow .3s var(--ease),background .3s var(--ease);box-shadow:0 26px 50px -24px rgba(33,31,28,.4);z-index:2}
.fx3d .project-card::after,.fx3d .service-card::after,.fx3d .why-card::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.35),rgba(255,255,255,0) 55%);opacity:0;transition:opacity .4s var(--ease);mix-blend-mode:soft-light}
.fx3d .tilting::after{opacity:1}
.fx3d .hero-visual{transform-style:preserve-3d;transition:transform .6s var(--ease);will-change:transform}
.fx3d .hero-visual .photo{box-shadow:0 40px 70px -40px rgba(33,31,28,.45)}
.fx3d .swatch-fan{transform:translateZ(70px);transform-style:preserve-3d}
.fx3d .swatch-fan .swatch{box-shadow:0 18px 30px -10px rgba(33,31,28,.4)}
body{overflow-x:clip}
.project-card .photo{border-radius:16px;overflow:hidden;isolation:isolate;transition:transform .5s var(--ease),box-shadow .5s var(--ease);box-shadow:0 1px 2px rgba(33,31,28,.06)}
.project-card .photo img{transition:transform .8s var(--ease)}
.project-card .photo::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(21,54,52,.72) 0%,rgba(21,54,52,.18) 45%,rgba(21,54,52,0) 70%);opacity:0;transition:opacity .45s var(--ease);pointer-events:none}
.project-card .photo::after{content:"Ver projeto  →";position:absolute;inset:auto auto 18px 18px;mix-blend-mode:normal;z-index:2;background:var(--canvas);color:var(--teal-deep);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:9px 16px;border-radius:999px;opacity:0;transform:translateY(10px);transition:opacity .4s var(--ease),transform .45s var(--ease);pointer-events:none;white-space:pre}
.project-card:hover .photo,.project-card:focus-visible .photo{box-shadow:0 26px 44px -22px rgba(21,54,52,.55)}
.project-card:hover .photo::before,.project-card:focus-visible .photo::before{opacity:1}
.project-card:hover .photo::after,.project-card:focus-visible .photo::after{opacity:1;transform:none}
.project-card:hover .photo img{transform:scale(1.07)}
.project-card h3{transition:color .3s var(--ease)}
.project-card:hover h3{color:var(--teal)}
.project-card:not(.tilting):hover .photo{transform:translateY(-6px)}
.project-count{top:14px;right:14px;bottom:auto;z-index:2;background:rgba(253,252,249,.85);color:var(--charcoal);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.fx3d .project-card.tilting{box-shadow:none;transform:none}
.fx3d .project-card::after{display:none}
.fx3d .project-card .photo{will-change:transform}
.fx3d .project-card.tilting .photo{transition:transform .12s ease-out,box-shadow .4s var(--ease)}
.project-tag{border-radius:999px}
.pv-stage img{border-radius:14px}
.pv-thumbs button{border-radius:10px}
