:root{
  --yard-dust:#DEC0C0;
  --cat-ink:#36361C;
  --blade-amber:#D67442;
  --pit-deep:#182256;
  --tread-slate:#443C46;
  --flag-mist:#ECD2D2;
  --hyd-teal:#4A8084;
  --cab-brass:#7E6224;
  --card-plum:#8C7784;
}

*{box-sizing:border-box;}

body{
  margin:0;
  font-size:16px;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  background:var(--yard-dust);
  color:var(--cat-ink);
  line-height:1.62;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  font-family:Georgia,"Times New Roman",serif;
  line-height:1.12;
  margin:0 0 0.5em;
  letter-spacing:-0.01em;
}

p{margin:0 0 1em;}
a{color:var(--pit-deep);}

/* ---------- CAT TRACK HEADER ---------- */
.cattrack{
  background:var(--pit-deep);
  padding:12px 24px 14px;
}
.cattrack-rail{
  max-width:1180px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.cattrack-brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--yard-dust);
  font-family:Georgia,"Times New Roman",serif;
  font-weight:bold;
  font-size:1.02rem;
  text-decoration:none;
  letter-spacing:0.04em;
  padding-right:8px;
}
.cattrack-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--cab-brass);
  display:inline-block;
  flex:none;
}
.cattrack-cleats{
  display:flex;
  align-items:stretch;
  gap:6px;
  flex:1;
  min-width:0;
}
.cattrack-cleat{
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--yard-dust);
  color:var(--cat-ink);
  text-decoration:none;
  font-size:0.86rem;
  font-weight:bold;
  letter-spacing:0.08em;
  text-transform:uppercase;
  border-left:5px solid var(--blade-amber);
  padding:9px 12px;
  transition:background 0.16s ease,color 0.16s ease;
}
.cattrack-cleat:hover,.cattrack-cleat:focus{
  background:var(--flag-mist);
  text-decoration:underline;
  text-decoration-color:var(--cab-brass);
  text-decoration-thickness:2px;
}
.cattrack-cleat-home{flex:1.1;}
.cattrack-cleat-wide{flex:1.9;}
.cattrack-cleat-mid{flex:1.4;}
.cattrack-cleat-thin{flex:0.9;}
.cattrack-cleat-tiny{flex:0.7;}
.cattrack-toggle{
  display:none;
  background:var(--blade-amber);
  color:var(--pit-deep);
  border:0;
  font-weight:bold;
  font-size:0.84rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  padding:9px 16px;
  cursor:pointer;
  font-family:inherit;
}
.cattrack-mobile{
  max-width:1180px;
  margin:10px auto 0;
}
.cattrack-mobile a{
  display:block;
  background:var(--yard-dust);
  color:var(--cat-ink);
  text-decoration:none;
  font-weight:bold;
  padding:10px 14px;
  margin-bottom:4px;
  border-left:5px solid var(--blade-amber);
}

/* ---------- SITE TRENCHER SCENE ---------- */
.sitetrencher{
  max-width:1180px;
  margin:0 auto;
  padding:64px 24px 0;
}
.sitetrencher-copy{
  max-width:760px;
  margin-bottom:34px;
}
.sitetrencher-eyebrow{
  font-size:0.8rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--hyd-teal);
  font-weight:bold;
  margin-bottom:14px;
}
.sitetrencher-head{
  font-size:clamp(2.4rem,6vw,4.4rem);
  margin-bottom:22px;
}
.sitetrencher-line{
  display:block;
}
.sitetrencher-word{
  display:inline-block;
  color:var(--blade-amber);
  font-style:italic;
  font-size:1.28em;
  padding-right:10px;
  border-bottom:6px solid var(--cat-ink);
  margin-top:6px;
}
.sitetrencher-lede{
  font-size:1.06rem;
  max-width:640px;
}
.sitetrencher-link{
  color:var(--blade-amber);
  font-weight:bold;
  text-decoration:none;
  border-bottom:2px solid var(--blade-amber);
  white-space:nowrap;
}
.sitetrencher-link:hover{
  color:var(--pit-deep);
  border-bottom-color:var(--cab-brass);
}

