:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  color-scheme:light;
  --bg:#eceae4; --surface:#f7f6f2; --ink:#1d2a24; --muted:#5d6a63;
  --line:#cfccc2; --accent:#e4572e; --accent-ink:#ffffff;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#141b17; --surface:#1b241f; --ink:#e9ece6; --muted:#9aa89f;
    --line:#2f3b34; --accent:#f06a40; --accent-ink:#141b17;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#141b17; --surface:#1b241f; --ink:#e9ece6; --muted:#9aa89f;
  --line:#2f3b34; --accent:#f06a40; --accent-ink:#141b17;
}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Barlow","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;line-height:1.6}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:#141b17;z-index:30}

.site-header{--h-bg:#141b17;--h-ink:#f1f3ee;--h-muted:#a3b0a8;--h-line:#2f3b34;position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--h-bg);border-bottom:3px solid var(--accent)}
.bar{max-width:none;margin:0;padding:0 var(--gutter);min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;padding:6px 0}
.brand img{height:68px;width:auto;display:block}

nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
nav a{display:block;padding:10px 14px;color:var(--h-muted);text-decoration:none;font-weight:500;border-bottom:3px solid transparent;transition:color .15s,border-color .15s}
nav a:hover{color:var(--h-ink)}
nav a[aria-current="page"]{color:var(--h-ink);border-bottom-color:var(--accent)}
a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

.menu-btn{display:none;background:none;border:1px solid var(--h-line);color:var(--h-ink);width:44px;height:44px;border-radius:6px;cursor:pointer}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{display:block;width:20px;height:2px;background:currentColor;margin:auto;position:relative;transition:transform .2s,background .2s}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0}
.menu-btn span::before{top:-6px}.menu-btn span::after{top:6px}
.menu-btn[aria-expanded="true"] span{background:transparent}
.menu-btn[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}

@media (max-width:780px){
  .menu-btn{display:block}
  nav{position:absolute;left:0;right:0;top:100%;background:var(--h-bg);border-bottom:3px solid var(--accent);display:none}
  nav.open{display:block}
  nav ul{flex-direction:column;padding:8px 20px 16px;gap:0}
  nav a{padding:14px 0;border-bottom:1px solid var(--h-line)}
  nav a[aria-current="page"]{border-bottom-color:var(--accent)}
}

