.birthday-article { position:relative; }
.birthday-finder { position:sticky; top:12px; z-index:15; display:grid; grid-template-columns:minmax(118px,1fr) minmax(118px,1fr) auto; gap:12px; align-items:end; margin:0 0 52px; padding:18px; border:1px solid var(--line); border-radius:8px; background:color-mix(in srgb,var(--paper) 93%,transparent); box-shadow:0 12px 34px rgba(75,63,43,.08); backdrop-filter:blur(12px); }
.birthday-finder-field { display:grid; gap:7px; }
.birthday-finder label { color:var(--muted); font-size:.82rem; line-height:1; }
.birthday-finder select,.birthday-finder button { min-height:44px; border:1px solid var(--line); border-radius:4px; background:var(--paper); color:var(--ink); font:inherit; }
.birthday-finder select { width:100%; padding:0 36px 0 12px; cursor:pointer; }
.birthday-finder select:disabled { color:var(--muted); cursor:not-allowed; }
.birthday-finder button { min-width:96px; padding:0 20px; border-color:var(--ink); cursor:pointer; }
.birthday-finder button:hover { background:var(--ink); color:var(--paper); }
.birthday-finder select:focus-visible,.birthday-finder button:focus-visible { outline:2px solid var(--accent,#8d7142); outline-offset:2px; }
.birthday-status { grid-column:1 / -1; min-height:1.4em; margin:-2px 0 0; color:var(--muted); font-size:.82rem; line-height:1.4; }
.birthday-month { margin:0 0 68px; }
.birthday-month h2 { display:flex; align-items:baseline; gap:12px; margin-bottom:16px; scroll-margin-top:132px; }
.birthday-month h2 span { color:var(--muted); font-size:.74em; font-variant-numeric:tabular-nums; }
.birthday-days { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.birthday-entry { display:grid; grid-template-columns:84px minmax(0,1fr); gap:22px; padding:20px 16px; border-bottom:1px solid var(--line); scroll-margin-top:148px; transition:background-color .35s ease,box-shadow .35s ease,transform .35s ease; }
.birthday-entry time { color:var(--muted); font-size:.9rem; font-variant-numeric:tabular-nums; line-height:2; white-space:nowrap; }
.birthday-entry p { margin:0; line-height:2; }
.birthday-entry.is-selected,.birthday-entry:target { background:color-mix(in srgb,var(--accent,#8d7142) 14%,transparent); box-shadow:inset 3px 0 var(--accent,#8d7142); transform:translateX(4px); }
.birthday-entry:focus { outline:0; }
.birthday-entry:focus-visible { outline:1px solid var(--accent,#8d7142); outline-offset:3px; }
@media (max-width:640px) {
  .birthday-finder { top:8px; grid-template-columns:1fr 1fr auto; gap:9px; padding:13px; margin-bottom:42px; }
  .birthday-finder button { min-width:72px; padding-inline:12px; }
  .birthday-entry { grid-template-columns:1fr; gap:5px; padding:18px 12px; }
  .birthday-entry time { line-height:1.5; }
  .birthday-month { margin-bottom:54px; }
}
@media (max-width:380px) { .birthday-finder { grid-template-columns:1fr 1fr; } .birthday-finder button { grid-column:1 / -1; } }
@media (prefers-reduced-motion:reduce) { .birthday-entry { transition:none; } }
@media print { .birthday-finder { display:none; } .birthday-entry { break-inside:avoid; } }