.sitetrencher-band{
  display:grid;
  grid-template-columns:1.15fr 1fr 0.85fr;
  gap:14px;
  align-items:stretch;
}
.sitetrencher-panel{
  position:relative;
  min-height:270px;
  background:var(--flag-mist);
  border:3px solid var(--tread-slate);
  padding:16px;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
}
.sitetrencher-caption{
  position:relative;
  z-index:3;
  margin:0;
  font-size:0.78rem;
  font-weight:bold;
  letter-spacing:0.05em;
  color:var(--tread-slate);
  background:var(--yard-dust);
  padding:4px 9px;
  border-left:4px solid var(--blade-amber);
}
.sitetrencher-within{
  background:var(--tread-slate);
}

/* cat track cleat motif */
.cattrack-track{
  position:absolute;
  left:14px;
  right:14px;
  top:26px;
  height:120px;
  background:var(--pit-deep);
  border-radius:26px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:9px;
  padding:12px 10px;
}
.cattrack-plate{
  display:block;
  height:9px;
  background:var(--tread-slate);
  border-left:14px solid var(--blade-amber);
  border-right:14px solid var(--blade-amber);
}
.cattrack-plate:nth-child(even){
  margin-left:18px;
  margin-right:18px;
}
.cattrack-plate:nth-child(3n){
  margin-left:34px;
  margin-right:0;
}

/* site trencher cutting a line */
.sitetrencher-rig{
  position:absolute;
  left:50%;
  top:18px;
  width:96px;
  height:170px;
  transform:translateX(-48%);
  z-index:2;
}
.sitetrencher-boom{
  position:absolute;
  left:36px;
  top:0;
  width:22px;
  height:104px;
  background:var(--blade-amber);
  border:3px solid var(--yard-dust);
  transform:rotate(9deg);
  transform-origin:top center;
}
.sitetrencher-chain{
  position:absolute;
  left:47px;
  top:96px;
  width:9px;
  height:64px;
  background:var(--yard-dust);
}
.sitetrencher-shoe{
  position:absolute;
  left:22px;
  top:154px;
  width:60px;
  height:12px;
  background:var(--hyd-teal);
  border:2px solid var(--yard-dust);
}
.sitetrencher-cutline{
  position:absolute;
  left:0;
  right:0;
  bottom:54px;
  height:4px;
  background:var(--yard-dust);
  border-top:3px dashed var(--blade-amber);
}

/* grading blade at angle */
.sitetrencher-blade{
  background:var(--hyd-teal);
}
.gradingblade-blade{
  position:absolute;
  left:16%;
  top:44px;
  width:66%;
  height:26px;
  background:var(--flag-mist);
  border:3px solid var(--pit-deep);
  transform:rotate(-13deg);
  transform-origin:left center;
}
.gradingblade-edge{
  position:absolute;
  left:0;
  bottom:-9px;
  width:100%;
  height:9px;
  background:var(--blade-amber);
}
.sitetrencher-blade .cutblade-blade{
  position:absolute;
  left:24%;
  top:118px;
  width:54%;
  height:14px;
  background:var(--pit-deep);
  transform:rotate(19deg);
  border-left:10px solid var(--blade-amber);
}

/* flag stakes on grade stakes + yard gate */
.sitetrencher-stake{
  position:absolute;
  left:18%;
  bottom:52px;
  width:5px;
  height:130px;
  background:var(--tread-slate);
}
.sitegate-scene .sitetrencher-stake:nth-of-type(1){left:12%;}
.sitegate-scene .sitetrencher-stake:nth-of-type(2){left:32%;}
.sitegate-scene .sitetrencher-stake:nth-of-type(3){left:52%;}
.sitetrencher-marker{
  position:absolute;
  left:5px;
  top:4px;
  width:34px;
  height:24px;
  background:var(--blade-amber);
  clip-path:polygon(0 0,100% 50%,0 100%);
}
.sitetrencher-gate{
  position:absolute;
  right:12px;
  bottom:44px;
  width:46%;
  height:96px;
  border:6px solid var(--pit-deep);
  border-bottom:none;
  background:var(--flag-mist);
  box-shadow:
    inset 14px 0 0 var(--tread-slate),
    inset 34px 0 0 var(--flag-mist),
    inset 54px 0 0 var(--tread-slate),
    inset 74px 0 0 var(--flag-mist),
    inset 94px 0 0 var(--tread-slate),
    inset 114px 0 0 var(--flag-mist),
    inset 134px 0 0 var(--tread-slate),
    inset 154px 0 0 var(--flag-mist),
    inset 174px 0 0 var(--tread-slate),
    inset 194px 0 0 var(--flag-mist),
    inset 214px 0 0 var(--tread-slate),
    inset 234px 0 0 var(--flag-mist),
    inset 254px 0 0 var(--tread-slate);
}

