:root {
 --rd-bg:#FAFAFA; --rd-ink:#171717; --rd-muted:#55585B; --rd-panel:#F0F1F2;
 --rd-accent:#2D46F5; --rd-line:#D5D6D7; --rd-pad:clamp(20px,4vw,64px);
 --rd-ease:var(--motion-ease); --bs-terracotta:var(--rd-accent); --bs-terracotta-hi:var(--rd-accent);
 --bs-terracotta-nav:var(--rd-ink); --bs-terracotta-dp:var(--rd-accent); --bs-ink:var(--rd-bg);
 --bs-ivory:var(--rd-ink); --bs-label:var(--rd-muted); --bs-panel:var(--rd-panel); --bs-panel-line:var(--rd-line); --bs-ink-2:var(--rd-panel);
 --bs-shell:1440px; --bs-pad-x:var(--rd-pad); --bs-pad-y-sm:clamp(56px,7vw,90px); --bs-pad-y:clamp(64px,8vw,112px);
 --bs-pad-y-lg:clamp(80px,9vw,128px); --bs-pad-top:clamp(140px,13vw,188px); --bs-pad-top-sm:clamp(128px,11vw,160px);
 --bs-gap-head:clamp(32px,4vw,56px); --bs-card-pad:clamp(24px,3vw,40px); --bs-r-frame:4px; --bs-r-field:4px; --bs-r-btn:4px; --bs-r-tiny:2px; --bs-r-pill:999px;
 --bs-ease:var(--rd-ease); --bs-t-fast:var(--motion-quick); --bs-t:var(--motion-standard); --bs-t-mid:var(--motion-standard); --bs-t-nav:var(--motion-standard); --bs-t-slow:var(--motion-slow); --bs-t-panel:var(--motion-standard); --bs-t-xslow:var(--motion-slow);
}
*,*::before,*::after { box-sizing:border-box; }
html { background:var(--rd-bg); scroll-behavior:smooth; scroll-padding-top:106px; }
body { margin:0; background:var(--rd-bg); color:var(--rd-ink); font-family:'Manrope',sans-serif; -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font:inherit; }
a { color:inherit; }
button { cursor:pointer; }
button,a { -webkit-tap-highlight-color:transparent; }
img { max-width:100%; }
h1,h2,h3 { font-family:'Bricolage Grotesque',sans-serif; text-wrap:balance; letter-spacing:-.035em; }
h1 em { font:inherit; }
p { text-wrap:pretty; }
::selection { color:#fff; background:var(--rd-accent); }
:where(a,button,input,select,textarea,summary):focus-visible { outline:2px solid var(--rd-accent); outline-offset:6px; }
input::placeholder,textarea::placeholder { color:var(--rd-muted); opacity:1; }
option { background:var(--rd-bg); color:var(--rd-ink); }
.ba-blue { color:var(--rd-accent); }
h1 .ba-blue,h2 .ba-blue { color:inherit; }
.bs-skip { position:absolute; top:14px; left:-10000px; z-index:120; }
.bs-skip:focus { left:var(--rd-pad); background:var(--rd-accent); color:#fff; padding:12px 20px; }
#bs-main:focus { outline:none; }
.rd-shell,.bs-shell { max-width:1440px; margin-inline:auto; }
.rd-shell { padding-inline:var(--rd-pad); }
.rd-section,.bs-section { padding:var(--bs-pad-y) var(--rd-pad); }
.bs-section--sm { padding-block:var(--bs-pad-y-sm); }
.bs-section--lg { padding-block:var(--bs-pad-y-lg); }
.rd-section-head,.bs-sechead { display:flex; align-items:end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:40px; }
.rd-section-head h2,.bs-h2 { margin:0; font-size:clamp(32px,4.7vw,64px); line-height:1.06; font-weight:500; }
.rd-page-title { font-size:clamp(42px,6.5vw,88px); line-height:1.02; font-weight:500; margin:0; }
.rd-button { display:inline-flex; align-items:center; justify-content:center; gap:20px; background:var(--rd-ink); color:#fff; border:1px solid transparent; border-radius:999px; text-decoration:none; font-size:14px; font-weight:600; padding:15px 25px; transition:transform var(--motion-quick) var(--motion-ease); }
.rd-button:is(:hover,:focus-visible) { background:var(--rd-accent); color:#fff; }
@media (hover:hover) { .rd-button:hover { transform:translateY(-2px); } }
.rd-button--accent { background:var(--rd-accent); color:#fff; }
.rd-button--accent:hover { background:#2036D8; }
.rd-link { display:inline-flex; align-items:center; justify-content:space-between; gap:22px; padding:8px 0; text-decoration:none; font-size:14px; font-weight:600; border-bottom:1px solid currentColor; }
.rd-link:is(:hover,:focus-visible) { color:var(--rd-accent); }
.rd-link>span { transition:transform var(--motion-quick) var(--motion-ease); }
.rd-link:is(:hover,:focus-visible)>span { transform:translateX(4px); }
.rd-tag { display:inline-flex; gap:8px; border:1px solid var(--rd-line); border-radius:999px; padding:7px 12px; font-size:12px; }
.rd-header { position:fixed; inset:0 0 auto; z-index:100; padding:20px var(--rd-pad); background:var(--rd-bg); border-bottom:1px solid rgb(23 23 23 / .06); }
.rd-nav { display:flex; justify-content:space-between; align-items:center; gap:24px; max-width:1312px; margin:auto; }
.rd-brand img { display:block; filter:brightness(0); width:187px; height:auto; }
.rd-nav-links { position:relative; display:flex; align-items:center; gap:16px; }
[data-bs-navpill] { position:absolute; top:50%; left:0; width:100px; height:0; opacity:0; z-index:0; pointer-events:none; background:var(--rd-panel); border-radius:999px; transform-origin:left center; }
[data-bs-navpill][data-bs-instant] { transition:none; }
[data-bs-navlink] { position:relative; z-index:1; color:var(--rd-ink); text-decoration:none; padding:10px 14px; font-size:13px; font-weight:600; white-space:nowrap; }
[data-bs-navlink][aria-current=page] { color:var(--rd-accent); text-decoration:underline; text-underline-offset:5px; }
[data-bs-navlink][data-bs-navlink-on] { text-decoration:none; }
.rd-nav .rd-button { margin-left:12px; padding:12px 21px; font-size:13px; }
.rd-menu-toggle { display:none; align-items:center; justify-content:center; gap:10px; border:1px solid var(--rd-ink); border-radius:999px; padding:12px 18px; min-height:44px; background:var(--rd-bg); font-size:13px; }
.rd-menu-toggle svg { width:18px; height:18px; }
.rd-mobile-menu { display:none; position:relative; flex:0 1 auto; flex-direction:column; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:20px; background:var(--rd-bg); border:1px solid var(--rd-line); margin:16px auto 0; max-width:1312px; width:100%; border-radius:4px; }
[data-bs-navmob] { text-decoration:none; color:var(--rd-ink); padding:13px 4px; font-size:22px; border-bottom:1px solid var(--rd-line); }
[data-bs-navmob][aria-current=page] { color:var(--rd-accent); }
.rd-mobile-menu .rd-button { margin-top:20px; }
.rd-scrim { display:none; position:fixed; inset:0; z-index:90; background:rgb(23 23 23 / .35); }
.ba-hero { padding-top:150px; padding-bottom:34px; }
.ba-hero-meta { display:flex; justify-content:space-between; gap:20px; font-size:12px; color:var(--rd-muted); }
.ba-hero-content { display:flex; align-items:end; justify-content:space-between; gap:40px; padding-top:45px; padding-bottom:40px; }
.ba-hero h1 { font-size:clamp(54px,7.5vw,96px); line-height:.98; font-weight:500; margin:0; }
.ba-title-line { display:block; padding-bottom:.05em; overflow:hidden; }
.ba-hero-note { display:flex; align-items:end; gap:45px; padding-bottom:10px; }
.ba-hero-note p { margin:0; font-size:15px; line-height:1.65; }
.ba-round-link { display:grid; place-items:center; width:72px; height:72px; border-radius:50%; background:var(--rd-accent); color:#fff; text-decoration:none; font-size:35px; flex-shrink:0; transition:transform var(--motion-standard) var(--rd-ease); }
.ba-round-link:hover { transform:rotate(-25deg); }
.ba-hero-bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--rd-line); padding-top:20px; }
.ba-hero-bottom p { font-size:12px; color:var(--rd-muted); margin:0; }
.ba-work-area { padding-top:25px; }
.ba-work-heading { display:flex; justify-content:space-between; gap:20px; padding-bottom:24px; align-items:center; }
.ba-work-heading h2 { font-family:'Manrope',sans-serif; letter-spacing:0; font-size:14px; font-weight:600; margin:0; }
.ba-work-heading p { margin:0; font-size:12px; color:var(--rd-muted); }
.ba-stack { position:relative; padding-bottom:24px; }
.ba-project { position:sticky; top:102px; display:block; text-decoration:none; background:var(--rd-bg); transform:translateY(var(--stack-shift,0px)) scale(var(--stack-scale,1)); transform-origin:center top; margin-bottom:70px; padding-bottom:16px; }
.ba-project:last-child { margin-bottom:0; }
.ba-project-image { position:relative; height:clamp(390px,67svh,780px); overflow:hidden; background:var(--rd-panel); border-radius:4px; }
.ba-project-image img { display:block; width:100%; height:100%; object-fit:cover; transform:translateY(var(--parallax,0px)) scale(1.07); }
.ba-stack[data-ba-expand] { clip-path:inset(0 calc((1 - var(--expand,1)) * 4%) 0 round 4px); }
.ba-project-caption { display:grid; grid-template-columns:1fr 1fr auto; align-items:baseline; gap:20px; padding-top:16px; background:var(--rd-bg); }
.ba-project-caption h3 { font-size:clamp(23px,3vw,42px); margin:0; font-weight:500; }
.ba-project-caption p { margin:0; font-size:13px; color:var(--rd-muted); }
.ba-project-open { font-size:13px; display:flex; align-items:center; gap:24px; }
.ba-project-open>span { font-size:24px; display:inline-block; transition:transform var(--motion-standard) var(--rd-ease); }
.ba-project:hover .ba-project-open>span { transform:rotate(45deg); color:var(--rd-accent); }
.ba-poster-set { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; padding:32px; background:#1b2431; max-height:67svh; overflow:hidden; border-radius:4px; }
.ba-poster-set img { width:100%; height:auto; object-fit:contain; align-self:center; max-height:calc(67svh - 64px); }
.ba-work-end { display:flex; justify-content:end; padding-block:26px 70px; }
.ba-expertise { background:var(--rd-ink); color:#fff; padding-block:85px; position:relative; }
.ba-expertise-inner { display:grid; grid-template-columns:1fr 1.25fr; gap:clamp(32px,6vw,90px); }
.ba-expertise h2 { font-size:clamp(42px,5.6vw,76px); line-height:1.02; font-weight:500; margin:0 0 26px; }
.ba-expertise p { font-size:14px; color:#c2c2c2; max-width:31ch; line-height:1.6; }
.ba-expertise-links { display:flex; flex-direction:column; justify-content:center; }
.ba-expertise-links a { display:flex; align-items:center; justify-content:space-between; gap:24px; text-decoration:none; border-bottom:1px solid #515151; padding:24px 0; font-size:clamp(22px,2.7vw,36px); line-height:1.2; }
.ba-expertise-links a>span:last-child { color:#8192ff; transition:transform var(--motion-standard) var(--rd-ease); }
.ba-expertise-links a:hover>span:last-child { transform:rotate(45deg); }
.ba-expertise-links a.ba-partner-link { font-size:14px; border:0; padding-bottom:0; margin-top:6px; }
.ba-expertise a:focus-visible { outline-color:#8192ff; }
.ba-studio { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(40px,11vw,160px); align-items:center; padding-block:100px; }
.ba-studio h2 { font-size:clamp(42px,5.2vw,72px); line-height:1.03; font-weight:500; margin:0 0 25px; }
.ba-studio-copy p { font-size:17px; line-height:1.7; color:var(--rd-muted); max-width:37ch; margin:0 0 25px; }
.ba-studio-portrait { position:relative; overflow:hidden; margin:0; }
.ba-studio-portrait img { display:block; width:100%; aspect-ratio:1/1.08; object-fit:cover; object-position:center 25%; transform:translateY(var(--parallax,0px)) scale(1.06); }
.ba-studio-portrait figcaption { background:var(--rd-bg); position:relative; padding-top:14px; font-size:12px; color:var(--rd-muted); }
.ba-testimonial { padding-block:24px 90px; display:grid; grid-template-columns:.65fr 1.7fr; gap:22px 55px; }
.ba-testimonial>p { font-size:13px; margin:9px 0; color:var(--rd-muted); }
.ba-testimonial figure { margin:0; }
.ba-testimonial blockquote { margin:0; font-family:'Bricolage Grotesque',sans-serif; font-size:clamp(24px,3vw,39px); line-height:1.35; }
.ba-testimonial figcaption { margin-top:22px; color:var(--rd-muted); font-size:13px; }
.ba-testimonial>.rd-link { grid-column:2; justify-self:start; }
.ba-contact { padding-block:90px; position:relative; border-top:1px solid var(--rd-line); }
.ba-contact>p { font-size:14px; margin:0 0 24px; }
.ba-contact-link { display:block; position:relative; padding-right:100px; color:var(--rd-accent); font-family:'Bricolage Grotesque',sans-serif; font-size:clamp(44px,7.2vw,96px); line-height:1.02; letter-spacing:-.035em; text-decoration:none; }
.ba-contact-link>span { position:absolute; right:0; top:0; font-family:'Manrope',sans-serif; transition:transform var(--motion-standard) var(--rd-ease); }
.ba-contact-link:hover>span { transform:rotate(45deg); }
.ba-page-head { padding-top:var(--bs-pad-top); padding-bottom:55px; display:flex; align-items:end; justify-content:space-between; gap:32px; }
.ba-page-head h1 { font-size:clamp(46px,7vw,96px); line-height:1.02; font-weight:500; margin:0; }
.ba-page-head p { margin:0 0 18px; font-size:15px; line-height:1.6; color:var(--rd-muted); }
.ba-about { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(40px,8vw,116px); padding-bottom:70px; align-items:start; }
.ba-about figure { position:sticky; top:120px; margin:0; overflow:hidden; }
.ba-about figure img { display:block; width:100%; aspect-ratio:3/4; object-fit:cover; transform:translateY(var(--parallax,0px)) scale(1.05); }
.ba-about figcaption { position:relative; background:var(--rd-bg); font-size:13px; color:var(--rd-muted); padding-top:12px; }
.ba-about>div>p { font-size:16px; line-height:1.75; color:var(--rd-muted); margin:0 0 30px; }
.ba-about p.ba-about-intro { font-family:'Bricolage Grotesque',sans-serif; font-size:clamp(26px,3vw,42px); line-height:1.25; color:var(--rd-ink); }
.ba-about-values { margin:36px 0; }
.ba-about-values>div { padding:24px 0; border-top:1px solid var(--rd-line); }
.ba-about-values h2 { font-size:24px; margin:0 0 10px; font-weight:500; }
.ba-about-values p { margin:0; color:var(--rd-muted); font-size:15px; line-height:1.6; }
.ba-tools { border-top:1px solid var(--rd-line); padding-block:38px 70px; }
.ba-tools>p { font-size:13px; margin:0 0 20px; }
.ba-tools>div { font-size:clamp(18px,2.5vw,34px); line-height:1.8; }
.ba-tools span { color:var(--rd-accent); padding-inline:10px; }
.rd-footer { padding:45px var(--rd-pad) 28px; background:var(--rd-panel); }
.rd-footer>.rd-shell { padding:0; }
.rd-footer-top { display:flex; justify-content:space-between; flex-wrap:wrap; gap:32px; padding-bottom:40px; }
.rd-footer-top>div { display:flex; flex-direction:column; gap:18px; }
.rd-footer-top p { color:var(--rd-muted); font-size:13px; margin:0; }
.rd-footer-links { display:flex; gap:24px; flex-wrap:wrap; font-size:13px; }
.rd-footer-links a { text-decoration:none; }
.rd-footer-links a:hover { color:var(--rd-accent); }
.rd-footer-bottom { border-top:1px solid var(--rd-line); display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; padding-top:22px; font-size:12px; color:var(--rd-muted); }
.rd-footer-bottom p { margin:0; }
.rd-footer-bottom>div { display:flex; flex-wrap:wrap; gap:20px; }
.rd-footer-bottom a { text-decoration:none; }
.rd-contact-banner { background:var(--rd-ink); color:#fff; padding:64px var(--rd-pad); }
.rd-contact-banner>.rd-shell { padding:0; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:30px; }
.rd-contact-banner h2 { font-size:clamp(36px,5vw,70px); font-weight:500; line-height:1.05; margin:0 0 15px; }
.rd-contact-banner p { font-size:14px; color:#ccc; }
.bs-card { padding:var(--bs-card-pad); border-radius:4px; background:var(--rd-panel); }
.bs-frame { border-radius:4px; overflow:hidden; }
[data-page=contact] form { gap:20px !important; }
[data-page=contact] label { color:var(--rd-ink) !important; font-size:13px !important; text-transform:none !important; letter-spacing:0 !important; font-weight:600 !important; }
[data-page=contact] input:not([name=website]),[data-page=contact] select,[data-page=contact] textarea { width:100%; min-width:0; border-color:#A2A4A6 !important; background:#fff !important; }
[data-page=contact] select { appearance:auto !important; }
[data-page=contact] button[type=submit] { background:var(--rd-accent) !important; color:#fff !important; box-shadow:none !important; }
[data-page=contact] button[type=submit]:hover { background:#2036D8 !important; }
[data-page=contact] a[href^='mailto:'],[data-page=contact] a[href^='tel:'] { overflow-wrap:anywhere; }
.ba-form-privacy { color:var(--rd-muted); font-size:12px; line-height:1.6; margin:0; }
@keyframes bs-spin { to { transform:rotate(360deg); } }
@media (max-width:1020px) {
 .rd-header { display:flex; flex-direction:column; max-height:100vh; max-height:100dvh; }
 .rd-nav { flex-shrink:0; width:100%; }
 .rd-nav-links { display:none; } .rd-menu-toggle { display:flex; }
 .ba-hero-note { gap:26px; } .ba-round-link { width:60px; height:60px; }
 .ba-hero h1 { font-size:clamp(48px,8vw,78px); }
 .ba-project-caption { grid-template-columns:1fr auto; gap:8px 20px; }
 .ba-project-caption p { grid-row:2; } .ba-project-open { grid-column:2; grid-row:1/3; }
 .ba-about { gap:38px; }
}
@media (max-width:760px) {
 html { scroll-padding-top:94px; }
 .rd-header { padding-top:16px; padding-bottom:16px; } .rd-brand img { width:155px; }
 .ba-hero { padding-top:125px; padding-bottom:24px; }
 .ba-hero-meta { font-size:11px; flex-wrap:wrap; gap:12px; }
 .ba-hero-content { padding-block:32px; flex-direction:column; align-items:start; gap:26px; }
 .ba-hero h1 { font-size:clamp(46px,10.5vw,78px); }
 .ba-hero-note { width:100%; justify-content:space-between; align-items:center; }
 .ba-hero-note p { font-size:14px; } .ba-hero-note br { display:none; } .ba-hero-note p { max-width:25ch; }
 .ba-hero-bottom { gap:12px; } .ba-hero-bottom p { font-size:11px; }
 .ba-work-heading p { display:none; } .ba-work-heading { padding-bottom:18px; }
 .ba-project { position:relative; top:auto; transform:none; margin-bottom:36px; padding-bottom:0; }
 .ba-stack[data-ba-expand] { clip-path:none; }
 .ba-project-image { height:auto; aspect-ratio:1.25; }
 .ba-project-image img { transform:none; }
 .ba-project-caption h3 { font-size:25px; } .ba-project-caption p { font-size:11px; }
 .ba-project-open { font-size:0; gap:0; } .ba-project-open>span { font-size:29px; }
 .ba-poster-set { padding:18px; gap:12px; max-height:none; grid-template-columns:1fr 1fr; }
 .ba-poster-set img { max-height:none; } .ba-poster-set img:last-child { display:none; }
 .ba-work-end { padding-block:15px 50px; }
 .ba-expertise { padding-block:55px; } .ba-expertise-inner { grid-template-columns:1fr; gap:18px; }
 .ba-expertise h2 { font-size:49px; }  .ba-expertise h2 { max-width:10ch; }
 .ba-expertise-links a { font-size:25px; padding-block:22px; }
 .ba-expertise-links a.ba-partner-link { font-size:13px; }
 .ba-studio { grid-template-columns:1fr; padding-block:60px; gap:35px; }
 .ba-studio h2 { font-size:49px; } .ba-studio-copy p { font-size:15px; }
 .ba-studio-portrait { max-width:440px; } .ba-studio-portrait img { transform:none; max-height:480px; }
 .ba-testimonial { grid-template-columns:1fr; gap:22px; padding-bottom:60px; }
 .ba-testimonial>.rd-link { grid-column:1; } .ba-testimonial blockquote { font-size:27px; }
 .ba-contact { padding-block:55px; } .ba-contact-link { padding-right:55px; font-size:clamp(39px,9vw,68px); }
 .ba-page-head { padding-top:124px; flex-direction:column; align-items:start; padding-bottom:36px; gap:25px; }
 .ba-page-head h1 { font-size:clamp(44px,11vw,78px); }
 .ba-page-head p { font-size:14px; }
 .ba-about { grid-template-columns:1fr; gap:32px; padding-bottom:45px; }
 .ba-about figure { position:relative; top:auto; } .ba-about figure img { transform:none; max-height:530px; }
 .ba-about p.ba-about-intro { font-size:31px; } .ba-tools { padding-block:30px 45px; }
 .rd-footer-top { flex-direction:column; gap:28px; } .rd-footer-top .rd-link { font-size:12px; }
 [data-page=contact] h1 { font-size:clamp(39px,9.5vw,72px) !important; }
}
@media (prefers-reduced-motion:reduce), (pointer:coarse) {
 .ba-project { position:relative; top:auto; transform:none; }
 .ba-stack[data-ba-expand] { clip-path:none; }
 [data-ba-parallax] img { transform:none; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none !important; transition:none !important; } }

/* Decorative transforms have a stable, quiet fallback. State signs remain. */
@media (prefers-reduced-motion:reduce) {
 .rd-button:hover,.rd-link>span,.ba-round-link:hover,.ba-project-open>span,
 .ba-expertise-links a>span:last-child,.ba-contact-link>span,.ba-next-arrow,
 .ba-sv-thumb img { transform:none !important; }
}
[data-ba-light] .ba-project { position:relative; top:auto; transform:none; }
[data-ba-light] [data-ba-expand] { clip-path:none; }
[data-ba-light] [data-ba-parallax] img { transform:none; }
[data-ba-light] .rd-button,[data-ba-light] .bh-hero-piece,[data-ba-light] .bh-work-item img,
[data-ba-light] .bh-service img,[data-ba-light] .ba-sv-thumb img { transition:none; }
[data-ba-light] .rd-button:hover,[data-ba-light] .bh-hero-piece:hover,
[data-ba-light] .bh-hero-piece:focus-visible,[data-ba-light] .bh-work-item:hover img,
[data-ba-light] .bh-service:hover img,[data-ba-light] .ba-sv-thumb img { transform:none; }
