:root {
  --ink: #070709;
  --ink-2: #0e0e12;
  --ink-3: #16161c;
  --paper: #f6f5f2;
  --white: #ffffff;
  --muted: #a8a8b0;
  --muted-dark: #62626b;
  --line: rgba(255,255,255,.13);
  --line-dark: rgba(7,7,9,.12);
  --blue: #2b7dff;
  --blue-2: #73b0ff;
  --violet: #7256ff;
  --max: 1220px;
  --radius: 20px;
  --shadow: 0 30px 90px rgba(0,0,0,.18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
::selection { background: var(--blue); color: white; }

.shell { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: .74rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase;
}
.eyebrow::before { content:""; width: 32px; height: 1px; background: currentColor; opacity: .7; }
.kicker { color: var(--blue-2); }
.serif { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }

.skip-link { position: fixed; left: 14px; top: -80px; z-index: 1000; padding: 10px 14px; background: white; color: black; }
.skip-link:focus { top: 14px; }

.site-header {
  position: sticky; top: 0; z-index: 90;
  background: rgba(7,7,9,.88); color: white;
  border-bottom: 1px solid var(--line); backdrop-filter: blur(18px);
}
.nav { height: 78px; display:flex; align-items:center; justify-content:space-between; gap: 24px; }
.brand { display:flex; align-items:center; gap: 10px; font-weight: 900; letter-spacing: -.04em; font-size: 1.2rem; }
.brand-mark { width: 30px; height: 30px; object-fit: cover; border-radius: 7px; }
.brand span:last-child { color: var(--blue); }
.nav-links { display:flex; align-items:center; gap: 30px; font-size:.87rem; font-weight:650; }
.nav-links a:not(.btn) { color: #d9d9df; }
.nav-links a:not(.btn):hover, .nav-links a[aria-current="page"] { color:white; }
.nav-toggle { display:none; background:none; color:white; border:0; padding:8px; }
.nav-toggle svg { width:26px; height:26px; }

.btn {
  display:inline-flex; align-items:center; justify-content:center; gap: 10px;
  min-height: 48px; padding: 0 19px; border: 1px solid transparent;
  font-size:.78rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-white { background:white; color:black; }
.btn-white:hover { background:#ececf0; }
.btn-dark { background:var(--ink); color:white; }
.btn-outline-light { border-color: rgba(255,255,255,.55); color:white; }
.btn-outline-light:hover { background:white; color:black; }
.btn-outline-dark { border-color: rgba(7,7,9,.35); color:var(--ink); }
.btn-outline-dark:hover { background:var(--ink); color:white; }
.btn-blue { background: var(--blue); color:white; }

.hero {
  min-height: 760px; color:white; background:
    radial-gradient(circle at 79% 30%, rgba(43,125,255,.18), transparent 26%),
    radial-gradient(circle at 65% 68%, rgba(114,86,255,.10), transparent 30%),
    linear-gradient(120deg, #050506, #0b0b0f 65%, #050506);
  overflow:hidden; position:relative;
}
.hero::before {
  content:""; position:absolute; inset:0; opacity:.16; pointer-events:none;
  background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 72px 72px; mask-image: linear-gradient(to right, transparent 8%, black 70%);
}
.hero-grid { min-height: 680px; padding: 110px 0 85px; display:grid; grid-template-columns: 1.1fr .9fr; align-items:center; gap:70px; position:relative; z-index:1; }
.hero h1 { margin: 18px 0 25px; font-size: clamp(4rem, 7vw, 7.1rem); line-height:.88; letter-spacing:-.055em; font-family: Georgia, "Times New Roman", serif; font-weight:400; }
.hero h1 em { font-style:normal; color: #d8e7ff; }
.hero-copy { max-width: 650px; color:#c7c7ce; font-size:1.08rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:36px; }
.hero-note { display:flex; align-items:center; gap:11px; margin-top:30px; color:#8f8f98; font-size:.82rem; }
.hero-note i { width:8px; height:8px; border-radius:50%; background:var(--blue); box-shadow:0 0 16px rgba(43,125,255,.8); }

.hero-panel { position:relative; min-height:510px; display:flex; align-items:center; justify-content:center; }
.hero-panel::before { content:""; position:absolute; width:470px; height:470px; border:1px solid rgba(255,255,255,.10); border-radius:50%; box-shadow: inset 0 0 80px rgba(43,125,255,.07); }
.re-orbit { position:relative; width:min(470px,100%); aspect-ratio:1; border-radius:50%; display:grid; place-items:center; }
.re-core { width:230px; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; background:radial-gradient(circle at 35% 30%,#162340,#090a0f 63%); border:1px solid rgba(255,255,255,.14); box-shadow:0 35px 100px rgba(0,0,0,.55), 0 0 80px rgba(43,125,255,.16); }
.re-core img { width:180px; border-radius:50%; }
.orbit-card { position:absolute; min-width:140px; padding:15px 17px; background:rgba(13,13,18,.86); border:1px solid rgba(255,255,255,.13); box-shadow:0 20px 55px rgba(0,0,0,.35); backdrop-filter:blur(12px); }
.orbit-card strong { display:block; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; }
.orbit-card span { color:#9b9ba5; font-size:.72rem; }
.orbit-card:nth-of-type(1){ top:3%; left:-2%; }
.orbit-card:nth-of-type(2){ top:18%; right:-4%; }
.orbit-card:nth-of-type(3){ bottom:18%; left:-5%; }
.orbit-card:nth-of-type(4){ bottom:4%; right:7%; }

.platform-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#09090c; color:white; }
.platforms { display:grid; grid-template-columns:repeat(6,1fr); }
.platforms span { text-align:center; padding:20px 10px; border-right:1px solid var(--line); color:#bcbcc5; font-size:.76rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.platforms span:first-child { border-left:1px solid var(--line); }

.section { padding: 112px 0; }
.section-sm { padding: 80px 0; }
.section-dark { background:var(--ink); color:white; }
.section-white { background:white; }
.section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:50px; }
.section-head h2 { margin:8px 0 0; max-width:850px; font-family: Georgia,"Times New Roman",serif; font-weight:400; font-size:clamp(2.8rem,5vw,5rem); line-height:.98; letter-spacing:-.045em; }
.section-head p { max-width:440px; color:var(--muted-dark); margin:0; }
.section-dark .section-head p { color:var(--muted); }

.case-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.case-card { border:1px solid var(--line-dark); background:#fff; transition: transform .25s ease, box-shadow .25s ease; overflow:hidden; }
.case-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.case-media { aspect-ratio: 1.25; background:#ececf0; overflow:hidden; position:relative; }
.case-media img { width:100%; height:100%; object-fit:cover; object-position:top center; filter:saturate(.88); transition:transform .4s ease; }
.case-card:hover img { transform:scale(1.03); }
.case-body { padding:20px; }
.case-type { font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--blue); font-weight:850; }
.case-body h3 { font-size:1.08rem; margin:6px 0 8px; }
.case-body p { margin:0 0 18px; color:var(--muted-dark); font-size:.88rem; }
.case-link { font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }

.editorial { display:grid; grid-template-columns:1fr 1fr; min-height:650px; background:#f2f1ee; }
.editorial-copy { padding:100px max(40px, calc((100vw - var(--max))/2)); padding-right:80px; display:flex; justify-content:center; flex-direction:column; }
.editorial-copy h2 { font-family:Georgia,"Times New Roman",serif; font-weight:400; font-size:clamp(3.3rem,5.4vw,6rem); line-height:.91; letter-spacing:-.05em; margin:16px 0 28px; }
.editorial-copy p { color:#55555e; max-width:570px; font-size:1.02rem; }
.editorial-art { min-height:580px; position:relative; overflow:hidden; background:#111; }
.editorial-art::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(242,241,238,.1), transparent 30%, rgba(0,0,0,.2)); }
.editorial-art img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); opacity:.88; }

.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line-dark); border-left:1px solid var(--line-dark); }
.service-card { padding:38px 34px 42px; border-right:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); min-height:270px; position:relative; background:white; }
.service-num { font-family:Georgia,serif; font-size:1.2rem; color:#8e8e95; }
.service-card h3 { margin:40px 0 12px; font-family:Georgia,serif; font-weight:400; font-size:1.65rem; }
.service-card p { color:var(--muted-dark); margin:0; font-size:.92rem; }
.service-arrow { position:absolute; right:28px; top:30px; font-size:1.4rem; }

.framework { display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); margin-top:50px; }
.step { padding:30px 24px 34px; min-height:260px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.step b { font-size:.72rem; letter-spacing:.14em; color:var(--blue-2); }
.step h3 { font-family:Georgia,serif; font-weight:400; font-size:1.6rem; margin:60px 0 12px; }
.step p { color:#9898a2; font-size:.88rem; margin:0; }

.quote-band { background:#111116; color:white; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.quote-inner { display:grid; grid-template-columns: 1.1fr .9fr; gap:80px; align-items:center; padding:90px 0; }
.quote-inner blockquote { margin:0; font-family:Georgia,serif; font-size:clamp(2.5rem,4.5vw,4.8rem); line-height:.98; letter-spacing:-.04em; }
.quote-inner p { color:#aaaab3; }

.cta { background:#09090b; color:white; position:relative; overflow:hidden; }
.cta::after { content:"RE"; position:absolute; right:-30px; bottom:-100px; font-size:390px; font-weight:950; letter-spacing:-.12em; color:rgba(255,255,255,.025); line-height:1; }
.cta-inner { padding:110px 0; display:grid; grid-template-columns:1fr auto; gap:60px; align-items:end; position:relative; z-index:1; }
.cta h2 { margin:12px 0 0; font-family:Georgia,serif; font-size:clamp(3.5rem,6vw,6.5rem); line-height:.91; font-weight:400; letter-spacing:-.05em; max-width:920px; }
.cta-actions { display:flex; flex-direction:column; gap:10px; min-width:260px; }

.footer { background:#050506; color:white; border-top:1px solid var(--line); padding:50px 0 28px; }
.footer-grid { display:grid; grid-template-columns:1.4fr repeat(3,.65fr); gap:40px; padding-bottom:45px; }
.footer-brand p { color:#8f8f98; max-width:390px; font-size:.86rem; }
.footer h4 { margin:0 0 15px; font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; color:#8d8d96; }
.footer a { display:block; color:#d5d5db; margin:9px 0; font-size:.86rem; }
.footer-bottom { border-top:1px solid var(--line); padding-top:20px; display:flex; justify-content:space-between; gap:30px; color:#767680; font-size:.75rem; }

/* Interior pages */
.page-hero { background:var(--ink); color:white; padding:105px 0 85px; border-bottom:1px solid var(--line); }
.page-hero .shell { display:grid; grid-template-columns:1fr .65fr; gap:70px; align-items:end; }
.page-hero h1 { font-family:Georgia,serif; font-weight:400; font-size:clamp(4rem,7vw,7.2rem); line-height:.9; letter-spacing:-.055em; margin:15px 0 0; }
.page-hero p { color:#acacb6; font-size:1.03rem; margin:0 0 7px; }
.breadcrumb { color:#777781; font-size:.75rem; text-transform:uppercase; letter-spacing:.12em; margin-bottom:15px; }

.service-detail { display:grid; grid-template-columns:.65fr 1.35fr; gap:70px; padding:70px 0; border-bottom:1px solid var(--line-dark); }
.service-detail h2 { margin:0; font-family:Georgia,serif; font-weight:400; font-size:2.7rem; line-height:1; }
.service-detail p { color:#565660; max-width:760px; }
.feature-list { display:grid; grid-template-columns:repeat(2,1fr); gap:12px 25px; list-style:none; padding:0; margin:27px 0 0; }
.feature-list li { border-top:1px solid var(--line-dark); padding:13px 0; font-size:.9rem; }
.feature-list li::before { content:"↗"; margin-right:10px; color:var(--blue); }

.results-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.result-case { background:white; border:1px solid var(--line-dark); }
.result-case-head { padding:28px 28px 20px; }
.result-case-head h2 { font-family:Georgia,serif; font-weight:400; font-size:2.1rem; margin:4px 0 10px; }
.result-case-head p { color:#666671; margin:0; }
.gallery { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line-dark); }
.gallery button { border:0; padding:0; background:#eee; border-right:1px solid var(--line-dark); min-height:220px; overflow:hidden; }
.gallery button:last-child { border-right:0; }
.gallery img { width:100%; height:100%; object-fit:cover; object-position:top; transition:transform .25s ease; }
.gallery button:hover img { transform:scale(1.04); }
.result-note { padding:16px 28px 24px; color:#777781; font-size:.76rem; }

.process-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:0; border:1px solid var(--line-dark); }
.process-item { padding:34px 26px; border-right:1px solid var(--line-dark); min-height:300px; }
.process-item:last-child { border-right:0; }
.process-item b { color:var(--blue); font-size:.74rem; letter-spacing:.12em; }
.process-item h3 { font-family:Georgia,serif; font-weight:400; font-size:1.8rem; margin:55px 0 15px; }
.process-item p { color:#65656f; font-size:.88rem; }

.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.about-grid h2 { font-family:Georgia,serif; font-weight:400; font-size:clamp(3rem,5vw,5.2rem); line-height:.95; margin:0 0 25px; letter-spacing:-.045em; }
.about-grid p { color:#5d5d66; font-size:1rem; }
.brand-poster { background:#05060a; padding:22px; box-shadow:var(--shadow); }
.brand-poster img { width:100%; }
.values { display:grid; grid-template-columns:repeat(3,1fr); margin-top:70px; border:1px solid var(--line-dark); }
.value { padding:30px; border-right:1px solid var(--line-dark); }
.value:last-child{border-right:0}.value h3{font-family:Georgia,serif;font-weight:400;font-size:1.6rem}.value p{color:#666671;font-size:.88rem}

.contact-wrap { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; }
.contact-copy h2 { font-family:Georgia,serif; font-size:3.3rem; line-height:.95; font-weight:400; margin:0 0 20px; }
.contact-copy p { color:#62626c; }
.contact-points { margin-top:35px; border-top:1px solid var(--line-dark); }
.contact-point { padding:18px 0; border-bottom:1px solid var(--line-dark); }
.contact-point strong { display:block; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:4px; }
.contact-point span { color:#6b6b75; font-size:.88rem; }
.form-card { background:white; border:1px solid var(--line-dark); padding:35px; box-shadow:0 20px 70px rgba(0,0,0,.06); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field { display:flex; flex-direction:column; gap:8px; }
.field.full { grid-column:1/-1; }
.field label { font-size:.75rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.field input,.field select,.field textarea { width:100%; border:1px solid #d6d6dc; background:#fafafa; padding:13px 14px; border-radius:0; color:#111; outline:none; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(43,125,255,.12); }
.field textarea { min-height:150px; resize:vertical; }
.hp { position:absolute !important; left:-9999px !important; }
.form-status { margin:16px 0 0; min-height:22px; font-size:.86rem; }
.form-status.success { color:#08743c; }.form-status.error{color:#aa1f2d}
.form-note { color:#7a7a83; font-size:.72rem; margin-top:15px; }

.faq { max-width:900px; margin:0 auto; }
details { border-top:1px solid var(--line-dark); padding:22px 0; }
details:last-child { border-bottom:1px solid var(--line-dark); }
summary { cursor:pointer; font-family:Georgia,serif; font-size:1.45rem; list-style:none; }
summary::-webkit-details-marker {display:none}.faq p{color:#666671;max-width:760px}

.legal { max-width:850px; }
.legal h2 { font-family:Georgia,serif; font-weight:400; font-size:2.2rem; margin-top:45px; }
.legal p,.legal li { color:#5d5d66; }

.image-modal { width:min(1050px,92vw); border:0; padding:0; background:#0a0a0d; color:white; box-shadow:0 40px 120px rgba(0,0,0,.5); }
.image-modal::backdrop { background:rgba(0,0,0,.78); backdrop-filter:blur(8px); }
.image-modal img { max-height:80vh; width:100%; object-fit:contain; }
.modal-bar { display:flex; justify-content:space-between; align-items:center; padding:14px 18px; border-bottom:1px solid var(--line); }
.modal-bar button { background:none; border:1px solid var(--line); color:white; padding:7px 10px; }

.reveal { opacity:0; transform:translateY(18px); transition:opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } .reveal{opacity:1;transform:none;} }

@media (max-width: 980px) {
  .nav-toggle{display:block}.nav-links{position:fixed;left:0;right:0;top:78px;background:#09090c;flex-direction:column;align-items:stretch;padding:22px 24px 30px;border-bottom:1px solid var(--line);transform:translateY(-130%);opacity:0;transition:.25s ease;z-index:-1}.nav-links.open{transform:none;opacity:1;z-index:80}.nav-links a{padding:10px 0}
  .hero-grid,.page-hero .shell,.quote-inner,.contact-wrap,.about-grid{grid-template-columns:1fr}.hero-grid{gap:30px;padding-top:85px}.hero-panel{min-height:480px}.hero h1{font-size:clamp(4rem,13vw,6.7rem)}
  .platforms{grid-template-columns:repeat(3,1fr)}.platforms span{border-bottom:1px solid var(--line)}
  .case-grid{grid-template-columns:repeat(2,1fr)}.service-grid{grid-template-columns:repeat(2,1fr)}.framework,.process-grid{grid-template-columns:repeat(2,1fr)}.step:last-child,.process-item:last-child{grid-column:1/-1}.process-item{border-bottom:1px solid var(--line-dark)}
  .editorial{grid-template-columns:1fr}.editorial-copy{padding:85px 40px}.editorial-art{min-height:450px}
  .cta-inner{grid-template-columns:1fr}.cta-actions{flex-direction:row;flex-wrap:wrap}.results-grid{grid-template-columns:1fr}
  .service-detail{grid-template-columns:1fr;gap:30px}.footer-grid{grid-template-columns:1fr 1fr}.values{grid-template-columns:1fr}.value{border-right:0;border-bottom:1px solid var(--line-dark)}
}
@media (max-width: 620px) {
  .shell{width:min(calc(100% - 28px),var(--max))}.nav{height:70px}.nav-links{top:70px}.section{padding:80px 0}.section-sm{padding:60px 0}
  .hero{min-height:auto}.hero-grid{padding:70px 0 60px}.hero h1{font-size:clamp(3.7rem,18vw,5.2rem)}.hero-panel{min-height:390px}.hero-panel::before{width:330px;height:330px}.re-orbit{width:350px}.re-core{width:170px}.re-core img{width:140px}.orbit-card{min-width:115px;padding:10px 12px}.orbit-card:nth-of-type(1){left:0}.orbit-card:nth-of-type(2){right:0}.orbit-card:nth-of-type(3){left:0}.orbit-card:nth-of-type(4){right:0}
  .platforms{grid-template-columns:repeat(2,1fr)}.section-head{align-items:flex-start;flex-direction:column}.section-head h2{font-size:3.1rem}.case-grid,.service-grid{grid-template-columns:1fr}.framework,.process-grid{grid-template-columns:1fr}.step:last-child,.process-item:last-child{grid-column:auto}.editorial-copy{padding:70px 20px}.editorial-copy h2{font-size:3.7rem}.editorial-art{min-height:380px}.cta-inner{padding:80px 0}.cta h2{font-size:4rem}.cta-actions{flex-direction:column}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-bottom{flex-direction:column}.page-hero{padding:75px 0 60px}.page-hero h1{font-size:4.2rem}.feature-list{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr}.gallery button{min-height:190px}.gallery button:last-child{grid-column:1/-1;max-height:300px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.form-card{padding:24px}.values{margin-top:45px}
}