.sitetrencher-cta{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  background:var(--blade-amber);
  color:var(--pit-deep);
  text-decoration:none;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:bold;
  font-size:clamp(1rem,2vw,1.3rem);
  padding:22px 26px;
  border-top:4px solid var(--pit-deep);
  margin-top:2px;
}
.sitetrencher-cta:hover{
  background:var(--pit-deep);
  color:var(--yard-dust);
  text-decoration:underline;
  text-decoration-color:var(--cab-brass);
  text-decoration-thickness:3px;
}
.sitetrencher-cta-arrow{
  font-size:1.6em;
  line-height:1;
}

/* grade stakes and yard gate section */
.sitegate{
  max-width:1180px;
  margin:0 auto;
  padding:26px 24px 0;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:36px;
  align-items:center;
}
.sitegate-copy{
  max-width:560px;
}
.sitegate-head{
  font-size:clamp(1.6rem,3vw,2.2rem);
}
.sitegate-scene{
  position:relative;
  min-height:230px;
  background:var(--flag-mist);
  border:3px solid var(--tread-slate);
  padding:16px;
}
.sitegate-scene .sitetrencher-stake{
  z-index:2;
}
.sitetrencher-stake-tall{
  height:190px !important;
  bottom:40px !important;
}
@media (max-width:920px){
  .sitegate{grid-template-columns:1fr;}
}

/* ---------- GRADING BLADE REGISTRY ---------- */
.gradingblade{
  max-width:1180px;
  margin:0 auto;
  padding:78px 24px 30px;
}
.gradingblade-intro{
  max-width:720px;
  margin-bottom:40px;
}
.gradingblade-kicker{
  font-size:0.78rem;
  letter-spacing:0.24em;
  text-transform:uppercase;
  font-weight:bold;
  color:var(--hyd-teal);
  margin-bottom:10px;
}
.yardnotes-head h2{
  font-size:clamp(1.8rem,3.4vw,2.6rem);
}
.gradingblade-intro h2{
  font-size:clamp(1.9rem,3.6vw,2.8rem);
}
.gradingblade-note{
  font-size:1rem;
  max-width:600px;
}
.gradingblade-registry{
  display:block;
  position:relative;
}
.gradingblade-card{
  position:relative;
  background:var(--flag-mist);
  border-left:7px solid var(--tread-slate);
  box-shadow:9px 9px 0 var(--card-plum);
  padding:26px 30px 18px;
  margin-bottom:30px;
}
.gradingblade-card h3{
  font-size:1.4rem;
  margin-bottom:10px;
}
.gradingblade-card p{
  font-size:0.97rem;
  margin-bottom:0.75em;
}
.gradingblade-card a{
  color:var(--blade-amber);
  font-weight:bold;
  text-decoration:none;
  border-bottom:2px solid var(--blade-amber);
}
.gradingblade-card a:hover{
  color:var(--pit-deep);
  border-bottom-color:var(--cab-brass);
}
.gradingblade-mark{
  position:absolute;
  top:-16px;
  right:22px;
  width:44px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:bold;
  font-size:1.5rem;
  color:var(--blade-amber);
  background:var(--pit-deep);
  border:3px solid var(--flag-mist);
}
.gradingblade-mark-warm{
  color:var(--flag-mist);
  background:var(--hyd-teal);
}
.gradingblade-card-a{width:74%;margin-left:0;}
.gradingblade-card-a .gradingblade-mark{right:auto;left:32px;top:-18px;}
.gradingblade-card-b{width:62%;margin-left:34%;}
.gradingblade-card-b .gradingblade-mark{right:38px;top:auto;bottom:-16px;}
.gradingblade-card-c{width:80%;margin-left:8%;}
.gradingblade-card-c .gradingblade-mark{left:-14px;right:auto;top:52%;}
.gradingblade-card-d{width:58%;margin-left:40%;}
.gradingblade-card-d .gradingblade-mark{left:auto;right:-18px;top:28%;}
.gradingblade-card-e{width:70%;margin-left:12%;}
.gradingblade-card-e .gradingblade-mark{left:22px;right:auto;top:auto;bottom:-18px;}
.gradingblade-card-f{width:64%;margin-left:28%;}
.gradingblade-card-f .gradingblade-mark{left:auto;right:60px;top:-14px;}

