/* Editorial direction, September 2026. Fonts are served from this plugin. */
@font-face { font-family:'LRCrea Editorial'; src:url('fonts/playfair-normal.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'LRCrea Editorial'; src:url('fonts/playfair-italic.woff2') format('woff2'); font-style:italic; font-weight:400; font-display:swap; }
:root { --lr-paper:#f5f3ed; --lr-ink:#20231f; --lr-muted:#bdbdb4; --lr-gutter:clamp(22px,5.5vw,100px); --lr-serif:'LRCrea Editorial',Georgia,serif; }
/* Quiet navigation, consistent across the site. */
.site-header,.site-header.is-sticky { background:rgb(245 243 237 / .97); border-color:#d9dbd1; backdrop-filter:blur(16px); color:var(--lr-ink); }
.site-header > div { max-width:1660px; height:96px; }
.site-header > div > div:first-child img { width:128px; content:url('logo-lrcrea-light.svg'); }
.site-header > div > nav { height:96px; }
.site-header > div > nav > a, .site-header > div > nav > div > a { color:#52584e; font-weight:500; font-size:12px; }
.site-header > div > nav [aria-current=page] { color:var(--lr-ink); text-decoration:underline; text-decoration-color:var(--lr-accent); text-decoration-thickness:2px; text-underline-offset:8px; }
.site-header > div > nav > a:hover, .site-header > div > nav > div > a:hover { color:var(--lr-ink); }
.site-header > div > a { border:0; border-bottom:1px solid #9b9f93; border-radius:0; padding:8px 0; font-size:11px; letter-spacing:.01em; color:var(--lr-ink); background:transparent; }
.site-header > div > a:hover { background:transparent; border-color:var(--lr-ink); }
.site-header [data-menu-button] { color:var(--lr-ink); background:transparent; border:1px solid #d2d5c9; }
.site-header #services-mega-menu { top:80px; }
.site-header #services-mega-menu > div { border-radius:0; box-shadow:0 16px 40px #11101320; }
.site-header [data-mobile-menu] { top:96px; }
/* An editorial cover: generous type, paper, photography, restrained color. */
.home-agency { background:#20231f; }
.home-agency .home-hero { background:var(--lr-paper); color:var(--lr-ink); padding-top:clamp(156px,13vw,208px); padding-bottom:92px; }
.home-hero > .relative.mx-auto { grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); gap:clamp(48px,6.5vw,104px); max-width:1440px; }
.home-hero h1 { color:var(--lr-ink); font-weight:400; font-size:clamp(60px,6.7vw,108px); line-height:1.02; letter-spacing:-.068em; max-width:10.7ch; }
.home-hero .home-outline { font-family:var(--lr-serif); font-style:italic; font-weight:400; color:var(--lr-ink); letter-spacing:-.075em; background:linear-gradient(var(--lr-accent),var(--lr-accent)) 0 95% / 100% .08em no-repeat; }
.home-hero .home-kicker { color:#646c5b; font-size:10px; letter-spacing:.19em; max-width:none; }
.home-hero .home-kicker::before { content:''; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--lr-accent); margin-right:9px; }
.home-hero-copy > p:not(.home-kicker) { color:#666c60; font-size:16px; line-height:1.85; max-width:44ch; margin-top:32px; }
.home-hero-copy > div { margin-top:34px; gap:24px; }
.home-button { border-radius:0; font-weight:500; font-size:12px; min-height:52px; padding:15px 23px; }
.home-hero .home-button-primary { background:var(--lr-accent); color:var(--lr-ink); border:1px solid var(--lr-accent); }
.home-hero .home-button-primary:hover { background:var(--lr-ink); color:var(--lr-paper); border-color:var(--lr-ink); }
.home-hero .home-button-ghost { color:var(--lr-ink); border:0; border-bottom:1px solid #b2b6a7; padding-inline:0; background:transparent; }
.home-hero .home-button-ghost:hover { border-color:var(--lr-ink); }
.home-grid,.home-glow { display:none; }
.home-hero-stage { max-width:580px; gap:24px 18px; padding-bottom:64px; }
.home-hero-card { border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; display:flex; flex-direction:column; aspect-ratio:auto; }
.home-hero-card img { height:auto; aspect-ratio:1.62; object-fit:cover; border-radius:0; }
.home-hero-card-one img { aspect-ratio:1.55; }
.home-hero-card span { position:static; padding:10px 0 0; background:transparent; color:#62685a; font-size:9px; font-weight:500; letter-spacing:.13em; border-radius:0; }
.home-orbit-label { gap:10px; }
.home-orbit-label strong { font-family:var(--lr-serif); color:var(--lr-ink); font-size:28px; font-weight:400; }
.home-orbit-label span { color:#62685a; font-size:9px; font-weight:500; }
.lr-motion-toggle { color:#62685a; border:0; border-bottom:1px solid #b2b6a7; border-radius:0; font-size:10px; padding-inline:0; }
.lr-motion-toggle:hover { color:var(--lr-ink); border-color:var(--lr-ink); }
.home-scroll-cue { color:#62685a; font-weight:500; letter-spacing:.16em; }
.home-scroll-cue i { border-color:#c8ccbf; }
#app :is(.home-hero,.home-cta,.site-header) :is(a,button):focus-visible { outline-color:var(--lr-ink); }
#app .site-header :is(#services-mega-menu,[data-mobile-menu]) :is(a,button,summary):focus-visible { outline-color:var(--lr-accent); }
.home-ticker { background:var(--lr-paper); color:#646c5b; border-color:#d9dbd1; padding-block:28px; }
.home-ticker i { font-size:9px; color:#566914; }
.home-ticker span { font-size:10px; letter-spacing:.2em; }
/* Typography and rhythm continue through the entire journey. */
.home-agency > section:not(.home-hero):not(:last-child) { padding-block:clamp(88px,9.5vw,152px); }
.home-agency > section.bg-\[\#f1f0e9\] { background:var(--lr-paper); color:var(--lr-ink); }
.home-agency h2 { font-weight:400; font-size:clamp(38px,4.5vw,68px); line-height:1.12; letter-spacing:-.055em; }
.home-agency #vision h2 { font-size:clamp(34px,3.65vw,56px); font-weight:400; line-height:1.18; }
.home-underline { background:linear-gradient(var(--lr-accent),var(--lr-accent)) 0 98% / 100% .06em no-repeat; font-family:var(--lr-serif); font-style:italic; font-weight:400; color:var(--lr-ink); }
.home-agency #vision .grid p { color:#62685a; font-size:15px; line-height:1.9; }
.home-kicker { color:var(--lr-accent); font-size:10px; font-weight:500; letter-spacing:.19em; }
.home-agency .text-night\/42 { color:#62685a; font-size:10px; font-weight:500; letter-spacing:.17em; }
.home-services { margin-top:64px; }
.home-service { padding-block:36px; border-color:#ffffff26; }
.home-service h3 { font-weight:400; font-size:clamp(24px,2.1vw,32px); }
.home-service > span:first-child,.home-step > span:first-child { color:var(--lr-accent); font-size:11px; font-weight:400; }
.home-service-arrow { border:0; background:transparent; color:var(--lr-accent); }
.home-service:hover .home-service-arrow { background:transparent; color:#f5f3ed; transform:translate(3px,-3px); }
.home-projects { margin-top:64px; gap:76px 56px; }
.home-project:nth-child(even) { margin-top:112px; }
.home-project-visual { padding:0; border-radius:0; aspect-ratio:1.38; background:#e5e6de; }
.home-project-visual img { border-radius:0; }
.home-project h3 { font-size:25px; font-weight:400; letter-spacing:-.035em; }
.home-project-open { border-radius:0; width:44px; height:44px; top:18px; right:18px; opacity:0; background:var(--lr-paper); box-shadow:none; }
.home-project:hover .home-project-open,.home-project a:focus-visible .home-project-open { opacity:1; }
.home-project a > div:last-child { border-top:1px solid #d2d5c9; padding-top:16px; margin-top:20px; flex-direction:column; gap:4px; }
.home-project p { text-align:left; }
.home-step h3 { font-weight:400; }
.home-step:hover { background:transparent; }
.home-agency > section:last-child { padding:0 var(--lr-gutter) 88px; }
.home-cta { background:var(--lr-paper); color:var(--lr-ink); border-radius:0; border-top:4px solid var(--lr-accent); padding-block:104px; }
.home-cta-grid { display:none; }
.home-cta h2 { font-family:var(--lr-serif); font-weight:400; font-size:clamp(42px,5.3vw,80px); line-height:1.14; letter-spacing:-.05em; }
.home-cta p { color:#646c5b; font-size:10px; letter-spacing:.17em; font-weight:500; }
.home-cta .home-button { background:var(--lr-accent); color:var(--lr-ink); }
.home-cta .home-button:hover { background:var(--lr-ink); color:var(--lr-paper); }
/* Service, agency, and portfolio pages share the refined type and flatter imagery. */
#app :is(.service-page,.work-page) h1 { font-weight:400; line-height:1.08; letter-spacing:-.055em; }
#app :is(.service-page,.work-page) h2 { font-weight:400; }
.service-page { background:var(--lr-paper); }
.service-page :is(.service-button-primary,.service-metric) { background:var(--lr-accent); color:#20231f; }
.service-hero { background:#20231f; }
.service-orbit,.service-watermark { display:none; }
.service-metric { clip-path:none; transform:none; box-shadow:none; }
.service-visual { border-radius:0; box-shadow:none; }
.service-button { border-radius:0; font-size:12px; font-weight:500; }
.service-page :is(.service-outcome,.service-deliverable-card,.service-use-case,.service-technology-card) { border-radius:0; box-shadow:none; }
.service-page :is(.service-outcome,.service-deliverable-card):hover { transform:translateY(-3px); box-shadow:none; }
.work-project-visual { padding:0; background:var(--lr-paper); }
.work-project-index { background:var(--lr-paper); color:var(--lr-ink); border-radius:0; backdrop-filter:none; }
.work-filter { border-radius:0; font-weight:500; min-height:44px; }
#app main:not(.home-agency) h1, #app section:has(.contact-form-panel) h1 { font-weight:400; letter-spacing:-.05em; }
#app section:has(.contact-form-panel) { background:#20231f; padding-top:156px; }
.contact-form-panel { border-radius:0; background:#252923; }
#app > footer { background:#20231f; padding-top:80px; }
.footer-menu a { color:#bdbdb4; font-size:13px; }
#app > footer .text-lime { color:var(--lr-accent); }
/* Keep movement gentle and let the photographs provide the visual interest. */
.home-hero-stage { transition-duration:900ms; }
@media (max-width:1279px) {
  .home-hero h1 { font-size:clamp(60px,6.6vw,84px); }
  .site-header [data-mobile-menu] > nav { border-radius:0; }
}
@media (max-width:900px) {
  .home-hero > .relative.mx-auto { grid-template-columns:1fr; gap:56px; }
  .home-hero h1 { max-width:12ch; font-size:clamp(58px,9.5vw,86px); }
  .home-hero-stage { max-width:640px; justify-self:center; }
}
@media (max-width:639px) {
  .site-header > div { height:80px; }
  .site-header > div > div:first-child img { width:116px; }
  .site-header [data-mobile-menu] { top:80px; }
  .home-agency .home-hero { padding-top:128px; padding-bottom:52px; }
  .home-hero h1 { font-size:clamp(45px,12vw,68px); line-height:1.08; max-width:10.8ch; letter-spacing:-.058em; }
  .home-hero .home-kicker { font-size:9px; letter-spacing:.11em; }
  .home-hero-copy > p:not(.home-kicker) { font-size:15px; line-height:1.85; margin-top:26px; }
  .home-hero-copy > div { gap:14px; margin-top:26px; }
  .home-hero .home-button { min-height:50px; }
  .home-hero .home-button-ghost { align-self:center; width:auto; }
  .home-hero-stage { gap:20px 12px; padding-bottom:58px; }
  .home-hero-card span { font-size:8px; letter-spacing:.07em; }
  .home-hero-card img { aspect-ratio:1.3; }
  .home-hero-card-one img { aspect-ratio:1.5; }
  .home-ticker { padding-block:22px; }
  .home-ticker span { font-size:9px; letter-spacing:.1em; }
  .home-agency > section:not(.home-hero):not(:last-child) { padding-block:80px; }
  .home-agency h2 { font-size:clamp(34px,8.4vw,46px); }
  .home-agency #vision h2 { font-size:clamp(30px,7.8vw,42px); }
  .home-services { margin-top:40px; }
  .home-service { padding-block:28px; }
  .home-service p { font-size:14px; }
  .home-projects { gap:44px; margin-top:40px; }
  .home-project:nth-child(even) { margin-top:0; }
  .home-project-open { opacity:1; width:36px; height:36px; top:12px; right:12px; }
  .home-project a > div:last-child { margin-top:16px; padding-top:14px; }
  .home-project h3 { font-size:24px; }
  .home-agency > section:last-child { padding-bottom:48px; }
  .home-cta { padding:64px 24px; }
  .home-cta h2 { font-size:clamp(36px,9vw,52px); }
  #app section:has(.contact-form-panel) { padding-top:132px; }
  #app > footer { padding-top:56px; }
}
