*,:after,:before{box-sizing:border-box}:root{--brand-charcoal:#1e1e1e;--brand-blue-grey:#acbfc4;--brand-mist:#c6d4d8;--brand-yellow:#ecdc4b;--brand-green:#56a894;--brand-ice:#eaf8fc;--brand-font:"Helvetica Neue",Helvetica,Arial,sans-serif}html{scroll-behavior:smooth}body{background:var(--brand-green);color:var(--brand-charcoal);font-family:var(--brand-font);margin:0;overflow-x:hidden}button,input,textarea{font:inherit}a{color:inherit}.construction-shell{align-items:stretch;background:linear-gradient(135deg,rgba(234,248,252,.4),transparent 42%),var(--brand-green);color:var(--brand-charcoal);display:grid;grid-template-rows:auto 1fr auto;min-height:100vh;padding:32px}.construction-brand{align-items:center;display:inline-flex;font-size:13px;font-weight:700;gap:9px;justify-self:start;text-decoration:none}.construction-star{display:inline-flex;filter:drop-shadow(0 8px 28px rgba(236,220,75,.5));height:28px;width:28px}.construction-main{align-self:center;max-width:960px;padding:72px 0}.construction-eyebrow{color:color-mix(in srgb,var(--brand-charcoal) 72%,transparent);font-size:11px;font-weight:800;letter-spacing:.14em;margin:0 0 18px;text-transform:uppercase}.construction-main h1{font-size:clamp(58px,10vw,156px);font-weight:500;letter-spacing:0;line-height:.9;margin:0;max-width:10ch}.construction-main p:not(.construction-eyebrow){font-size:clamp(18px,1.7vw,25px);line-height:1.5;margin:28px 0 0;max-width:720px}.construction-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.construction-action{align-items:center;border:1px solid rgba(30,30,30,.32);display:inline-flex;font-size:11px;font-weight:800;justify-content:center;letter-spacing:.12em;min-height:44px;padding:0 18px;text-decoration:none;text-transform:uppercase}.construction-action.primary{background:var(--brand-charcoal);border-color:var(--brand-charcoal);color:var(--brand-ice)}.construction-action:focus-visible,.construction-brand:focus-visible,.construction-footer a:focus-visible{outline:2px solid var(--brand-yellow);outline-offset:4px}.construction-action:hover,.construction-footer a:hover{background:var(--brand-yellow);border-color:var(--brand-yellow);color:var(--brand-charcoal)}.construction-footer{align-self:end;color:color-mix(in srgb,var(--brand-charcoal) 72%,transparent);font-size:12px;font-weight:700}.construction-footer a{text-decoration-thickness:1px;text-underline-offset:5px}.portfolio-shell{background:var(--bg,#56a894);color:var(--fg,#1e1e1e);min-height:100vh;overflow-x:hidden}.preview-banner{align-items:center;background:#ece9df;border-bottom:1px solid rgba(30,30,30,.14);color:#1e1e1e;display:flex;font-size:10px;font-weight:800;gap:14px;height:34px;justify-content:center;left:0;letter-spacing:.14em;padding:0 16px;position:fixed;right:0;text-transform:uppercase;top:0;z-index:700}.preview-banner a{border-bottom:1px solid;text-decoration:none}.portfolio-shell.is-preview .site-nav{top:34px}.portfolio-shell.is-preview .hero{padding-top:122px}.portfolio-shell.is-preview.project-detail{padding-top:34px}.portfolio-shell.shifting,.portfolio-shell.shifting *{transition:background-color .65s cubic-bezier(.4,0,.2,1),color .55s cubic-bezier(.4,0,.2,1),border-color .55s cubic-bezier(.4,0,.2,1),opacity .25s ease}.reveal{opacity:0;transform:translateY(32px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}.reveal.in{opacity:1;transform:none}.site-nav{align-items:center;animation:fadeUp .5s .1s both;-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid color-mix(in srgb,var(--fg) 10%,transparent);display:grid;grid-template-columns:1fr auto 1fr;height:60px;left:0;padding:0 36px;position:fixed;right:0;top:0;z-index:200}.nav-brand{align-items:center;display:inline-flex;font-size:13px;font-weight:700;gap:8px;letter-spacing:.01em;text-decoration:none;white-space:nowrap}.nav-star{display:inline-flex;height:15px;width:15px}.nav-center{display:flex;justify-content:center}.nav-links{align-items:center;display:flex;gap:20px;justify-content:flex-end;list-style:none;margin:0;padding:0}.eyebrow,.nav-links a,.sec-action{font-size:10px;font-weight:700;letter-spacing:.14em;opacity:1;text-decoration:none;text-transform:uppercase}.nav-links a:hover,.sec-action:hover{opacity:1}.mode-toggle{align-items:center;background:color-mix(in srgb,var(--fg) 4%,transparent);border:1px solid color-mix(in srgb,var(--fg) 18%,transparent);border-radius:999px;box-shadow:0 1px 0 color-mix(in srgb,var(--fg) 7%,transparent) inset;display:inline-grid;height:38px;padding:3px}.toggle-options{display:grid;grid-template-columns:repeat(2,minmax(70px,1fr));height:30px;position:relative}.toggle-pill{background:var(--fg);border-radius:999px;bottom:0;box-shadow:0 0 20px color-mix(in srgb,var(--accent) 18%,transparent);left:0;position:absolute;top:0;transform:translateX(0);transition:transform .35s cubic-bezier(.4,0,.2,1);width:50%;z-index:0}.mode-toggle[data-mode=ai] .toggle-pill{transform:translateX(100%)}.toggle-btn{align-items:center;background:transparent;border:0;border-radius:999px;color:var(--fg);cursor:pointer;display:flex;font-size:9px;font-weight:800;justify-content:center;letter-spacing:.12em;line-height:1;min-width:0;padding:0 12px;position:relative;text-transform:uppercase;z-index:1}.toggle-btn.active{color:var(--bg)}.toggle-btn:not(.active){opacity:1}.toggle-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.hero{flex-direction:column;justify-content:flex-end;min-height:48vh;overflow:hidden;padding:88px 44px 48px}.hero,.hero-name{display:flex;position:relative}.hero-name{align-items:center;animation:fadeUp 1s .2s both;flex-wrap:wrap;font-size:clamp(64px,10.5vw,188px);font-weight:500;letter-spacing:0;line-height:.93;margin:0;z-index:1}.hero-star{display:inline-flex;filter:drop-shadow(0 6px 36px rgba(236,220,75,.55));height:clamp(100px,14vw,220px);margin:0 .06em;width:clamp(100px,14vw,220px)}.hero-descriptor{animation:fadeUp .8s .6s both;font-size:clamp(15px,1.6vw,22px);letter-spacing:0;margin:28px 0 0;min-height:1.5em;opacity:.65;position:relative;z-index:1}.about-body,.hero-descriptor-inner{animation:contentIn .35s ease both}.section-wrap{padding:88px 44px}.sec-head{align-items:flex-start;border-bottom:1px solid color-mix(in srgb,var(--fg) 12%,transparent);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:56px;padding-bottom:24px}.sec-num{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.14em;margin-bottom:10px;text-transform:uppercase}.sec-title{font-size:clamp(32px,4.5vw,68px);font-weight:500;letter-spacing:0;line-height:.93;margin:0}.proj-grid{display:grid;gap:2px;grid-template-columns:repeat(3,1fr);transition:opacity .25s ease}.proj-grid.is-fading{opacity:0}.proj-card{aspect-ratio:16/10;background:transparent;border:0;color:inherit;cursor:pointer;display:block;padding:0;text-align:inherit;text-decoration:none}.proj-card,.proj-thumb{overflow:hidden;position:relative}.proj-thumb{align-items:center;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--fg) 5%,transparent) 0,color-mix(in srgb,var(--fg) 5%,transparent) 1px,transparent 1px,transparent 9px);border:1px solid color-mix(in srgb,var(--fg) 8%,transparent);display:flex;height:100%;justify-content:center;transition:transform .4s cubic-bezier(.16,1,.3,1);width:100%}.detail-media img,.proj-thumb img,.proj-thumb video{display:block;height:100%;object-fit:cover;width:100%}.proj-card:hover .proj-thumb{transform:scale(1.04)}.proj-preview{inset:0;opacity:0;position:absolute;transition:opacity .28s ease}.proj-preview-video{background:color-mix(in srgb,var(--fg) 5%,transparent)}.proj-card:focus-visible .proj-preview,.proj-card:hover .proj-preview{opacity:1}.proj-overlay{align-items:flex-start;background:linear-gradient(to top,color-mix(in srgb,var(--fg) 72%,transparent) 0,color-mix(in srgb,var(--fg) 34%,transparent) 42%,transparent 76%);display:flex;flex-direction:column;gap:8px;inset:0;justify-content:flex-end;opacity:0;padding:22px;position:absolute;transition:opacity .28s ease}.proj-card:focus-visible .proj-overlay,.proj-card:hover .proj-overlay{opacity:1}.proj-title{color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.12em;padding:0;text-align:left;text-transform:uppercase}.proj-sub{color:var(--accent);font-size:10px;opacity:.45}.case-pill{align-items:center;border:1.5px solid var(--accent);border-radius:999px;color:var(--accent);display:flex;font-size:9px;font-weight:800;height:28px;justify-content:center;letter-spacing:.14em;padding:0 13px;text-transform:uppercase}.ph-label{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px;letter-spacing:.02em;line-height:1.6;opacity:.28;padding:0 12px;text-align:center}.reel-wrap{margin-bottom:4px}.reel-block,.reel-player{align-items:center;aspect-ratio:16/8.2;background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--fg) 4%,transparent) 0,color-mix(in srgb,var(--fg) 4%,transparent) 1px,transparent 1px,transparent 10px);border:1px solid color-mix(in srgb,var(--fg) 8%,transparent);color:inherit;cursor:pointer;display:flex;justify-content:center;overflow:hidden;padding:0;position:relative;width:100%}.reel-block:disabled{cursor:default}.reel-preview-media{display:block;height:100%;inset:0;object-fit:cover;opacity:.58;position:absolute;transition:opacity .28s ease,transform .4s cubic-bezier(.16,1,.3,1);width:100%}.reel-block:hover .reel-preview-media{opacity:.78;transform:scale(1.03)}.reel-play{align-items:center;background:color-mix(in srgb,var(--bg) 55%,transparent);border:2px solid var(--accent);border-radius:50%;color:var(--accent);display:flex;height:60px;justify-content:center;position:relative;transition:transform .2s ease,box-shadow .2s ease;width:60px;z-index:1}.reel-block:hover .reel-play{box-shadow:0 0 28px color-mix(in srgb,var(--accent) 35%,transparent);transform:scale(1.1)}.reel-label{bottom:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px;left:18px;letter-spacing:.06em;opacity:.5;position:absolute;text-transform:lowercase;z-index:1}.reel-player{cursor:default}.about-grid{align-items:start;display:grid;gap:64px;grid-template-columns:1fr 1.8fr}.about-photo{align-items:center;aspect-ratio:3/4;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--fg) 5%,transparent) 0,color-mix(in srgb,var(--fg) 5%,transparent) 1px,transparent 1px,transparent 10px);border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);display:flex;justify-content:center;position:relative}.about-body{font-size:clamp(15px,1.5vw,19px);line-height:1.65;opacity:.82}.about-body p{margin:0}.about-body p+p{margin-top:16px}.services-list{margin-top:32px}.service-row{align-items:start;border-top:1px solid color-mix(in srgb,var(--fg) 10%,transparent);display:grid;gap:28px;grid-template-columns:60px 1fr;padding:32px 0}.svc-num{color:var(--accent);font-size:44px;font-weight:800;line-height:1}.svc-name{font-size:clamp(16px,1.8vw,24px);font-weight:500;letter-spacing:0;margin:0 0 7px}.svc-desc{font-size:13px;line-height:1.65;margin:0;max-width:560px;opacity:.5}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:24px}.modal-meta span,.tag{border:1px solid color-mix(in srgb,var(--fg) 22%,transparent);font-size:9px;font-weight:700;letter-spacing:.14em;opacity:.58;padding:4px 10px;text-transform:uppercase}.testi-grid{display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}.testi-card{border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);display:flex;flex-direction:column;gap:16px;padding:28px}.btn-star,.testi-star{display:inline-flex;height:16px;width:16px}.testi-quote{font-size:14px;font-style:italic;line-height:1.7;margin:0;opacity:.72}.testi-name{display:grid;font-size:9px;font-weight:700;gap:4px;letter-spacing:.14em;opacity:.38;text-transform:uppercase}.testi-name span+span{font-weight:500;opacity:.72}.contact-grid{align-items:start;display:grid;gap:72px;grid-template-columns:1fr 1fr}.form-col,.info-col{gap:26px}.field,.form-col,.info-col{display:flex;flex-direction:column}.field{gap:7px}.field span,.info-label{font-size:9px;font-weight:700;letter-spacing:.18em;opacity:.35;text-transform:uppercase}.field input,.field textarea{background:transparent;border:0;border-bottom:1px solid color-mix(in srgb,var(--fg) 20%,transparent);color:inherit;outline:none;padding:10px 0;width:100%}.field input:focus,.field textarea:focus{border-color:var(--fg)}.field textarea{height:90px;resize:none}.btn-send{align-items:center;align-self:flex-start;background:var(--fg);border:0;color:var(--bg);cursor:pointer;display:inline-flex;font-size:10px;font-weight:700;gap:10px;letter-spacing:.18em;padding:12px 24px;text-transform:uppercase}.info-item{display:flex;flex-direction:column;gap:5px}.info-val{font-size:15px;opacity:.78;text-decoration:none}.avail-dot{background:#4eb87a;border-radius:50%;display:inline-block;height:6px;margin-right:7px;width:6px}footer{align-items:center;border-top:1px solid color-mix(in srgb,var(--fg) 10%,transparent);display:flex;flex-wrap:wrap;font-size:10px;gap:10px;justify-content:space-between;letter-spacing:.05em;padding:24px 44px}.footer-orbit{display:inline-flex;filter:brightness(0);height:54px;opacity:1;width:54px}.portfolio-shell[data-mode=ai] .footer-orbit{filter:brightness(0) invert(1)}.empty-state{border:1px solid color-mix(in srgb,var(--fg) 10%,transparent);font-size:12px;grid-column:1/-1;letter-spacing:.08em;opacity:.55;padding:38px;text-transform:uppercase}.modal-meta{display:flex;flex-wrap:wrap;gap:6px}.video-empty,.video-frame{border:0;height:100%;width:100%}.video-empty{align-items:center;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--fg) 5%,transparent) 0,color-mix(in srgb,var(--fg) 5%,transparent) 1px,transparent 1px,transparent 9px);display:flex;justify-content:center;min-height:260px}.video-empty span{font-size:10px;letter-spacing:.14em;opacity:.45}.detail-nav,.video-empty span{font-weight:700;text-transform:uppercase}.detail-nav{align-items:center;display:flex;font-size:11px;justify-content:space-between;letter-spacing:.12em;padding:28px 44px}.detail-nav a{text-decoration:none}.detail-hero{padding:72px 44px 42px}.detail-hero h1{font-size:clamp(52px,9vw,150px);font-weight:500;letter-spacing:0;line-height:.92;margin:18px 0 22px;max-width:1050px}.detail-hero p{font-size:clamp(17px,2vw,25px);line-height:1.42;margin:0 0 26px;max-width:780px;opacity:.7}.detail-media{aspect-ratio:16/8.2;margin:0 44px}.detail-body{font-size:clamp(16px,1.55vw,21px);line-height:1.65;max-width:780px;opacity:.78;padding:56px 44px 110px}.detail-body p{margin:0}.detail-body p+p{margin-top:18px}.upload-shell{align-items:center;background:#1a1c1f;color:#eee9df;display:flex;min-height:100vh;padding:32px}.upload-panel{border:1px solid rgba(238,233,223,.16);margin:0 auto;max-width:720px;padding:34px;width:100%}.upload-panel h1{font-size:clamp(34px,5vw,62px);font-weight:500;letter-spacing:0;line-height:.96;margin:16px 0}.upload-panel p{line-height:1.65;opacity:.72}.upload-form{display:grid;gap:22px;margin:34px 0 22px}.upload-breadcrumbs{display:flex;flex-wrap:wrap;font-size:10px;font-weight:700;gap:8px;letter-spacing:.12em;margin-bottom:28px;opacity:.58;text-transform:uppercase}.upload-breadcrumbs a{text-decoration:none}.upload-message{border:1px solid rgba(238,233,223,.16);font-size:13px;margin:0 0 22px;padding:14px}.upload-message.error{border-color:rgba(255,110,110,.45)}.upload-message.success{border-color:rgba(78,184,122,.45)}.upload-actions{display:flex;flex-wrap:wrap;gap:12px}.upload-actions a{border-bottom:1px solid;font-size:10px;font-weight:700;letter-spacing:.16em;padding-bottom:4px;text-decoration:none;text-transform:uppercase}.page-shell,.testimonial-shell{--accent:var(--brand-yellow);--bg:var(--page-bg,var(--brand-mist));--fg:var(--page-fg,var(--brand-charcoal));background:var(--bg);color:var(--fg);min-height:100vh;padding:32px}.page-brand,.testimonial-brand{align-items:center;display:inline-flex;font-size:13px;font-weight:700;gap:8px;margin-bottom:52px;text-decoration:none}.page-main{align-items:end;display:grid;min-height:calc(100vh - 140px);padding-bottom:48px}.page-copy{max-width:980px}.page-copy h1{font-size:clamp(54px,10vw,156px);font-weight:500;letter-spacing:0;line-height:.9;margin:18px 0 28px}.page-copy p{font-size:clamp(16px,1.5vw,22px);line-height:1.55;margin:0;max-width:720px;opacity:.7}.page-copy p+p{margin-top:18px}.page-intro{font-size:clamp(18px,1.8vw,26px)!important;opacity:.78!important}.testimonial-request{align-items:start;display:grid;gap:64px;grid-template-columns:minmax(0,.85fr) minmax(320px,.65fr);margin:0 auto;max-width:1180px}.testimonial-copy h1{font-size:clamp(46px,7.5vw,118px);font-weight:500;letter-spacing:0;line-height:.94;margin:18px 0 24px}.testimonial-copy p:not(.eyebrow){font-size:clamp(16px,1.6vw,22px);line-height:1.55;margin:0;max-width:640px;opacity:.68}.testimonial-form{background:color-mix(in srgb,var(--fg) 8%,transparent);border:1px solid color-mix(in srgb,var(--fg) 14%,transparent);display:grid;gap:22px;padding:28px}.testimonial-honeypot{display:none}.testimonial-consent{align-items:start;display:flex;gap:10px}.testimonial-consent input{margin-top:2px}.testimonial-consent span,.testimonial-message{font-size:12px;line-height:1.55;margin:0;opacity:.62}.testimonial-message.error{color:#a13b3b;opacity:1}.testimonial-message.success{color:color-mix(in srgb,var(--brand-green) 58%,var(--brand-charcoal));opacity:1}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes contentIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (max-width:860px){.detail-body,.detail-hero,.detail-nav,.hero,.section-wrap,.site-nav{padding-left:20px;padding-right:20px}.site-nav{gap:12px;grid-template-columns:auto 1fr auto}.nav-links{gap:12px}.nav-links a{font-size:9px}.hero-name{font-size:clamp(52px,12vw,96px)}.proj-grid{grid-template-columns:repeat(2,1fr)}.about-grid,.contact-grid,.testi-grid,.testimonial-request{grid-template-columns:1fr}.page-main{min-height:auto;padding-bottom:32px}.detail-media{margin:0 20px}}@media (max-width:640px){.site-nav{height:auto;padding-bottom:10px;padding-top:10px}.nav-brand span{display:none}.toggle-options{grid-template-columns:repeat(2,minmax(54px,1fr))}.toggle-btn{font-size:8px;padding:0 8px}.proj-grid{grid-template-columns:1fr}.section-wrap{padding-bottom:68px;padding-top:68px}.hero{min-height:54vh}footer{padding-left:20px;padding-right:20px}.construction-shell,.page-shell,.testimonial-shell{padding:20px}.construction-main{padding:64px 0}.construction-main h1{font-size:clamp(48px,15vw,76px)}.construction-action{flex:1 1 100%}.testimonial-form{padding:20px}}