/* ---------- CUT BLADE LEDGER ---------- */
.cutblade{
  background:var(--pit-deep);
  display:flex;
  align-items:center;
  gap:34px;
  padding:26px 34px;
  margin-top:44px;
  border-top:6px solid var(--blade-amber);
  border-bottom:6px solid var(--blade-amber);
}
.cutblade-marks{
  display:flex;
  gap:8px;
  flex:none;
}
.cutblade-blade{
  width:12px;
  height:52px;
  background:var(--blade-amber);
  clip-path:polygon(0 0,100% 0,100% 76%,50% 100%,0 76%);
}
.cutblade-marks .cutblade-blade:nth-child(2){margin-top:10px;}
.cutblade-marks .cutblade-blade:nth-child(3){margin-top:20px;}
.cutblade-marks .cutblade-blade:nth-child(4){margin-top:30px;}
.cutblade-line{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1rem,2.1vw,1.35rem);
  color:var(--yard-dust);
  max-width:900px;
}

/* ---------- YARD NOTES ---------- */
.yardnotes{
  max-width:1180px;
  margin:0 auto;
  padding:70px 24px 40px;
}
.yardnotes-head{
  max-width:700px;
  margin-bottom:30px;
}
.yardnotes-kicker{
  font-size:0.78rem;
  letter-spacing:0.24em;
  text-transform:uppercase;
  font-weight:bold;
  color:var(--hyd-teal);
  margin-bottom:10px;
}
.yardnotes-rows{
  border-top:3px solid var(--tread-slate);
}
.yardnotes-row{
  padding:24px 0 10px 26px;
  border-bottom:2px solid var(--card-plum);
  border-left:6px solid transparent;
  max-width:900px;
}
.yardnotes-row-shift{
  margin-left:60px;
  border-left-color:var(--blade-amber);
  max-width:820px;
}
.yardnotes-row h3{
  font-size:1.25rem;
  margin-bottom:8px;
}
.yardnotes-row p{
  font-size:0.98rem;
  margin-bottom:0.8em;
}

/* ---------- GRADE BENCH COUNTER FOOTER ---------- */
.gradebench{
  margin-top:40px;
  background:var(--pit-deep);
  color:var(--yard-dust);
}
.gradebench-room{
  max-width:1180px;
  margin:0 auto;
  padding:56px 24px 34px;
  border-left:8px solid var(--tread-slate);
  border-right:8px solid var(--tread-slate);
  position:relative;
}
.gradebench-bench{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:44px;
}
.gradebench-brand{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.5rem;
  font-weight:bold;
  color:var(--yard-dust);
  margin-bottom:12px;
}
.gradebench-blurb{
  color:var(--flag-mist);
  font-size:0.96rem;
  max-width:420px;
}
.gradebench-stakes{
  display:flex;
  align-items:flex-end;
  gap:12px;
  height:70px;
  margin-top:18px;
}
.gradebench-stake{
  width:5px;
  height:46px;
  background:var(--flag-mist);
  position:relative;
}
.gradebench-stake::after{
  content:"";
  position:absolute;
  left:5px;
  top:2px;
  width:22px;
  height:15px;
  background:var(--blade-amber);
  clip-path:polygon(0 0,100% 50%,0 100%);
}
.gradebench-stake-mid{
  height:66px;
}
.gradebench-links{
  display:grid;
  grid-template-columns:1fr 1fr 1.3fr;
  gap:28px;
}
.gradebench-colhead{
  font-size:0.76rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  font-weight:bold;
  color:var(--blade-amber);
  margin-bottom:12px;
  display:flex;
  align-items:center;
  gap:8px;
}
.gradebench-pin{
  width:7px;
  height:7px;
  background:var(--cab-brass);
  display:inline-block;
  border-radius:50%;
}
.gradebench-col a{
  display:block;
  color:var(--yard-dust);
  text-decoration:none;
  font-size:0.95rem;
  padding:4px 0;
  border-bottom:1px solid var(--tread-slate);
}
.gradebench-col a:hover{
  text-decoration:underline;
  text-decoration-color:var(--cab-brass);
  text-decoration-thickness:2px;
  color:var(--flag-mist);
}
.gradebench-log p{
  font-size:0.9rem;
  color:var(--flag-mist);
  margin:0;
}
.gradebench-strip{
  background:var(--tread-slate);
  color:var(--yard-dust);
  font-size:0.82rem;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:14px 24px;
}
.gradebench-strip a{
  color:var(--flag-mist);
  text-decoration:none;
  border-bottom:1px solid var(--blade-amber);
}
.gradebench-strip a:hover{
  color:var(--blade-amber);
}
.gradebench-cleat{
  width:22px;
  height:9px;
  background:var(--blade-amber);
  display:inline-block;
  margin-right:2px;
}
.gradebench-sep{
  width:4px;
  height:4px;
  background:var(--blade-amber);
  display:inline-block;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:920px){
  .cattrack-cleats{display:none;}
  .cattrack-toggle{display:block;margin-left:auto;}
  .cattrack-brand{font-size:0.94rem;}
  .sitetrencher-band{grid-template-columns:1fr 1fr;}
  .gradingblade-card{width:100%;margin-left:0;}
  .gradebench-bench{grid-template-columns:1fr;}
  .gradebench-links{grid-template-columns:1fr 1fr;}
}
@media (max-width:920px){
  .gradingblade-card-a,.gradingblade-card-b,.gradingblade-card-c,.gradingblade-card-d,.gradingblade-card-e,.gradingblade-card-f{width:100%;margin-left:0;}
  .gradingblade-card-a .gradingblade-mark,.gradingblade-card-b .gradingblade-mark,.gradingblade-card-c .gradingblade-mark,.gradingblade-card-d .gradingblade-mark,.gradingblade-card-e .gradingblade-mark,.gradingblade-card-f .gradingblade-mark{left:auto;right:20px;top:-16px;bottom:auto;}
}
@media (max-width:640px){
  .sitetrencher-band{grid-template-columns:1fr;}
  .sitetrencher-cta{flex-direction:column;align-items:flex-start;gap:10px;}
  .gradebench-links{grid-template-columns:1fr;}
  .yardnotes-row-shift{margin-left:0;}
  .cutblade{flex-direction:column;align-items:flex-start;gap:18px;padding:26px 22px;}
  .gradebench-room{border-left-width:0;border-right-width:0;}
}

