/* Original CSS; interaction hierarchy informed by shadcn/ui.
   Reference: https://github.com/shadcn-ui/ui (no library code bundled). */
:root { --ui-radius:8px; --ui-duration:160ms; }
#cases,#contact { scroll-margin-top:96px; }
.animated-home .button,
.pitch-bottom a,
.commission-entry a,
.pricing-note a,
.nav-contact {
  display:inline-flex; align-items:center; justify-content:space-between;
  gap:16px; min-height:48px; max-width:100%; padding:12px 16px;
  border-radius:var(--ui-radius); font-family:"Segoe UI","Microsoft YaHei",sans-serif;
  font-size:14px; font-weight:600; line-height:1.4; text-decoration:none;
  touch-action:manipulation; -webkit-tap-highlight-color:transparent;
  transition:background-color var(--ui-duration) ease, color var(--ui-duration) ease,
    box-shadow var(--ui-duration) ease, transform 120ms ease;
}
.animated-home .button { border:1px solid var(--ink); }
.animated-home .button-dark { box-shadow:0 2px 3px rgba(24,33,31,.1); }
.animated-home .button-light { background:rgba(255,253,247,.65); }
.button span,.pitch-bottom a span {
  display:grid; place-items:center; flex:0 0 24px; width:24px; height:24px;
  margin-left:0; border-radius:50%; background:rgba(127,127,127,.13);
  font-size:16px;
}
.nav-contact { min-height:44px; padding:8px 12px; border:1px solid var(--line); background:var(--paper); font-size:12px; }
.nav-contact i { font-size:17px; }
.commission-entry a,.pricing-note a {
  width:fit-content; border:1px solid var(--line); background:rgba(255,253,247,.7);
}
.pitch-bottom a { border:1px solid #12211d; box-shadow:3px 3px 0 #ff6a3d; }
.case-category-grid { gap:10px; border:0; }
.case-category {
  border:1px solid var(--line); border-radius:var(--ui-radius);
  background:rgba(255,253,247,.52); padding:16px 14px 18px;
}
.case-category > span { font-size:10px; }
.category-symbol { margin-top:12px; border:0; border-radius:4px; background:rgba(24,33,31,.035); }
.case-category h3 { line-height:1.32; letter-spacing:-.025em; }
.category-case { padding:12px 0 4px; touch-action:manipulation; transition:color var(--ui-duration) ease; }
.category-case small { line-height:1.6; font-size:8px; }
.category-case strong { text-decoration:underline; text-decoration-color:rgba(166,77,57,.38); text-underline-offset:4px; }
.category-case em { font-size:11px; line-height:1.55; }
.contact-board { border-radius:12px; }
.contact-item { border-radius:4px; }
a.contact-item,.copy-contact { touch-action:manipulation; transition:background-color var(--ui-duration) ease,opacity 120ms ease; }
.contact .copy-contact { border-radius:var(--ui-radius); }
.contact .copy-contact[aria-busy="true"] { opacity:.7; cursor:progress; }
.copy-status {
  display:block; min-height:2.8em; margin-top:5px; color:#d8b4a9;
  font:12px/1.4 "Segoe UI","Microsoft YaHei",sans-serif;
}
.copy-contact[data-copy-state="success"] .copy-status { color:#bddec7; }
.copy-contact[data-copy-state="error"] .copy-status { color:#ffd2c4; }
:where(.button,.nav-contact,.pitch-bottom a,.commission-entry a,.pricing-note a,.category-case):focus-visible {
  outline:2px solid var(--accent); outline-offset:4px;
}
.contact :where(a.contact-item,.copy-contact):focus-visible { outline:2px solid #f1b49b; outline-offset:4px; }
@media (hover:hover) and (pointer:fine) {
  .animated-home .button:hover { transform:none; }
  .animated-home .button-dark:hover { background:#303f39; }
  .animated-home .button-light:hover,.nav-contact:hover,
  .commission-entry a:hover,.pricing-note a:hover { background:var(--paper-deep); }
  .pitch-bottom a:hover { background:#303f39; }
  .category-case:hover { color:var(--accent); }
  a.contact-item:hover,.contact .copy-contact:hover { background:rgba(255,253,247,.06); }
}
@media (hover:none) {
  .animated-home .button:hover { transform:none; }
}
.animated-home .button:active,.pitch-bottom a:active,
.commission-entry a:active,.pricing-note a:active,.nav-contact:active {
  transform:scale(.98); opacity:.9;
}
a.contact-item:active,.contact .copy-contact:active { transform:none; opacity:.78; }
@media (min-width:760px) {
  .case-category-grid { gap:16px; }
  .case-category { padding:20px 22px 24px; }
}
@media (max-width:759px) {
  .hero-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .hero-actions .button { width:100%; padding:12px; gap:8px; font-size:13px; }
  .contact .copy-contact { width:100%; margin:8px 0; padding:16px 10px; }
}
@media (prefers-reduced-motion:reduce) {
  .animated-home .button,.pitch-bottom a,.commission-entry a,.pricing-note a,
  .nav-contact,.category-case,a.contact-item,.contact .copy-contact { transition:none; }
  .animated-home .button:active,.pitch-bottom a:active,.commission-entry a:active,
  .pricing-note a:active,.nav-contact:active { transform:none; }
}
/* Homepage directory: equal cards, visible entry cues, compact mobile type. */
.case-category-grid{align-items:stretch;grid-auto-rows:1fr}
.case-category-grid .case-category{align-self:stretch;padding-bottom:38px;min-width:0}
.case-category::after{content:"↗";position:absolute;right:16px;bottom:12px;font:18px/1 sans-serif;color:var(--accent);pointer-events:none}
.cases-heading>p:last-child{max-width:540px;line-height:1.8}
@media(max-width:759px){
 .case-category h3{font-size:18px;line-height:1.45;margin-bottom:10px}
 .category-symbol{padding:8px 0}
 .cases-heading>p:last-child{font-size:14px}
 .hero-copy .intro{font-size:15px;line-height:1.8}
 .service-group ul{line-height:1.8}
}
