[hidden]{display:none!important}.catalog-controls{margin:28px 0 40px;padding:22px;border:1px solid #3b4c61;border-radius:16px;background:#192331}.catalog-controls label{display:block;font-size:14px;margin-bottom:10px;color:#d4dfed}.catalog-controls input{width:100%;box-sizing:border-box;padding:15px 16px;min-height:48px;background:#101820;border:1px solid #536780;border-radius:10px;color:#fff;font:16px system-ui}.catalog-filters{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.catalog-filters button{border:1px solid #50667e;border-radius:30px;background:transparent;color:#d6e4f6;padding:11px 16px;min-height:44px;font:14px system-ui;cursor:pointer}.catalog-filters button[aria-pressed=true]{background:#c6defb;color:#172337;border-color:#c6defb}#bookCount{font-size:12px;color:#b9c7d8;margin:15px 0 0}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:32px}.project-card{display:block;border:1px solid #3b4c61;border-radius:16px;background:#192331;padding:28px;text-decoration:none;color:#f2f6fc;transition:transform .2s,border-color .2s}.project-card:hover{transform:translateY(-4px);border-color:#97b9df}.project-card span{font:11px var(--mono);color:#9cbde0;letter-spacing:.08em}.project-card h3{font-size:24px;line-height:1.3;margin:20px 0 13px}.project-card p{color:#c1cfdf;font-size:15px;line-height:1.7}.project-card b{display:block;font-size:13px;color:#c2ddff;margin-top:26px}.book-meta:after{content:'Browse on Amazon ↗';display:block;color:#c4dcfa;font-size:11px;margin-top:8px}.catalog-browse .book-meta:after{content:''}.js .reveal{opacity:1}.catalog-controls :focus-visible,.project-card:focus-visible{outline:3px solid #c6defb;outline-offset:3px}
@media(max-width:760px){.project-grid{grid-template-columns:1fr}.project-card{padding:24px}.catalog-controls{padding:17px}.catalog-filters{gap:7px}.catalog-filters button{font-size:12px;padding:10px 12px}.site-assistant-launch{font-size:13px}.hero{gap:35px}h1{font-size:clamp(44px,12vw,65px)}}

/* Keep paired calls to action and content cards aligned. */
.hero-cta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;max-width:580px}
.hero-cta .btn{width:100%;min-height:60px;justify-content:center;text-align:center;padding:14px 16px;box-sizing:border-box;line-height:1.5}
.project-card{display:flex;flex-direction:column}.project-card b{margin-top:auto;padding-top:26px}
@media(max-width:880px){.hero-copy{text-align:center}.hero-eyebrow{justify-content:center;white-space:normal}.hero-blurb{margin-inline:auto}.hero-cta{margin-inline:auto}.hero-copy h1{white-space:normal;font-size:clamp(2rem,8.2vw,3rem)}}
@media(max-width:560px){.hero-cta{grid-template-columns:1fr;width:100%;max-width:360px;grid-auto-rows:1fr}.hero-cta .btn{min-height:56px}.hero-copy .hero-tag{font-size:clamp(1.2rem,4.7vw,1.65rem)}}

/* Midnight Blue is the canonical dark brand color for Ethen Norton. These
   overrides intentionally win over the shared light-theme layer loaded later. */
.author-site nav{background:#12264a!important;border-bottom-color:#29466f!important}
.author-site .mobile-menu{background:#12264a!important;border-bottom-color:#29466f!important}
.author-site .mobile-menu a{border-bottom-color:#29466f!important}
.author-site #projects .project-card:nth-child(odd):not(.project-card-light){background:#12264a!important;border-color:#29466f!important;box-shadow:0 10px 28px #12264a26!important}
.author-site #projects .project-card:nth-child(odd):not(.project-card-light):hover{border-color:#6f91bd!important;box-shadow:0 16px 36px #12264a33!important}

/* Selected design and development work; reuse the existing card palette. */
.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.work-grid .project-card{min-width:0}
.work-link{display:block;margin-top:auto;padding-top:26px;color:var(--slate);font-size:13px;font-weight:600;text-underline-offset:4px}
.author-site #projects .project-card:nth-child(odd):not(.project-card-light) .work-link{color:#9bc0ec}
.work-link:focus-visible{outline:3px solid currentColor;outline-offset:5px;border-radius:2px}
.work-note{margin-top:24px;max-width:760px;color:var(--ink-soft);font-size:13px;line-height:1.8}
.work-more{margin-top:48px;font-size:clamp(1.2rem,3vw,1.6rem);line-height:1.4}
@media(max-width:760px){.work-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.project-card{transition:none}.project-card:hover{transform:none}}
