:root{
  --ink:#0A0E13; --ink-rgb:10,14,19; --ink-raise:#111820;
  --paper:#ECE8DF; --paper-dim:#9BA3AC;
  --brass:#B4924F; --accent-rgb:180,146,79;
  --rule:#1C242E; --fine:#5F6873;
  --gut:clamp(20px,5vw,64px); --nav-h:78px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--paper);
  font-family:'Inter Tight',system-ui,sans-serif;font-weight:300;
  font-size:clamp(15px,1.05vw,17px);line-height:1.75;-webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;min-height:100svh}
h1,h2,h3{font-family:'Newsreader',Georgia,serif;font-weight:300;line-height:1.14;letter-spacing:-.015em;margin:0}
a{color:inherit;text-decoration:none}
:focus-visible{outline:1px solid var(--brass);outline-offset:5px}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--brass);margin:0}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;height:var(--nav-h);z-index:50;
  display:flex;align-items:center;justify-content:space-between;padding:0 var(--gut);
  background:transparent;border-bottom:1px solid transparent;transition:background .45s,border-color .45s}
.nav.solid{background:rgba(var(--ink-rgb),.94);backdrop-filter:blur(9px);border-bottom-color:var(--rule)}
.mark{display:flex;align-items:baseline;gap:11px}
.mark .cb{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.16em;
  color:var(--brass);border:1px solid var(--brass);padding:4px 6px;line-height:1}
.mark .name{font-family:'Newsreader',serif;font-size:19px;letter-spacing:.02em}
body[data-home="1"] .nav:not(.solid) .mark .name,
body[data-home="1"] .nav:not(.solid) .links a{color:#F4F1EA;text-shadow:0 1px 12px rgba(0,0,0,.55)}
body[data-home="1"] footer.on-photo .fine,
body[data-home="1"] footer.on-photo nav a{color:#E4E0D8;text-shadow:0 1px 12px rgba(0,0,0,.6)}
.mark .llc{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.2em;color:var(--paper-dim)}
.links{display:flex;gap:32px;align-items:center}
.links a{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);
  padding-bottom:3px;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}
.links a:hover{color:var(--paper)}
.links a.here{color:var(--paper);border-bottom-color:var(--brass)}
.links a.contact-btn{border:1px solid var(--brass);color:var(--brass);padding:10px 18px;
  border-bottom-color:var(--brass);transition:background .3s,color .3s}
.links a.contact-btn:hover{background:var(--brass);color:var(--ink)}
.menu{display:none;background:none;border:0;color:var(--paper);font:inherit;font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;cursor:pointer;padding:8px 0}

/* home hero */
.home{position:relative;flex:1;display:flex;min-height:100svh;overflow:hidden}
.hero-photo{position:absolute;inset:0;z-index:0;background-image:url('hero.jpg');
  background-size:cover;background-position:center 55%;
  /* near-natural: let the room's own daylight carry it */
  filter:saturate(.82) contrast(1.02) brightness(.88);transform:scale(1.02)}
#field{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1;opacity:0}
.home::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(var(--ink-rgb),.62) 0%,
    rgba(var(--ink-rgb),.20) 16%,
    rgba(var(--ink-rgb),0) 40%,
    rgba(var(--ink-rgb),0) 62%,
    rgba(var(--ink-rgb),.34) 86%,
    rgba(var(--ink-rgb),.72) 100%)}

/* interior page header */
.page-head{padding:calc(var(--nav-h) + clamp(70px,10vw,130px)) var(--gut) clamp(40px,6vw,70px);
  border-bottom:1px solid var(--rule)}
.page-head h1{font-size:clamp(34px,5.4vw,68px);max-width:17ch;margin-top:20px}
main{flex:1}
section{padding:clamp(64px,9vw,120px) var(--gut);border-bottom:1px solid var(--rule)}
.split{display:grid;grid-template-columns:minmax(0,.32fr) minmax(0,.68fr);gap:clamp(26px,6vw,90px)}
.lede{font-size:clamp(21px,2.3vw,31px);font-family:'Newsreader',serif;line-height:1.42;margin:0 0 26px;max-width:32ch}
.body-copy p{max-width:62ch;color:var(--paper-dim);margin:0 0 20px}
.body-copy p strong{color:var(--paper);font-weight:400}

