    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    body {
      font-family: Georgia, "Times New Roman", serif;
      font-size: 25px;
      line-height: 1.6;
      background: #fafaf8;
      color: #1a1a1a;
      padding: 24px 16px 60px;
    }

    /* ── Header ── */
    header {
      max-width: 820px;
      margin: 0 auto 28px;
      border-bottom: 2px solid #1a2e4a;
      padding-bottom: 12px;
    }
    header h1 {
      font-size: 22px;
      font-weight: normal;
      letter-spacing: 0.02em;
      color: #1a2e4a;
    }
    header p {
      font-size: 24px;
      color: #64748b;
      margin-top: 2px;
      font-family: sans-serif;
    }

    /* ── Search form ── */
    #search-form {
      max-width: 820px;
      margin: 0 auto 28px;
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      align-items: flex-end;
    }
    #search-form label {
      font-family: sans-serif;
      font-size: 22px;
      color: #64748b;
      display: block;
      margin-bottom: 3px;
      letter-spacing: 0.05em;
      text-transform: uppercase;
    }
    #search-form .field { display: flex; flex-direction: column; }
    #search-form .field.key  { flex: 2; min-width: 180px; }
    #search-form .field.word { flex: 1; min-width: 140px; }

    input[type="text"], input[type="password"] {
      font-family: "Courier New", monospace;
      font-size: 23px;
      padding: 7px 10px;
      border: 1px solid #cbd5e1;
      background: #fff;
      color: #1a1a1a;
      outline: none;
      width: 100%;
    }
    input[type="text"]:focus, input[type="password"]:focus {
      border-color: #2563eb;
    }

    button {
      font-family: sans-serif;
      font-size: 20px;
      padding: 8px 20px;
      background: #1a2e4a;
      color: #fff;
      border: none;
      cursor: pointer;
      align-self: flex-end;
    }
    button:hover { background: #2563eb; }
    button:disabled { background: #94a3b8; cursor: not-allowed; }

    /* ── Status / error ── */
    #status {
      max-width: 820px;
      margin: 0 auto 16px;
      font-family: sans-serif;
      font-size: 20px;
    }
    #status.error { color: #dc2626; }
    #status.info  { color: #64748b; }

    /* ── Results ── */
    #results { max-width: 820px; margin: 0 auto; }

    /* ── Entry card ── */
    .entry {
      background: #fff;
      border: 1px solid #e2e8f0;
      border-left: 4px solid #1a2e4a;
      margin-bottom: 28px;
      padding: 20px 24px;
    }

    /* ── Entry head: hw + hom + fl ── */
    .entry-head { margin-bottom: 12px; }
    .entry-hw {
      font-size: 26px;
      font-weight: bold;
      letter-spacing: 0.01em;
      color: #1a2e4a;
    }
    .entry-hom {
      font-size: 23px;
      vertical-align: super;
      color: #2563eb;
      margin-right: 2px;
    }
    .entry-fl {
      font-style: italic;
      font-size: 24px;
      color: #64748b;
      margin-left: 10px;
    }
    .entry-prs {
      font-family: "Courier New", monospace;
      font-size: 23px;
      color: #475569;
      margin-top: 3px;
    }
    .entry-prs .pr-sep  { margin: 0 4px; color: #94a3b8; }
    .entry-prs .pr-label { font-style: italic; color: #64748b; margin-right: 3px; }
    .audio-btn {
      font-size: 21px;
      background: none;
      border: 1px solid #cbd5e1;
      color: #2563eb;
      padding: 1px 6px;
      cursor: pointer;
      margin-left: 6px;
      vertical-align: middle;
    }
    .audio-btn:hover { background: #eff6ff; }

    /* ── Labels ── */
    .labels {
      font-family: sans-serif;
      font-size: 22px;
      font-style: italic;
      color: #64748b;
      margin-bottom: 6px;
    }

    /* ── Variants / Alternate headwords ── */
    .variants, .ahws {
      font-size: 23px;
      color: #475569;
      margin-bottom: 8px;
    }
    .var-label { font-style: italic; }
    .var-hw    { font-weight: bold; }

    /* ── Inflections ── */
    .inflections {
      font-size: 23px;
      color: #475569;
      margin-bottom: 8px;
    }
    .inf-label { font-style: italic; }
    .inf-form  { font-weight: bold; }

    /* ── Cognate cross-reference ── */
    .cxs {
      font-size: 24px;
      margin-bottom: 10px;
      color: #475569;
    }
    .cx-label { font-style: italic; }

    /* ── Definition section ── */
    .def-section { margin-bottom: 12px; }
    .verb-divider {
      font-style: italic;
      color: #475569;
      font-size: 23px;
      margin: 8px 0 4px;
    }

    /* ── Sense sequence ── */
    .sseq { list-style: none; }
    .sense-group { margin-bottom: 6px; }

    /* ── Sense ── */
    .sense { margin: 4px 0; display: flex; gap: 8px; }
    .sense-num {
      font-weight: bold;
      min-width: 36px;
      flex-shrink: 0;
      color: #1a2e4a;
    }
    .sense-body { flex: 1; }
    .sense-lbs, .sense-sls {
      font-style: italic;
      font-size: 23px;
      color: #64748b;
      margin-right: 4px;
    }
    .sense-sgram {
      font-style: italic;
      color: #64748b;
      font-size: 22px;
      margin-right: 4px;
    }
    .sense-sgram::before { content: "["; }
    .sense-sgram::after  { content: "]"; }

    /* ── Defining text ── */
    .dt-text { display: inline; }
    .sdsense-divider { font-style: italic; color: #475569; margin: 0 4px; }

    /* ── Verbal illustration ── */
    .vis { margin: 4px 0 4px 16px; }
    .vi-text {
      font-style: italic;
      color: #374151;
    }
    .vi-text::before { content: "\2039 "; color: #94a3b8; }
    .vi-text::after  { content: " \203A"; color: #94a3b8; }
    .vi-attr {
      font-style: normal;
      font-size: 22px;
      color: #94a3b8;
      margin-left: 6px;
    }

    /* ── Usage note ── */
    .uns {
      display: inline;
      color: #475569;
    }
    .uns::before { content: " \2014 "; }

    /* ── Supplemental note ── */
    .snote {
      display: block;
      margin: 6px 0 6px 16px;
      font-size: 23px;
      color: #475569;
      border-left: 2px solid #e2e8f0;
      padding-left: 10px;
    }
    .snote::before {
      content: "Note: ";
      font-weight: bold;
      color: #1a2e4a;
    }

    /* ── Called-also note ── */
    .ca { display: inline; }
    .ca::before { content: " \2014 "; }
    .ca-intro { }
    .ca-cat { font-style: italic; }

    /* ── Run-in ── */
    .ri-word { font-weight: bold; }

    /* ── Biographical name wrap ── */
    .bnw-altname { font-style: italic; }

    /* ── Binding substitute ── */
    .bs-sense { font-style: normal; }

    /* ── Undefined run-ons ── */
    .uros { border-top: 1px solid #e2e8f0; margin-top: 14px; padding-top: 10px; }
    .uro {
      margin-bottom: 8px;
      font-size: 24px;
    }
    .uro-word { font-weight: bold; }
    .uro-word::before { content: "\2014 "; }
    .uro-fl { font-style: italic; color: #64748b; margin: 0 6px; }

    /* ── Defined run-ons ── */
    .dros { border-top: 1px solid #e2e8f0; margin-top: 14px; padding-top: 10px; }
    .dro { margin-bottom: 12px; }
    .dro-phrase { font-weight: bold; font-size: 25px; }
    .dro-phrase::before { content: "\2014 "; }

    /* ── Etymology ── */
    .etymology {
      font-size: 23px;
      color: #64748b;
      margin: 10px 0;
      padding: 6px 10px;
      background: #f8fafc;
      border-left: 2px solid #cbd5e1;
    }
    .etymology::before {
      content: "Etymology: ";
      font-weight: bold;
      font-style: normal;
      color: #475569;
    }

    /* ── First known use ── */
    .date {
      font-size: 22px;
      color: #94a3b8;
      font-family: sans-serif;
      margin: 6px 0;
    }
    .date::before { content: "First Known Use: "; font-style: italic; }

    /* ── Short definition ── */
    .shortdef {
      background: #eff6ff;
      border: 1px solid #bfdbfe;
      padding: 10px 14px;
      margin-bottom: 14px;
      font-size: 23px;
    }
    .shortdef-label {
      font-family: sans-serif;
      font-size: 21px;
      text-transform: uppercase;
      letter-spacing: 0.07em;
      color: #2563eb;
      margin-bottom: 4px;
    }
    .shortdef ol { margin-left: 18px; }
    .shortdef li { margin-bottom: 2px; }

    /* ── Usage / Synonym sections ── */
    .usage-section, .syn-section {
      margin: 12px 0;
      padding: 10px 14px;
      background: #f8fafc;
      border-left: 3px solid #94a3b8;
      font-size: 23px;
    }
    .usage-section h4, .syn-section h4 {
      font-family: sans-serif;
      font-size: 22px;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      color: #475569;
      margin-bottom: 6px;
    }

    /* ── Quotations ── */
    .quotes { margin: 12px 0; }
    .quote {
      font-size: 23px;
      color: #374151;
      margin-bottom: 8px;
      padding-left: 14px;
      border-left: 2px solid #e2e8f0;
    }
    .quote-attr {
      font-size: 22px;
      color: #94a3b8;
      margin-top: 2px;
    }

    /* ── Artwork ── */
    .art {
      margin: 22px 0;
      font-size: 13px;
      color: #475569;
    }
    .art a { color: #2563eb; }

    /* ── Directional cross-refs ── */
    .dxnls {
      font-size: 23px;
      color: #475569;
      margin: 8px 0;
    }

    /* ── Suggestions (when no match) ── */
    .suggestions {
      font-family: sans-serif;
      font-size: 24px;
      color: #475569;
      margin-top: 8px;
    }
    .suggestions ul { margin-left: 20px; margin-top: 6px; }

    /* ── Inline token styles ── */
    .smallcaps { font-variant: small-caps; }
    a          { color: #2563eb; text-decoration: none; }
    a:hover    { text-decoration: underline; }

    /* ── Meta bar (bottom of entry) ── */
    .entry-meta {
      font-family: "Courier New", monospace;
      font-size: 21px;
      color: #94a3b8;
      border-top: 1px dashed #e2e8f0;
      margin-top: 12px;
      padding-top: 6px;
    }