/* reveal states for registry and notes */
.gradingblade-card,.yardnotes-row,.sitetrencher-panel{
  transition:none;
}
.gradingblade-card.is-revealed,.yardnotes-row.is-revealed,.sitetrencher-panel.is-revealed{
  animation:yrise 0.45s ease-out both;
}
@keyframes yrise{
  from{transform:translateY(10px);}
  to{transform:translateY(0);}
}

/* contact page */
.sitegate-inline{
  color:var(--blade-amber);
  font-weight:bold;
  text-decoration:none;
  border-bottom:2px solid var(--blade-amber);
}
.sitegate-inline:hover{
  color:var(--pit-deep);
  border-bottom-color:var(--cab-brass);
}
.sitegate-side{
  background:var(--flag-mist);
  border:3px solid var(--tread-slate);
  padding:26px;
}
.contactform{
  margin-top:18px;
}
.contactform-field{
  display:block;
  font-size:0.78rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  font-weight:bold;
  margin-bottom:6px;
  color:var(--tread-slate);
}
.contactform-input{
  display:block;
  width:100%;
  font-family:inherit;
  font-size:1rem;
  color:var(--cat-ink);
  background:var(--yard-dust);
  border:2px solid var(--tread-slate);
  padding:10px 12px;
  margin-bottom:16px;
}
.contactform-input:focus{
  outline:3px solid var(--blade-amber);
  outline-offset:1px;
}
.contactform-area{
  resize:vertical;
}
.contactform-send{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:bold;
  font-size:1.05rem;
  color:var(--pit-deep);
  background:var(--blade-amber);
  border:0;
  border-top:4px solid var(--pit-deep);
  padding:16px 26px;
  cursor:pointer;
}
.contactform-send:hover{
  background:var(--pit-deep);
  color:var(--yard-dust);
}
.contactform-status{
  font-size:0.9rem;
  margin-top:12px;
  min-height:1.2em;
}
.contactcard{
  font-style:normal;
  margin-top:6px;
}
.contactcard-line{
  display:block;
  font-size:0.98rem;
  padding:3px 0;
}
.contactcard-line a{
  color:var(--pit-deep);
  text-decoration:none;
  border-bottom:2px solid var(--blade-amber);
}
.contactcard-gap{
  margin-top:24px;
}
.contactcard-hours{
  list-style:none;
  margin:8px 0 0;
  padding:0;
}
.contactcard-hours li{
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:0.94rem;
  padding:5px 0;
  border-bottom:1px solid var(--card-plum);
}