main{max-width:none;margin:0;padding:64px var(--gutter) 96px}
.page{display:block}
h1{font-size:clamp(2rem,5vw,3.25rem);line-height:1.1;margin:0 0 12px}
.page p{color:var(--muted);max-width:60ch;margin:0}
h2{font-size:clamp(1.5rem,3vw,2rem);line-height:1.2;margin:0 0 14px}
.page p+p{margin-top:14px}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.hero .lead{color:var(--ink);font-size:1.15rem}
.closing{font-weight:600;color:var(--ink)!important;border-left:4px solid var(--accent);padding-left:14px;margin-top:24px!important}
.slot{aspect-ratio:4/3;border:2px dashed var(--line);background:var(--surface);display:grid;place-items:center;text-align:center;padding:16px;border-radius:4px;color:var(--muted);font-size:.95rem}
.slot svg{width:44px;height:44px;margin:0 auto 8px;display:block;stroke:var(--accent);fill:none;stroke-width:2}
.slot img{width:100%;height:100%;object-fit:cover}
.services{margin-top:80px}
.service{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:64px}
.service:nth-child(even) .slot{order:2}
.by{font-size:.9rem;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;margin-top:20px!important}
.why{margin-top:96px}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:28px}
.why-grid div{border-top:3px solid var(--accent);padding-top:14px}
.why-grid h3{margin:0 0 8px;font-size:1.1rem}
.why-grid p{font-size:.95rem}
@media (max-width:900px){.why-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:780px){.hero,.service{grid-template-columns:1fr;gap:24px}.service:nth-child(even) .slot{order:0}.why-grid{grid-template-columns:1fr}.services{margin-top:56px}.service{margin-top:48px}}
:root,:root:not([data-theme="light"]){color-scheme:dark;--bg:#0c110e;--surface:#151d18;--ink:#eef1ec;--muted:#9fada5;--line:#2a362f;--accent:#f06a40;--accent-ink:#0c110e}
.progress{position:absolute;left:0;bottom:-3px;height:3px;width:0;background:var(--h-ink)}
.ln{display:block;animation:rise .7s cubic-bezier(.2,.7,.2,1) both}
.ln:nth-child(2){animation-delay:.15s}.ln:nth-child(3){animation-delay:.3s}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.range-wrap{width:100%;max-width:460px;margin-left:auto}
.range{position:relative;aspect-ratio:1;width:100%;cursor:crosshair;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.range svg{width:100%;height:100%;display:block;overflow:visible}
.ring-a{fill:var(--surface);stroke:var(--line);stroke-width:2}
.ring-b{fill:var(--bg);stroke:var(--line);stroke-width:2}
.bull{fill:var(--accent)}
.hair{stroke:var(--accent);stroke-width:1.2;opacity:0;transition:opacity .15s;pointer-events:none}
.range:hover .hair{opacity:.8}
.hole{fill:#000;stroke:var(--ink);stroke-width:1.5}
.flash{fill:none;stroke:var(--accent);stroke-width:3;transform-box:fill-box;transform-origin:center;animation:flash .45s ease-out forwards}
@keyframes flash{from{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(2)}}
.range-meta{display:flex;justify-content:space-between;align-items:center;margin-top:12px;color:var(--muted);font-size:.9rem}
.range-meta button{background:none;border:1px solid var(--line);color:var(--ink);padding:6px 14px;border-radius:4px;cursor:pointer;font:inherit}
.range-meta button:hover{border-color:var(--accent)}
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}
.js .rv.in{opacity:1;transform:none}
.slot{transition:border-color .2s}.service:hover .slot{border-color:var(--accent)}
.why-grid div{transition:border-color .2s}.why-grid div:hover{border-top-color:var(--ink)}
@media (max-width:780px){.range-wrap{margin:0 auto}}
.site-footer{--h-bg:#141b17;--h-ink:#f1f3ee;--h-muted:#a3b0a8;--h-line:#2f3b34;background:var(--h-bg);color:var(--h-muted);border-top:3px solid var(--accent)}
.foot{max-width:none;margin:0;padding:48px var(--gutter) 32px;display:grid;grid-template-columns:1.3fr 1fr 1.3fr;gap:40px}
.foot img{height:84px;width:auto;display:block}
.foot p{margin:0;max-width:34ch}
.foot h2{font-size:1rem;color:var(--h-ink);margin:0 0 14px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot a{color:var(--h-muted);text-decoration:none}
.foot a:hover{color:var(--h-ink);text-decoration:underline}
.foot address{font-style:normal;display:grid;gap:8px}
.foot-bottom{max-width:none;margin:0;padding:18px var(--gutter) calc(18px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--h-line);font-size:.85rem}
@media (max-width:780px){.foot{grid-template-columns:1fr;gap:28px}}
.tr-layout{display:grid;grid-template-columns:280px 1fr;gap:48px;align-items:start}
.sidebar{position:sticky;top:calc(env(safe-area-inset-top,0px) + 108px);max-height:calc(100vh - 130px);overflow:auto;padding-right:16px;border-right:1px solid var(--line)}
.sidebar h2{font-size:1rem;margin:0 0 14px}
.sidebar a{display:block;color:var(--muted);text-decoration:none;font-weight:500;font-size:.95rem;line-height:1.35;padding:6px 0 6px 10px;border-left:3px solid transparent}
.sidebar a:hover{color:var(--ink)}
.sidebar a[aria-current="page"]{color:var(--ink);font-weight:700;border-left-color:var(--accent)}
.sidebar summary{cursor:pointer;color:var(--ink);font-weight:600;padding:10px 0;list-style:none;display:flex;align-items:center;gap:10px}
.sidebar summary::-webkit-details-marker{display:none}
.sidebar summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .2s}
.sidebar details[open]>summary::before{transform:rotate(45deg)}
.sidebar ul{list-style:none;margin:0 0 10px 12px;padding:0}
.tr-intro{margin-bottom:8px}
.tr-group{font-size:1.1rem;margin:48px 0 0;padding-bottom:10px;border-bottom:2px solid var(--accent)}
.tr-section{display:grid;grid-template-columns:1fr;gap:24px;align-items:start;padding:36px 0;border-bottom:1px solid var(--line);scroll-margin-top:calc(env(safe-area-inset-top,0px) + 104px)}
.tr-section h3{font-size:clamp(1.25rem,2.4vw,1.6rem);line-height:1.25;margin:0 0 12px}
.tr-section p{font-size:.98rem}
.tr-content>.tr-section:last-child{min-height:62vh;align-content:start;border-bottom:0}
figure.slot:has(img){aspect-ratio:auto;border:0;background:none;padding:0;display:flex;align-items:center;justify-content:center}
figure.slot img{width:auto;height:auto;max-width:100%;max-height:480px;object-fit:contain;display:block;margin:0 auto}
.tr-section>figure,.service>figure{align-self:center;justify-self:center;width:100%}
@media (max-width:640px){.tr-section{grid-template-columns:1fr;gap:20px}}
:root{--gutter:clamp(20px,4vw,56px)}
.ab-hero .lead{font-size:1.15rem;color:var(--ink)}
.ab-hero .slot{aspect-ratio:16/6}
.ab-split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:72px}
.ab-split.rev .slot{order:-1}
.role{color:var(--accent)!important;font-weight:600;margin:0 0 8px!important}
.ab-team{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:28px}
.ab-team .slot{aspect-ratio:1}
.ab-team figure.slot:has(img){aspect-ratio:1}
.ab-team figure.slot img{width:100%;height:100%;max-height:none;object-fit:cover}
.ab-team h3{margin:16px 0 2px;font-size:1.15rem}
.ab-cta{margin-top:96px;padding:40px;border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--surface)}
.ab-cta h2{margin-top:0}
.gal{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:28px}
.gal-item{padding:0;border:1px solid var(--line);background:var(--surface);aspect-ratio:4/3;cursor:zoom-in;overflow:hidden;display:grid;place-items:center;color:var(--muted);font:inherit;font-size:.85rem;border-radius:2px;transition:border-color .15s}
.gal-item:hover{border-color:var(--accent)}
.gal-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.gal-item:hover img{transform:scale(1.04)}
.gal-item svg{width:28px;height:28px;stroke:var(--accent);fill:none;stroke-width:2;display:block;margin:0 auto 6px}
.lb{position:fixed;inset:0;z-index:100;background:rgba(5,8,6,.95);display:grid;grid-template-rows:1fr auto;padding:calc(env(safe-area-inset-top,0px) + 16px) 16px calc(env(safe-area-inset-bottom,0px) + 16px)}
.lb[hidden]{display:none}
.lb-stage{display:grid;place-items:center;min-height:0;padding:0 56px}
.lb-stage img{max-width:100%;max-height:calc(100vh - 140px);object-fit:contain;display:block}
.lb-ph{width:min(900px,100%);aspect-ratio:3/2;border:2px dashed var(--line);display:grid;place-items:center;color:var(--muted)}
.lb-count{text-align:center;color:var(--muted);font-size:.9rem;padding-top:12px}
.lb-btn{position:absolute;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.lb-btn:hover{border-color:var(--accent)}
.lb-close{top:calc(env(safe-area-inset-top,0px) + 14px);right:14px}
.lb-prev{left:10px;top:50%;transform:translateY(-50%)}
.lb-next{right:10px;top:50%;transform:translateY(-50%)}
@media (max-width:900px){.gal{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.gal{grid-template-columns:repeat(2,1fr)}.lb-stage{padding:0 8px}.lb-prev,.lb-next{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 8px);transform:none}}
.crumbs{margin:0 0 32px;font-size:.92rem}
.crumbs[hidden]{display:none}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0}
.crumbs li+li::before{content:"/";margin:0 10px;color:var(--line)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--ink);text-decoration:underline}
.crumbs [aria-current="page"]{color:var(--ink);font-weight:600}
#contact .lead{font-size:1.15rem;color:var(--ink);max-width:70ch}
.cf{max-width:760px;margin-top:36px;display:grid;gap:20px}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.cf-field{display:grid;gap:6px}
.cf label{font-weight:600;font-size:.95rem}
.cf input,.cf textarea{width:100%;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:12px 14px;font:inherit;transition:border-color .15s}
.cf textarea{resize:vertical;min-height:140px}
.cf input:focus,.cf textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.cf .invalid{border-color:#ff6b6b}
.cf-note{font-size:.88rem;margin:0}
.cf button.btn{justify-self:start;margin-top:0;border:0;font:inherit;font-weight:700;cursor:pointer}
.cf-status{margin:0;font-weight:600;color:var(--ink)!important}
@media (max-width:640px){.cf-row{grid-template-columns:1fr}}
.btn{display:inline-block;margin-top:20px;background:var(--accent);color:var(--accent-ink);border-radius:4px;padding:12px 24px;font-weight:700;text-decoration:none}
.btn:hover{filter:brightness(1.1)}
@media (max-width:780px){.ab-split{grid-template-columns:1fr;gap:24px;margin-top:48px}.ab-split.rev .slot{order:0}.ab-team{grid-template-columns:1fr}.ab-cta{padding:24px}}
.dl{justify-self:start;background:var(--accent);color:var(--accent-ink);border:0;border-radius:4px;padding:12px 24px;font:inherit;font-weight:700;cursor:pointer;transition:filter .15s}
.dl:hover{filter:brightness(1.1)}
.dl[disabled]{opacity:.6;cursor:default}
.tr-section>figure{order:-1}
.tr-text{display:contents}
.tr-section{row-gap:18px}
.tr-section h3{order:-2;margin:0}
.tr-section p,.tr-section p+p{margin:0}
.tr-section .slot{aspect-ratio:16/6}
.tr-layout{grid-template-columns:280px minmax(0,1fr)}
@media (max-width:900px){.tr-layout{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.tr-section .slot{aspect-ratio:16/9}}
@media (max-width:900px){.tr-layout{grid-template-columns:1fr;gap:24px}.sidebar{position:static;max-height:320px;border-right:0;border-bottom:1px solid var(--line);padding:0 0 12px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}.ln,.flash{animation:none!important}}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
a.dl{display:inline-block;text-decoration:none}
.tr-intro{scroll-margin-top:calc(env(safe-area-inset-top,0px) + 104px)}
.cf-status.err{color:#ff8a8a!important}

