:root {
  --paper: #FAF3E0;
  --red: #9B2226;
  --orange: #CA6702;
  --teal: #005F73;
  --ink: #123b43;
  --sans: Arial, Helvetica, sans-serif;
  --serif: Georgia, "Times New Roman", serif;
  --mono: "Courier New", Courier, monospace;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
::selection { background: var(--red); color: var(--paper); }
.site-shell { min-height: 100vh; background: var(--paper); }
.side-rail { position: fixed; inset: 0 auto 0 0; z-index: 20; width: 30.5%; max-width: 440px; min-width: 350px; display: flex; flex-direction: column; padding: clamp(26px,4vw,62px) clamp(25px,4.2vw,68px); background: var(--teal); color: var(--paper); }
.brand-mark { display: flex; align-items: center; gap: 15px; text-decoration: none; color: inherit; }
.brand-symbol { position: relative; width: 37px; height: 37px; border: 1px solid rgba(250,243,224,.8); transform: rotate(45deg); flex: 0 0 auto; }
.brand-symbol::before,.brand-symbol::after { content:""; position:absolute; width:9px; height:9px; background:var(--orange); }
.brand-symbol::before { top:6px; left:6px; }.brand-symbol::after { right:6px; bottom:6px; }
.brand-name { display:block; font-size:11px; font-weight:700; letter-spacing:.14em; line-height:1.5; }
.brand-sub { display:block; margin-top:4px; color:rgba(250,243,224,.64); font:9px var(--mono); letter-spacing:.16em; }
.rail-story { max-width:370px; margin:auto 0; padding:8vh 0 7vh; }
.rail-kicker,.eyebrow,.rail-caption,.chapter-index,.footer-mark,.visual-label,.service-tag,.address-note { font:10px var(--mono); text-transform:uppercase; letter-spacing:.12em; }
.rail-kicker { display:flex; align-items:center; gap:12px; color:#edaa64; }
.rail-kicker::before { content:""; width:25px; height:1px; background:currentColor; }
.rail-story h2 { font:500 clamp(36px,4vw,59px)/1.04 var(--serif); letter-spacing:-.035em; margin:24px 0 18px; }
.rail-story h2 em { color:#edaa64; }
.rail-story p { max-width:320px; color:rgba(250,243,224,.72); font-size:13px; line-height:1.8; margin:0; }
.rail-caption { color:rgba(250,243,224,.5); margin:0 0 12px 2px; }
.nav-list { display:grid; gap:2px; }
.nav-item { width:100%; min-height:43px; padding:0 4px; border:0; border-bottom:1px solid rgba(250,243,224,.13); display:grid; grid-template-columns:28px 16px 1fr 16px; align-items:center; gap:10px; color:rgba(250,243,224,.68); background:transparent; text-align:left; text-decoration:none; cursor:pointer; transition:color .2s ease,padding .2s ease; }
.nav-item:hover,.nav-item[aria-current="page"] { color:var(--paper); padding-left:9px; }
.nav-item svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; }
.nav-item:first-child svg path { fill:currentColor; stroke:none; opacity:.86; }
.nav-index { font:10px var(--mono); color:#edaa64; }
.nav-arrow { opacity:0; transform:translateX(-4px); transition:transform .2s ease,opacity .2s ease; font-size:19px; line-height:1; }
.nav-item[aria-current="page"] .nav-arrow,.nav-item:hover .nav-arrow { opacity:1; transform:translateX(0); }
.rail-bottom { padding-top:22px; border-top:1px solid rgba(250,243,224,.2); }
.rail-contact-label { color:rgba(250,243,224,.54); font:10px var(--mono); text-transform:uppercase; letter-spacing:.13em; margin-bottom:9px; }
.rail-email { display:inline-block; color:var(--paper); text-decoration:none; font-size:13px; }
.rail-email:hover { color:#edaa64; }
.rail-location { margin-top:18px; color:rgba(250,243,224,.57); font:10px/1.6 var(--mono); letter-spacing:.08em; }
.story-pane { margin-left:min(30.5%,440px); min-height:100vh; }
.chapter { position:relative; min-height:100vh; padding:clamp(28px,4.2vw,64px) clamp(28px,7vw,112px) clamp(52px,8vw,112px); display:flex; flex-direction:column; overflow:hidden; scroll-margin-top:0; border-bottom:1px solid rgba(0,95,115,.2); }
.chapter-inner { width:100%; max-width:1060px; margin:0 auto; position:relative; z-index:1; }
.chapter-topline { display:flex; align-items:center; justify-content:space-between; padding-bottom:18px; border-bottom:1px solid rgba(0,95,115,.22); gap:14px; }
.eyebrow { color:var(--red); display:inline-flex; align-items:center; gap:10px; }
.eyebrow::before { content:""; width:20px; height:1px; background:currentColor; flex:0 0 auto; }
.chapter-index { color:rgba(0,95,115,.58); white-space:nowrap; }
.chapter-heading { max-width:800px; margin:clamp(44px,8vh,88px) 0 30px; }
.chapter-heading h1 { color:var(--ink); font:500 clamp(48px,6.1vw,91px)/.98 var(--serif); letter-spacing:-.052em; margin:20px 0 24px; }
.chapter-heading h1 em { color:var(--red); font-weight:500; }
.chapter-heading p { max-width:590px; margin:0; color:#49636a; font-size:clamp(14px,1.28vw,17px); line-height:1.8; }
.overview-chapter { background:var(--paper); }
.overview-main { min-height:56vh; display:grid; grid-template-columns:minmax(260px,.82fr) minmax(270px,1.18fr); align-items:center; gap:3vw; }
.overview-main .chapter-heading { margin:0; padding:clamp(36px,6vh,70px) 0 30px; }
.overview-main .chapter-heading h1 { font-size:clamp(54px,7.2vw,104px); }
.action-row { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.chapter-action { display:inline-flex; align-items:center; gap:13px; margin-top:28px; padding:14px 17px; color:var(--paper); background:var(--red); text-decoration:none; font-size:12px; font-weight:600; transition:gap .2s ease,background .2s ease; }
.chapter-action:hover { gap:19px; background:#7e191d; }
.chapter-action.secondary-action { margin-left:16px; background:transparent; color:var(--ink); border-bottom:1px solid var(--orange); padding-inline:2px; }
.chapter-action.secondary-action:hover { color:var(--red); }
.intro-note { display:grid; grid-template-columns:1fr 1.2fr; gap:30px; border-top:1px solid rgba(0,95,115,.25); padding:24px 0 4px; }
.note-label { color:var(--orange); font:10px var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.intro-note p { margin:0; max-width:540px; color:#294d54; font:500 clamp(16px,1.55vw,20px)/1.65 var(--serif); }
.story-art { min-height:390px; position:relative; display:grid; place-items:center; overflow:hidden; }
.visual-label { position:absolute; right:0; bottom:14px; color:rgba(0,95,115,.65); font-size:9px; }
.art-home { min-height:500px; }
.art-home::before { content:""; position:absolute; width:72%; aspect-ratio:1; border:1px solid rgba(0,95,115,.38); border-radius:50%; transform:scaleY(.58) rotate(-28deg); animation:orbit 26s linear infinite; }
.art-home::after { content:""; position:absolute; width:61%; aspect-ratio:1; border:1px dashed rgba(155,34,38,.56); border-radius:50%; transform:scaleY(.76) rotate(33deg); }
.home-slab { position:absolute; width:40%; aspect-ratio:.84; left:31%; top:24%; background:var(--teal); transform:rotate(36deg); }
.home-slab::after { content:""; position:absolute; inset:14%; border:1px solid rgba(250,243,224,.53); }
.home-disc { position:absolute; width:17%; aspect-ratio:1; border-radius:50%; background:var(--orange); right:11%; top:17%; animation:float 5s ease-in-out infinite; }
.home-square { position:absolute; width:15%; aspect-ratio:1; background:var(--red); bottom:14%; left:13%; transform:rotate(45deg); }
.art-about { background:#eee1c3; min-height:260px; margin-top:12px; }
.art-about::before { content:""; position:absolute; width:64%; height:64%; border:1px solid var(--teal); transform:rotate(-12deg); }
.about-arch { position:absolute; height:74%; width:30%; bottom:0; border:1px solid var(--red); border-bottom:0; border-radius:50% 50% 0 0; }
.about-arch::before { content:""; position:absolute; inset:14% 15% 0; border:1px solid var(--orange); border-bottom:0; border-radius:50% 50% 0 0; }
.about-mark { position:absolute; width:21px; height:21px; background:var(--teal); top:18%; right:20%; transform:rotate(45deg); }
.art-services { min-height:210px; }
.service-orbit { position:absolute; width:52%; height:42%; border:1px solid rgba(0,95,115,.48); border-radius:50%; transform:rotate(-22deg); }
.service-orbit:nth-child(2) { transform:rotate(60deg); width:41%; height:62%; border-color:rgba(202,103,2,.75); }
.service-orbit:nth-child(3) { transform:rotate(15deg); width:64%; height:28%; border-color:rgba(155,34,38,.65); }
.service-node { position:absolute; width:15px; height:15px; background:var(--red); left:28%; top:31%; border-radius:50%; box-shadow:0 0 0 9px rgba(155,34,38,.12); }
.service-node.two { background:var(--orange); left:68%; top:55%; }
.service-core { position:absolute; width:70px; height:70px; border:1px solid var(--teal); transform:rotate(45deg); }
.service-core::after { content:""; position:absolute; inset:13px; background:var(--teal); }
.art-approach { min-height:300px; background:var(--teal); color:var(--paper); }
.approach-loop { position:absolute; width:64%; aspect-ratio:1; border:1px solid rgba(250,243,224,.58); border-radius:50%; }
.approach-loop::before,.approach-loop::after { content:""; position:absolute; border:1px solid rgba(202,103,2,.8); border-radius:50%; }
.approach-loop::before { inset:16%; }.approach-loop::after { inset:32%; border-color:rgba(250,243,224,.48); }
.approach-center { position:absolute; width:18%; aspect-ratio:1; background:var(--red); transform:rotate(45deg); }
.approach-center::after { content:""; position:absolute; inset:22%; border:1px solid rgba(250,243,224,.8); }
.approach-point { position:absolute; width:11px; height:11px; background:var(--orange); border-radius:50%; top:18%; left:48%; }
.approach-caption { right:20px; bottom:18px; color:rgba(250,243,224,.72); }
.art-contact { min-height:260px; margin-top:15px; border:1px solid rgba(0,95,115,.28); }
.contact-rings { position:absolute; width:70%; aspect-ratio:1; border:1px solid rgba(0,95,115,.42); border-radius:50%; }
.contact-rings::before,.contact-rings::after { content:""; position:absolute; inset:14%; border:1px solid rgba(202,103,2,.75); border-radius:50%; }
.contact-rings::after { inset:30%; border-color:rgba(155,34,38,.75); }
.contact-origin { position:absolute; width:16px; height:16px; border-radius:50%; background:var(--red); top:22%; right:27%; }
.about-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(28px,7vw,100px); align-items:start; }
.about-stamp { border-left:2px solid var(--orange); padding:11px 0 11px 19px; color:#49636a; font-size:12px; line-height:1.7; }
.about-stamp strong { display:block; color:var(--red); font:500 21px/1.25 var(--serif); margin-bottom:8px; }
.prose-copy { color:#405e64; font-size:14px; line-height:1.9; }
.prose-copy p { margin:0 0 18px; }
.statement { margin-top:30px; border-top:1px solid rgba(0,95,115,.32); border-bottom:1px solid rgba(0,95,115,.32); padding:24px 0; color:var(--red); font:500 clamp(22px,2.7vw,34px)/1.35 var(--serif); letter-spacing:-.025em; }
.services-intro,.approach-intro { display:grid; grid-template-columns:1fr .55fr; gap:35px; align-items:end; }
.services-intro .chapter-heading,.approach-intro .chapter-heading { margin-bottom:30px; }
.service-list { border-top:1px solid rgba(0,95,115,.32); margin-top:4px; }
.service-row { display:grid; grid-template-columns:55px minmax(0,1fr) 150px; align-items:start; gap:18px; border-bottom:1px solid rgba(0,95,115,.28); padding:23px 0; }
.service-no { color:var(--orange); font:11px var(--mono); padding-top:6px; }
.service-row h2 { color:var(--ink); font:500 23px/1.2 var(--serif); letter-spacing:-.02em; margin:0 0 8px; }
.service-row p { color:#526a6f; font-size:13px; line-height:1.7; margin:0; max-width:440px; }
.service-tag { justify-self:end; color:var(--teal); border:1px solid rgba(0,95,115,.35); padding:8px 9px; font-size:8px; white-space:nowrap; }
.approach-grid { display:grid; grid-template-columns:.65fr 1.35fr; gap:clamp(30px,6vw,82px); margin:14px 0 20px; }
.approach-rail { border-left:1px solid rgba(0,95,115,.4); padding-left:27px; display:grid; gap:24px; }
.approach-step { position:relative; }
.approach-step::before { content:""; position:absolute; left:-33px; top:5px; width:10px; height:10px; background:var(--red); border-radius:50%; box-shadow:0 0 0 4px var(--paper),0 0 0 5px rgba(0,95,115,.32); }
.approach-step h2 { margin:0 0 7px; color:var(--ink); font:500 21px var(--serif); }
.approach-step p { margin:0; max-width:530px; color:#526a6f; font-size:13px; line-height:1.75; }
.contact-layout { display:grid; grid-template-columns:1fr 1fr; gap:clamp(25px,5vw,68px); align-items:stretch; }
.contact-card { position:relative; overflow:hidden; padding:clamp(25px,4vw,46px); background:var(--red); color:var(--paper); }
.contact-card::after { content:""; position:absolute; width:210px; height:210px; border:1px solid rgba(250,243,224,.35); border-radius:50%; right:-100px; bottom:-115px; box-shadow:0 0 0 24px rgba(250,243,224,.06),0 0 0 49px rgba(250,243,224,.05); }
.contact-card h2 { margin:0 0 14px; font:500 30px var(--serif); }
.contact-card p { max-width:400px; margin:0 0 25px; color:rgba(250,243,224,.78); font-size:13px; line-height:1.8; }
.contact-email { display:inline-flex; align-items:center; gap:10px; position:relative; z-index:1; color:var(--paper); text-decoration:none; font-size:14px; border-bottom:1px solid rgba(250,243,224,.65); padding-bottom:8px; }
.contact-email:hover { color:#f4c58c; border-color:#f4c58c; }
.address-block { padding-top:9px; }
.address-block h2 { margin:0 0 18px; color:var(--orange); font:10px var(--mono); letter-spacing:.15em; text-transform:uppercase; }
.address-block address { color:#405e64; font-style:normal; font-size:13px; line-height:1.95; }
.address-note { margin-top:22px; padding-top:14px; border-top:1px solid rgba(0,95,115,.28); color:rgba(0,95,115,.68); font-size:8px; }
.site-footer { border-top:1px solid rgba(0,95,115,.24); margin-top:48px; padding:22px 0 0; display:flex; justify-content:space-between; gap:20px; color:#60777a; font-size:10px; letter-spacing:.035em; }
.footer-mark { color:var(--red); font-size:9px; }
.chapter { animation:chapter-in .7s both; }
@keyframes orbit { to { transform:scaleY(.58) rotate(332deg); } }
@keyframes float { 50% { transform:translateY(-12px); } }
@keyframes chapter-in { from { opacity:.86; } to { opacity:1; } }
@media (max-width:1050px) {
  .side-rail { width:34%; min-width:300px; padding-inline:30px; }
  .story-pane { margin-left:34%; }
  .chapter { padding-inline:42px; }
  .overview-main { grid-template-columns:1fr; }
  .overview-main .chapter-heading { padding-bottom:0; }
  .art-home { min-height:350px; }
}
@media (max-width:760px) {
  .side-rail { position:sticky; inset:0 0 auto; width:100%; min-width:0; max-width:none; padding:12px 18px 9px; }
  .brand-mark { gap:10px; }.brand-symbol { width:28px; height:28px; }
  .brand-symbol::before,.brand-symbol::after { width:6px; height:6px; }
  .brand-symbol::before { top:4px; left:4px; }.brand-symbol::after { right:4px; bottom:4px; }
  .brand-name { font-size:9px; }.brand-sub { font-size:7px; margin-top:1px; }
  .rail-story,.rail-caption,.rail-bottom { display:none; }
  .nav-list { display:flex; gap:3px; overflow-x:auto; margin:9px -18px 0; padding:0 18px; scrollbar-width:none; }
  .nav-list::-webkit-scrollbar { display:none; }
  .nav-item { width:auto; min-height:34px; flex:0 0 auto; padding:0 7px; display:flex; gap:6px; font-size:10px; border:0; }
  .nav-item:hover,.nav-item[aria-current="page"] { padding-left:7px; color:#f4c58c; }
  .nav-item svg { width:13px; height:13px; }.nav-index { font-size:8px; }.nav-arrow { display:none; }
  .story-pane { margin-left:0; }
  .chapter { min-height:calc(100vh - 92px); padding:24px 22px 46px; scroll-margin-top:92px; }
  .chapter-topline { padding-bottom:13px; }.chapter-index { font-size:8px; }
  .overview-main { min-height:auto; gap:5px; }
  .overview-main .chapter-heading { padding:45px 0 18px; }
  .overview-main .chapter-heading h1 { font-size:clamp(53px,14vw,76px); }
  .chapter-heading { margin:45px 0 24px; }.chapter-heading h1 { font-size:clamp(46px,12vw,68px); }
  .chapter-heading p { font-size:14px; }.art-home { min-height:320px; }.story-art { min-height:240px; }
  .art-about { min-height:190px; }.art-services { min-height:170px; }.art-approach { min-height:240px; }.art-contact { min-height:205px; }
  .intro-note { grid-template-columns:1fr; gap:12px; padding:19px 0 0; }.intro-note p { font-size:17px; }
  .about-layout,.approach-grid,.contact-layout { grid-template-columns:1fr; gap:26px; }
  .services-intro,.approach-intro { grid-template-columns:1fr; gap:4px; }
  .services-intro .chapter-heading,.approach-intro .chapter-heading { margin-bottom:8px; }
  .service-row { grid-template-columns:35px 1fr; gap:10px; padding:19px 0; }
  .service-row h2 { font-size:20px; }.service-tag { grid-column:2; justify-self:start; }
  .approach-rail { gap:21px; }.contact-layout { gap:30px; }.contact-card { padding:27px 23px; }
  .site-footer { flex-direction:column; gap:8px; padding-top:18px; font-size:9px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}
