:root {
  --ink: #11110f;
  --paper: #f5f3ed;
  --paper-deep: #eae7df;
  --orange: #ff9d00;
  --yellow: #ffc928;
  --muted: #77756f;
  --line: rgba(17, 17, 15, .14);
  --line-light: rgba(245, 243, 237, .18);
  --shell: min(1480px, calc(100% - clamp(2.5rem, 9vw, 10rem)));
  --sans: "Maven Pro", sans-serif;
  --serif: "Instrument Serif", Georgia, serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 7rem; }
body { margin: 0; overflow-x: clip; background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
a, a:link, a:visited { color: inherit; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--orange); outline-offset: 5px; }
::selection { background: var(--orange); color: var(--ink); }
.shell { width: var(--shell); margin-inline: auto; }
.section-space { padding-block: clamp(7rem, 13vw, 13rem); }
.section-dark { background: var(--ink); color: var(--paper); }
.skip-link { position: fixed; z-index: 30; top: .75rem; left: .75rem; padding: .8rem 1rem; background: var(--orange); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: fixed; z-index: 20; top: 1.2rem; right: 0; left: 0; pointer-events: none; transition: top .25s ease; }
.site-header.is-scrolled { top: .7rem; }
.site-nav { display: flex; width: min(1520px, calc(100% - 2rem)); min-height: 70px; margin-inline: auto; padding: .45rem .65rem .45rem 1.3rem; align-items: center; justify-content: space-between; border: 1px solid rgba(17, 17, 15, .09); background: rgba(245, 243, 237, .88); box-shadow: 0 14px 44px rgba(17, 17, 15, .07); backdrop-filter: blur(18px); pointer-events: auto; }
.brand { display: inline-flex; align-items: baseline; gap: .32rem; color: var(--ink) !important; text-decoration: none; white-space: nowrap; font-size: .94rem; font-weight: 600; letter-spacing: -.055em; }
.brand span:first-child { font-family: var(--serif); font-size: 1.42rem; font-style: italic; font-weight: 400; }
.brand span:nth-child(2) { font-family: var(--mono); }
.brand span:last-child { padding: .03rem .24rem; background: var(--orange); }
.brand-logo { min-height: 54px; align-items: center; }
.brand-logo img { display: block; width: 78px; height: auto; }
.nav-list { display: flex; align-items: center; gap: 1.8rem; margin: 0; padding: 0; list-style: none; }
.nav-list a { position: relative; display: inline-flex; min-height: 44px; align-items: center; color: var(--ink) !important; text-decoration: none; font-size: .79rem; }
.nav-list a:not(.nav-contact)::after { position: absolute; right: 0; bottom: 9px; left: 0; height: 1px; background: var(--orange); content: ""; transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.nav-list a:not(.nav-contact):hover::after { transform: scaleX(1); transform-origin: left; }
.nav-contact { gap: 1.2rem; padding-inline: 1.1rem; border: 1px solid var(--ink); transition: color .2s ease, background .2s ease; }
.nav-contact:hover { background: var(--ink); color: var(--paper) !important; }
.menu-toggle { position: relative; display: none; width: 46px; height: 46px; border: 0; background: none; }
.menu-toggle span { position: absolute; left: 11px; width: 24px; height: 1px; background: var(--ink); transition: transform .25s ease; }
.menu-toggle span:first-child { transform: translateY(-4px); }
.menu-toggle span:last-child { transform: translateY(4px); }
.menu-toggle[aria-expanded="true"] span:first-child { transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: rotate(-45deg); }

.hero { position: relative; min-height: min(1020px, 100svh); overflow: hidden; }
.hero-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(17,17,15,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(17,17,15,.035) 1px, transparent 1px); background-position: center; background-size: 96px 96px; mask-image: linear-gradient(90deg, transparent 18%, #000 70%); }
.hero-shell { position: relative; display: flex; min-height: inherit; align-items: center; padding-block: 9rem 7rem; }
.hero-copy { position: relative; z-index: 2; width: min(860px, 67%); }
.eyebrow, .section-label, .footer-label { text-transform: uppercase; font-size: .69rem; font-weight: 600; letter-spacing: .16em; }
.eyebrow { display: flex; align-items: center; gap: .8rem; margin-bottom: 2.5rem; }
.status-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 5px rgba(255,157,0,.13); }
.hero h1 { max-width: 850px; margin: 0 0 1.9rem; font-size: clamp(5.1rem, 9vw, 9.6rem); font-weight: 500; line-height: .86; letter-spacing: -.085em; }
.hero h1 em, .statement em, .section-heading h2 em, .about h2 em, .faq-preview h2 em, .contact h2 em { color: var(--orange); font-family: var(--serif); font-style: italic; font-weight: 400; }
.hero-intro { max-width: 570px; margin: 0 0 2.1rem; color: #55534e; font-size: clamp(1.03rem, 1.35vw, 1.3rem); line-height: 1.72; }
.editorial-link { display: inline-flex; min-height: 44px; align-items: center; gap: 1.5rem; border-bottom: 1px solid currentColor; text-decoration: none; font-size: .85rem; }
.editorial-link span { font-size: 1.1rem; transition: transform .25s ease; }
.editorial-link:hover span { transform: translate(3px, -3px); }
.hero-art { position: absolute; top: 23%; right: -4%; width: 48%; height: 54%; }
.art-orbit { position: absolute; top: 0; right: 3%; width: 85%; aspect-ratio: 1; border: 1px solid rgba(17,17,15,.16); border-radius: 50%; }
.art-disc { position: absolute; top: 5%; right: 12%; width: 64%; aspect-ratio: 1; border-radius: 50%; background: linear-gradient(145deg, #ffd655 5%, var(--orange) 60%, #e87908); }
.art-disc-core { position: absolute; top: 30%; right: 32%; width: 24%; aspect-ratio: 1; border-radius: 50%; background: var(--paper); }
.art-window { position: absolute; right: -3%; bottom: 2%; width: 78%; border: 1px solid rgba(17,17,15,.13); background: rgba(255,255,255,.93); box-shadow: 0 35px 80px rgba(17,17,15,.13); }
.window-bar { display: flex; height: 46px; align-items: center; gap: 7px; padding-inline: 15px; border-bottom: 1px solid var(--line); }
.window-bar > span { width: 8px; height: 8px; border-radius: 50%; background: #d5d2ca; }
.window-bar > span:first-child { background: var(--orange); }
.window-bar b { margin-left: 10px; color: var(--muted); font-family: var(--mono); font-size: .61rem; font-weight: 400; }
.window-code { padding: 1.4rem 1.5rem 1.6rem; color: #55534e; font-family: var(--mono); font-size: clamp(.58rem, .8vw, .79rem); line-height: 1.9; }
.window-code > span { color: #bb6900; }.window-code i { color: #758257; font-style: normal; }.window-code b { color: var(--ink); font-weight: 500; }
.art-note { position: absolute; top: 19%; left: 1%; display: flex; align-items: center; gap: .75rem; padding: .8rem 1rem; border: 1px solid var(--line); background: var(--paper); font-size: .7rem; }.art-note strong { color: var(--orange); }
.art-cross { position: absolute; font-family: var(--mono); font-size: 1.4rem; }.cross-one { top: 3%; left: 15%; }.cross-two { right: 3%; bottom: 10%; }
.hero-bottom { position: absolute; right: 0; bottom: 2.3rem; left: 0; display: flex; justify-content: space-between; color: var(--muted); font-size: .72rem; }.hero-bottom a { text-decoration: none; }.hero-bottom a span { margin-left: .6rem; }

.section-label { margin-bottom: 2rem; }.section-label.light { color: var(--orange); }
.statement { max-width: 950px; margin: 0; font-size: clamp(3.2rem, 6.5vw, 7rem); font-weight: 500; line-height: .98; letter-spacing: -.075em; }
.statement em { color: var(--ink); }
.lead-copy { max-width: 690px; margin: 2.5rem 0 1.6rem; color: #5d5a53; font-size: clamp(1rem, 1.35vw, 1.27rem); line-height: 1.85; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 3rem; }.section-heading h2, .about h2, .faq-preview h2 { margin: 0; font-size: clamp(3.3rem, 6.2vw, 7rem); font-weight: 500; line-height: .96; letter-spacing: -.075em; }
.section-aside { max-width: 320px; margin: 0 0 .35rem; color: #a6a29a; font-size: .9rem; line-height: 1.8; }.dark-aside { color: #66635d; }
.service-list { margin-top: 5rem; border-top: 1px solid var(--line-light); }.service-row { display: grid; min-height: 145px; grid-template-columns: 55px 1.1fr 1fr 35px; align-items: center; gap: 2rem; border-bottom: 1px solid var(--line-light); text-decoration: none; transition: padding .25s ease; }.service-row:hover { padding-inline: .7rem; }.service-number { color: #8d8980; font-family: var(--mono); font-size: .72rem; }.service-title h3 { margin: 0 0 .38rem; font-size: clamp(1.45rem, 2.2vw, 2.55rem); font-weight: 500; letter-spacing: -.055em; }.service-title > span { color: #929087; font-size: .73rem; }.service-row > p { margin: 0; color: #aaa69e; font-size: .83rem; line-height: 1.75; }.service-arrow { text-align: right; font-size: 1.45rem; transition: color .2s ease, transform .2s ease; }.service-row:hover .service-arrow { color: var(--orange); transform: translate(3px,-3px); }.services-note { margin: 2rem 0 0; color: #a19d94; text-align: right; font-size: .76rem; }

.cases-heading { margin-bottom: 5.5rem; }.case-grid { display: grid; grid-template-columns: 1.13fr .87fr; gap: 7.5rem 6%; align-items: start; }.case-card > a { display: block; text-decoration: none; }.case-card-offset { margin-top: 8rem; }.second-offset { margin-top: 0; }.case-card-large:last-child { margin-top: 8rem; }.case-image { position: relative; overflow: hidden; background: var(--paper-deep); }.case-image img { display: block; width: 100%; height: auto; aspect-ratio: 1.42; object-fit: cover; filter: saturate(.73); transition: transform .6s ease, filter .6s ease; }.case-card-offset .case-image img { aspect-ratio: 1.2; }.case-card:hover .case-image img { filter: saturate(.95); transform: scale(1.035); }.case-count { position: absolute; top: 1rem; left: 1rem; padding: .55rem .7rem; background: rgba(245,243,237,.94); font-family: var(--mono); font-size: .61rem; }.case-open { position: absolute; right: 1rem; bottom: 1rem; display: grid; width: 48px; height: 48px; place-items: center; background: var(--paper); font-size: 1.2rem; }.case-meta { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.55rem; color: var(--muted); text-transform: uppercase; font-size: .61rem; letter-spacing: .095em; }.case-card h3 { max-width: 640px; margin: .9rem 0 0; font-size: clamp(1.55rem, 2.7vw, 3rem); font-weight: 500; line-height: 1.12; letter-spacing: -.06em; }

.portrait-frame { position: relative; overflow: hidden; background: #262622; }.portrait-frame > img { display: block; width: 100%; height: auto; aspect-ratio: .78; object-fit: cover; filter: grayscale(1) brightness(.75); }.portrait-caption { position: absolute; right: 1rem; bottom: 1rem; padding: .6rem .8rem; background: var(--ink); text-transform: uppercase; font-size: .58rem; letter-spacing: .1em; }.portrait-mark { position: absolute; top: 1rem; left: 1.2rem; color: white; font-family: var(--serif); font-size: 4rem; font-style: italic; }.about h2 { font-size: clamp(3rem, 5vw, 5.7rem); }.about-copy { max-width: 570px; margin: 2rem 0 0; color: #b9b5ac; font-size: 1rem; line-height: 1.85; }.about-signature { display: flex; align-items: center; gap: .8rem; margin-top: 2.6rem; font-size: .91rem; }.about-signature span:first-child { font-family: var(--serif); font-size: 1.18rem; font-style: italic; }.about-signature span:nth-of-type(2) { font-family: var(--mono); }.about-signature span:last-of-type { color: var(--orange); }.about-signature i { color: #777; font-style: normal; }.light-link { margin-top: 2.4rem; }

.article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem; margin-top: 5rem; }.article-card { min-height: 410px; border: 1px solid var(--line); background: rgba(255,255,255,.58); transition: border-color .25s ease, transform .25s ease; }.article-card:hover { border-color: var(--ink); transform: translateY(-5px); }.article-card > a { position: relative; display: flex; height: 100%; min-height: inherit; flex-direction: column; padding: 2rem; text-decoration: none; }.article-highlight > a::before { position: absolute; top: 0; right: 0; left: 0; height: 4px; background: var(--orange); content: ""; }.article-number { align-self: flex-end; color: #aaa69e; font-family: var(--serif); font-size: 2.1rem; font-style: italic; }.article-category { margin-top: 2.8rem; color: var(--muted); text-transform: uppercase; font-size: .62rem; letter-spacing: .075em; }.article-category span { margin-inline: .25rem; }.article-card h3 { margin: 1.35rem 0 .8rem; font-size: clamp(1.48rem, 2vw, 2.3rem); font-weight: 500; line-height: 1.15; letter-spacing: -.055em; }.article-card p { margin: 0 0 2rem; color: #68655f; font-size: .82rem; line-height: 1.7; }.article-link { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--line); text-transform: uppercase; font-size: .63rem; letter-spacing: .065em; }.article-link b { font-size: 1.15rem; font-weight: 400; }

.faq-preview { padding-top: 0; }.faq-preview h2 { font-size: clamp(3rem, 5vw, 5.4rem); }.faq-list { border-top: 1px solid var(--line); }.faq-list details { border-bottom: 1px solid var(--line); }.faq-list summary { display: flex; min-height: 82px; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; font-size: .97rem; }.faq-list summary::-webkit-details-marker { display: none; }.faq-list summary > span { font-family: var(--mono); font-size: 1.5rem; transition: transform .2s ease; }.faq-list details[open] summary > span { transform: rotate(45deg); }.faq-list details > p { max-width: 540px; margin: -.2rem 0 1.5rem; color: #66635d; font-size: .87rem; line-height: 1.8; }

.contact { position: relative; overflow: hidden; }.contact-inner { position: relative; z-index: 1; }.contact h2 { max-width: 1120px; margin: 2.5rem 0 4rem; font-size: clamp(4.2rem, 10vw, 11.5rem); font-weight: 500; line-height: .84; letter-spacing: -.085em; }.contact-bottom { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }.contact-bottom > p { max-width: 470px; margin: 0; color: #aaa69e; font-size: 1rem; line-height: 1.8; }.contact-button { display: flex; min-width: min(470px, 100%); min-height: 68px; align-items: center; justify-content: space-between; padding-inline: 1.5rem; background: var(--orange); color: var(--ink) !important; text-decoration: none; font-size: .87rem; transition: background .2s ease; }.contact-button:hover { background: var(--yellow); }.contact-graphic { position: absolute; top: -210px; right: -170px; width: 470px; height: 470px; border: 80px solid rgba(255,157,0,.11); border-radius: 50%; }

.site-footer { padding-block: 2.75rem 1.5rem; border-top: 1px solid var(--line-light); background: var(--ink); color: var(--paper); }.footer-brand { display: flex; align-items: baseline; }.footer-columns { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 3rem; }.footer-columns > div { display: flex; flex-direction: column; align-items: start; gap: .72rem; }.footer-label { margin-bottom: .45rem; color: #98948b; font-size: .61rem; }.footer-columns p { margin: 0; color: #e8e5dd; line-height: 1.65; }.footer-columns a { text-decoration: none; font-size: .8rem; }.footer-placeholder { color: #a6a29a; font-size: .8rem; }.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2.75rem; padding-top: 1.25rem; border-top: 1px solid var(--line-light); color: #a6a29a; font-size: .67rem; }.footer-bottom a { text-decoration: none; }
.footer-brand-logo { margin-bottom: .65rem; }
.footer-brand-logo img { display: block; width: clamp(100px, 9vw, 132px); height: auto; }

.js .reveal-item { opacity: 0; transform: translateY(23px); transition: opacity .65s ease, transform .65s ease; }.js .reveal-item.is-visible { opacity: 1; transform: none; }

@media (max-width: 1100px) { .nav-list { gap: 1.2rem; }.hero-copy { width: 72%; }.hero-art { right: -8%; width: 48%; }.service-row { grid-template-columns: 42px 1.1fr .9fr 30px; gap: 1.3rem; }.article-card > a { padding: 1.55rem; }.case-grid { gap-inline: 4%; } }

@media (max-width: 991px) {
  :root { --shell: min(100% - 3rem, 760px); }
  .site-nav { position: relative; min-height: 62px; padding-left: 1rem; }.menu-toggle { display: block; }.nav-panel { position: absolute; top: calc(100% + .6rem); right: -1px; left: -1px; display: none; max-height: calc(100svh - 110px); overflow-y: auto; padding: .75rem; border: 1px solid rgba(17,17,15,.1); background: rgba(245,243,237,.98); box-shadow: 0 16px 40px rgba(17,17,15,.1); }.nav-panel.is-open { display: block; }.nav-list { display: flex; flex-direction: column; align-items: stretch; gap: 0; }.nav-list a { display: flex; min-height: 53px; padding-inline: .6rem; border-bottom: 1px solid var(--line); font-size: .96rem; }.nav-list a:not(.nav-contact)::after { display: none; }.nav-list .nav-contact { justify-content: space-between; margin-top: .8rem; border: 1px solid var(--ink); }
  .hero { min-height: max(860px, 100svh); }.hero-shell { align-items: start; padding-top: 11rem; }.hero-copy { width: 90%; }.hero h1 { font-size: clamp(5.4rem, 12vw, 8rem); }.hero-art { top: 54%; right: -3%; width: 62%; height: 38%; }.hero-intro { max-width: 540px; }.hero-bottom { bottom: 1.8rem; }
  .section-heading { align-items: start; flex-direction: column; gap: 1.5rem; }.section-aside { max-width: 460px; }.case-grid { gap: 5rem 5%; }.case-card-offset, .case-card-large:last-child { margin-top: 4.5rem; }.case-meta { flex-direction: column; gap: .35rem; }.about h2 { margin-top: 1rem; }.portrait-frame { max-width: 610px; }.article-grid { grid-template-columns: 1fr; gap: 1rem; }.article-card, .article-card > a { min-height: 340px; }.article-category { margin-top: 1.7rem; }.article-card h3 { max-width: 520px; }.faq-preview { padding-top: 1rem; }
}

@media (max-width: 600px) {
  :root { --shell: calc(100% - 2.4rem); }.site-header { top: .65rem; }.site-nav { width: calc(100% - 1rem); }.brand { font-size: .8rem; }.brand span:first-child { font-size: 1.22rem; }
  .brand-logo { min-height: 46px; }.brand-logo img { width: 68px; }
  .hero { min-height: max(760px, 100svh); }.hero-shell { padding-top: 9.8rem; }.hero-copy { width: 100%; }.eyebrow { margin-bottom: 2rem; font-size: .61rem; }.hero h1 { font-size: clamp(4.45rem, 15vw, 6.4rem); }.hero-intro { max-width: 95%; font-size: .99rem; }.hero-art { top: 59%; right: -12%; width: 79%; height: 30%; }.art-note { padding: .6rem .7rem; font-size: .57rem; }.window-code { padding: .9rem; font-size: .54rem; }.window-bar { height: 37px; }.hero-bottom { right: auto; bottom: 1.3rem; flex-direction: column; gap: .55rem; font-size: .64rem; }.hero-bottom a { display: none; }
  .section-space { padding-block: 6.8rem; }.statement { font-size: clamp(3rem, 11vw, 4.6rem); }.lead-copy { margin-top: 1.7rem; }.section-heading h2, .faq-preview h2 { font-size: clamp(3rem, 10.5vw, 4.3rem); }.service-list { margin-top: 3.3rem; }.service-row { min-height: 152px; grid-template-columns: 35px 1fr 25px; gap: .8rem; padding-block: 1.3rem; }.service-row > p { grid-column: 2 / 4; font-size: .8rem; }.service-title h3 { font-size: 1.43rem; }.service-arrow { grid-column: 3; grid-row: 1; }.services-note { text-align: left; }
  .cases-heading { margin-bottom: 3rem; }.case-grid { grid-template-columns: 1fr; gap: 3.8rem; }.case-card-offset, .case-card-large:last-child { margin-top: 0; }.case-card-offset .case-image img, .case-image img { aspect-ratio: 1.33; }.case-meta { flex-direction: row; flex-wrap: wrap; font-size: .56rem; }.case-card h3 { font-size: 2rem; }.portrait-frame > img { aspect-ratio: .86; }.about h2 { font-size: 3.45rem; }.article-grid { margin-top: 3rem; }.faq-list summary { font-size: .87rem; }.contact h2 { font-size: clamp(4.1rem, 14.5vw, 6rem); }.contact-bottom { align-items: stretch; flex-direction: column; }.contact-button { min-width: 0; padding-inline: 1rem; font-size: .78rem; }.footer-brand { font-size: clamp(2.35rem, 9.5vw, 4.5rem); }.footer-columns { grid-template-columns: 1fr 1fr; gap: 2.5rem 1rem; }.footer-columns > div:first-child { grid-column: 1 / -1; }.footer-columns a, .footer-placeholder { max-width: 100%; overflow-wrap: anywhere; font-size: .72rem; }.footer-bottom { align-items: start; flex-direction: column; gap: .75rem; }
}

@media (max-width: 370px) { .hero h1 { font-size: 4.15rem; }.hero-art { top: 62%; }.brand { gap: .2rem; font-size: .73rem; }.footer-brand { font-size: 2.15rem; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }.js .reveal-item { opacity: 1; transform: none; } }
