.home {
  --canvas:#f7efe3;
  --canvas-ink:#241d1e;
  --canvas-muted:#67575a;
  --canvas-line:#ded0c5;
  --canvas-red:#a02338;
  background:radial-gradient(ellipse at 70% 0%, #332124 0, transparent 37rem),var(--bg);
}
.home .skip { z-index:2 }
.directory-icons { position:absolute }
.home .site-header { border-color:#584247 }
.home .site-header nav { gap:.2rem }
.home .site-header nav a { padding:.5rem .7rem; border-radius:.45rem }
.home .site-header nav a:hover,.home .site-header nav a[aria-current="page"] {
  background:#38282b; color:var(--paper); text-decoration:none;
}
.home .site-header nav a[aria-current="page"] { box-shadow:inset 0 -2px var(--red) }
.directory-hero {
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.82fr);
  gap:clamp(1.5rem,6vw,5.1rem); align-items:center; padding:clamp(2.5rem,4.3vw,3.4rem) 0;
}
.home-copy h1 { max-width:9ch; font-size:clamp(3.8rem,7.7vw,6.15rem); margin-bottom:1.05rem }
.home-copy .lede { max-width:32ch; margin-bottom:1.4rem }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1.1rem }
.home-text-link { color:var(--soft); font-size:.9rem; text-underline-offset:.25em }
.home-text-link:hover { color:var(--paper) }
.turbo-window {
  display:grid; min-width:0; isolation:isolate; color:var(--paper);
  border:1px solid #775057; border-radius:1rem; background:#211a1c; text-decoration:none;
  box-shadow:0 1.2rem 2.6rem #08060755;
}
.turbo-window:hover,.turbo-window:focus-visible { border-color:var(--red) }
.turbo-window-head,.turbo-window-foot {
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.55rem;
  padding:.78rem 1rem;
}
.turbo-window-head {
  color:var(--soft); font:650 .69rem ui-monospace,monospace;
  text-transform:uppercase; letter-spacing:.08em;
}
.turbo-window-head .dot { width:.41rem; height:.41rem }
.turbo-window-head > span:last-child { color:#ffadb4 }
.turbo-stage {
  position:relative; display:grid; place-items:center; min-height:10rem;
  border-block:1px solid #593f44; overflow:hidden;
  background:radial-gradient(ellipse at 50% 56%,#833c48a8,transparent 62%),
    repeating-linear-gradient(0deg,#ff979812 0 1px,transparent 1px 22px),
    repeating-linear-gradient(90deg,#ff979812 0 1px,transparent 1px 22px),#2b1e21;
}
.turbo-stage img { display:block; image-rendering:pixelated }
.stage-corner {
  position:absolute; width:1.35rem; height:1.35rem; border:1px solid #d1868b;
}
.stage-corner-top { inset:.85rem auto auto .85rem; border-right:0; border-bottom:0 }
.stage-corner-bottom { inset:auto .85rem .85rem auto; border-top:0; border-left:0 }
.stage-spark { position:absolute; color:#ffc6c3; font-size:1.25rem }
.stage-spark-one { top:25%; left:24% }
.stage-spark-two { right:22%; bottom:25%; opacity:.72 }
.turbo-window-foot strong,.turbo-window-foot div > span { display:block }
.turbo-window-foot div > span { margin-top:.2rem; color:var(--soft); font-size:.77rem }
.turbo-open {
  display:grid; place-items:center; width:2.15rem; height:2.15rem;
  border-radius:.5rem; background:#43272d; color:#ffb1b6;
}
.turbo-window:hover .turbo-open,.turbo-window:focus-visible .turbo-open { background:var(--red); color:var(--bg) }

.beta-promo {
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.9rem 1.15rem;
  margin-bottom:clamp(1.7rem,3.5vw,2.5rem); padding:clamp(.9rem,2.7vw,1.3rem);
  border:1px solid #795157; border-radius:.85rem; background:linear-gradient(110deg,#47272f,#2c2124 78%);
}
.promo-icon {
  width:2.75rem; height:2.75rem; padding:.6rem; background:#6b353e; color:#ffc5c8; border-radius:.63rem;
}
.promo-icon,.branch-icon svg,.directory-search svg {
  fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round;
}
.promo-copy .eyebrow { display:flex; align-items:center; flex-wrap:wrap; gap:.45rem .65rem; margin-bottom:.35rem }
.promo-status {
  padding:.13rem .36rem; border:1px solid #87535a; border-radius:.24rem;
  color:#ffc8ca; font-size:.63rem; letter-spacing:.045em;
}
.promo-copy h2 { max-width:none; font-size:clamp(1.1rem,2.2vw,1.6rem); letter-spacing:-.018em; margin-bottom:.3rem }
.promo-copy p:last-child { margin:0; font-size:.85rem }
.beta-promo .button { white-space:nowrap; border-color:#93656a; font-size:.85rem }

.directory {
  color-scheme:light; background:var(--canvas); color:var(--canvas-ink);
  border-top:4px solid #a53b49; padding:clamp(2rem,4vw,3.1rem) 0;
}
.directory :focus-visible { outline-color:var(--canvas-red) }
.directory-head {
  display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:1.15rem 2rem;
  margin-bottom:1.15rem;
}
.directory-head .eyebrow { color:var(--canvas-red); margin-bottom:.38rem }
.directory h2 { margin:0; max-width:none; font-size:clamp(2.1rem,5.6vw,3.75rem) }
.directory-search {
  display:flex; align-items:center; gap:.48rem; width:min(100%,21rem); min-height:2.85rem;
  padding:.3rem .5rem .3rem .73rem; border:1px solid #baaaa1; border-radius:.56rem; background:#fffaf3;
}
.directory-search:focus-within { outline:2px solid var(--canvas-red); outline-offset:2px }
.directory-search svg { width:1.2rem; height:1.2rem; flex:none; color:var(--canvas-red) }
.directory-search input {
  width:100%; min-width:0; border:0; outline:none; background:transparent; color:var(--canvas-ink);
  font:inherit; padding:.33rem 0;
}
.directory-search input:focus-visible { outline:none }
.directory-search input::placeholder { color:#76676a }
.directory-search input::-webkit-search-cancel-button { display:none }
.search-shortcut,.search-clear {
  flex:none; display:grid; place-items:center; width:1.7rem; height:1.7rem;
  border:1px solid #dfd3c9; border-radius:.34rem; background:#f6eee3; color:var(--canvas-muted);
}
.search-shortcut { font:700 .8rem ui-monospace,monospace }
.search-clear { width:2rem; height:2rem; font:inherit; font-size:1.15rem; cursor:pointer }
.search-clear:hover { border-color:var(--canvas-red); color:var(--canvas-red) }
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
.directory-controls {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.5rem .9rem;
  border-block:1px solid var(--canvas-line); padding:.65rem 0; margin-bottom:.15rem;
}
.directory-filters { display:flex; gap:.3rem; flex-wrap:wrap }
.directory-filters button,.directory-empty button {
  min-height:2.2rem; border:1px solid transparent; border-radius:.4rem;
  padding:.36rem .65rem; color:var(--canvas-muted); background:none; font:700 .85rem system-ui,sans-serif; cursor:pointer;
}
.directory-filters button:hover { border-color:#ccaba8; color:var(--canvas-red) }
.directory-filters button[aria-pressed="true"],.directory-empty button {
  border-color:#882033; background:#9f2439; color:#fff9f0;
}
.directory-count { margin:0; color:var(--canvas-muted); font:650 .72rem ui-monospace,monospace }
.branch-group {
  display:grid; grid-template-columns:minmax(7.5rem,.54fr) minmax(0,3fr); align-items:start;
  gap:clamp(.7rem,3.6vw,2rem); padding:1.15rem 0; border-bottom:1px solid var(--canvas-line);
}
.branch-group h3 { display:flex; align-items:center; gap:.48rem; margin:.5rem 0 0; font-size:.97rem }
.branch-group h3 .index { color:var(--canvas-red); font-size:.69rem }
.branch-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));
  gap:.65rem; list-style:none; margin:0; padding:0;
}
.branch-grid > li { scroll-margin-top:1rem; min-width:0 }
.branch-card {
  display:grid; grid-template-columns:1fr auto; align-content:start; align-items:center; gap:.34rem .5rem;
  min-height:100%; padding:.8rem .9rem; border:1px solid #ddcfc3; border-radius:.68rem;
  background:#fffaf3; color:var(--canvas-ink); text-decoration:none;
}
.branch-card:hover,.branch-card:focus-visible,.branch-grid > li:target .branch-card {
  border-color:#ab4856; background:#fff4eb; box-shadow:0 .35rem .8rem #54202e15;
}
.branch-icon {
  display:grid; place-items:center; width:2rem; height:2rem; margin-bottom:.14rem;
  border-radius:.42rem; background:#f0dfe0; color:var(--canvas-red);
}
.branch-icon svg { width:1.28rem; height:1.28rem }
.branch-arrow { align-self:start; color:var(--canvas-red); font-weight:740 }
.branch-name { grid-column:1/-1; font-size:.98rem; font-weight:780 }
.branch-description {
  grid-column:1/-1; color:var(--canvas-muted); font-size:.84rem; line-height:1.42;
}
.directory-empty { padding:1.65rem 0 .8rem }
.directory-empty p { color:var(--canvas-muted); margin-bottom:.7rem }

@media (prefers-reduced-motion:no-preference) {
  .turbo-window,.turbo-open,.branch-card,.branch-arrow { transition:.18s ease; transition-property:background-color,border-color,box-shadow,transform }
  .branch-card:hover,.branch-card:focus-visible { transform:translateY(-.15rem) }
  .branch-card:hover .branch-arrow,.branch-card:focus-visible .branch-arrow { transform:translate(.12rem,-.12rem) }
}
@media (max-width:740px) {
  .branch-group { grid-template-columns:1fr; gap:.6rem }
  .branch-group h3 { margin:0 }
  .directory-hero { grid-template-columns:minmax(0,1fr) minmax(0,.84fr); gap:1.15rem }
}
@media (max-width:590px) {
  .directory-hero { grid-template-columns:1fr; padding:2rem 0 1.35rem }
  .home-copy h1 { font-size:clamp(3.35rem,13vw,4.85rem) }
  .home .site-header { gap:.5rem; padding:.85rem 0 }
  .home .site-header nav { gap:.05rem }
  .home .site-header nav a { padding:.4rem .36rem; font-size:.78rem }
  .hero-actions { gap:.65rem }
  .home-text-link { font-size:.8rem }
  .turbo-stage { min-height:6.35rem }
  .turbo-stage img { width:96px; height:96px }
  .beta-promo { grid-template-columns:auto minmax(0,1fr); gap:.65rem .75rem }
  .beta-promo .button { grid-column:2; justify-self:start }
  .promo-icon { align-self:start; width:2.25rem; height:2.25rem; padding:.45rem }
  .directory-search { width:100% }
}
@media (hover:none) {
  .search-shortcut { display:none }
}
@media (max-width:430px) {
  .branch-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,8.4rem),1fr)); gap:.5rem }
  .branch-card { padding:.68rem .62rem }
  .directory-filters button { padding-inline:.45rem; font-size:.79rem }
}