.figures{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.fig{background:var(--ink);padding:clamp(24px,3.4vw,40px)}
.fig .n{font-family:'Newsreader',serif;font-size:clamp(30px,4.4vw,54px);line-height:1;display:block}
.fig .l{display:block;margin-top:12px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--paper-dim)}

.practice{border-top:1px solid var(--rule)}
.row{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1.35fr);gap:clamp(16px,4vw,52px);
  padding:30px 0;border-bottom:1px solid var(--rule);align-items:baseline;transition:background .3s}
.row:hover{background:rgba(var(--accent-rgb),.05)}
.row .k{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--brass);letter-spacing:.1em}
.row h3{font-size:clamp(19px,2vw,26px)}
.row p{margin:0;color:var(--paper-dim);font-size:.94em}

.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.pr{background:var(--ink-raise);padding:clamp(26px,3.2vw,42px)}
.pr h3{font-size:20px;margin-bottom:14px}
.pr p{margin:0;color:var(--paper-dim);font-size:.93em}

.panel{background:var(--ink-raise);border:1px solid var(--rule);padding:clamp(30px,4.5vw,60px)}
.cta{display:inline-flex;align-items:center;gap:14px;margin-top:26px;padding:15px 26px;
  border:1px solid var(--brass);color:var(--brass);font-family:'IBM Plex Mono',monospace;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;transition:background .3s,color .3s}
.cta:hover{background:var(--brass);color:var(--ink)}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,56px);margin-top:40px}
.contact-grid h3{font-size:17px;margin-bottom:10px}
.contact-grid p{margin:0;color:var(--paper-dim);font-size:.93em}
.contact-grid a:hover{color:var(--brass)}

/* legal pages */
.legal{max-width:78ch}
.legal h2{font-size:clamp(20px,2.2vw,27px);margin:44px 0 14px}
.legal h2:first-child{margin-top:0}
.legal p,.legal li{color:var(--paper-dim);max-width:72ch}
.legal ul{padding-left:20px}
.legal .updated{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--fine)}

/* footer */
footer{position:relative;z-index:3;border-top:1px solid var(--rule);
  padding:26px var(--gut);display:flex;flex-wrap:wrap;gap:16px;
  justify-content:space-between;align-items:center}
footer.on-photo{border-top:0;position:absolute;inset:auto 0 0 0}
footer .fine{font-size:12px;color:var(--paper-dim);margin:0}
footer nav{display:flex;gap:28px;flex-wrap:wrap}
footer nav a{font-size:12px;color:var(--paper-dim)}
footer nav a:hover{color:var(--paper)}
.disclaimer-strip{padding:0 var(--gut) 48px;font-size:11.5px;line-height:1.7;color:var(--fine);max-width:80ch}

@media (max-width:900px){
  .split,.principles,.contact-grid{grid-template-columns:1fr}
  .figures{grid-template-columns:repeat(2,1fr)}
  .row{grid-template-columns:32px 1fr;row-gap:8px}
  .row p{grid-column:2/-1}
  .links{position:fixed;top:var(--nav-h);left:0;right:0;flex-direction:column;align-items:flex-start;
    gap:0;background:rgba(var(--ink-rgb),.98);border-bottom:1px solid var(--rule);
    padding:0 var(--gut);max-height:0;overflow:hidden;transition:max-height .4s}
  .links.open{max-height:420px}
  .links a{width:100%;padding:17px 0;border-bottom:1px solid var(--rule)}
  .links a.contact-btn{border:0;border-bottom:1px solid var(--rule);color:var(--brass);padding:17px 0}
  .menu{display:block}
  footer{flex-direction:column;align-items:flex-start;gap:12px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
