
  :root{
    --hero:#4F2683;
    --hero-2:#2E1354;
    --paper:#FFFFFF;
    --ink:#231539;
    --ink-soft:#6B5B80;
    --gold:#7C3FC4;
    --gold-light:#C9A8F0;
    --line:#E6DFF0;
    --brand:#4F2683;
    --card:#FFFFFF;

    --c-boards:#4F2683;
    --c-mini:#6B3FA0;
    --c-guide:#7C52B0;
    --c-found:#3D1F66;
    --c-visual:#9B6FC7;
    --c-practice:#5A2E8C;
    --c-bedside:#2E1350;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0; background:var(--paper); color:var(--ink); font-family:'IBM Plex Sans', system-ui, sans-serif; -webkit-font-smoothing:antialiased;}
  h1,h2,h3,.serif{font-family:'Fraunces', Georgia, serif;}
  .mono{font-family:'IBM Plex Mono', monospace;}
  a{color:inherit;}
  button{font-family:inherit;}
  .wrap{max-width:1280px; margin:0 auto; padding:0 32px;}
  @media (prefers-reduced-motion: reduce){*{animation-duration:0.01ms !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}}

  /* ---------- hero ---------- */
  .hero{
    background:
      repeating-linear-gradient(0deg, rgba(255,255,255,0.035) 0px, rgba(255,255,255,0.035) 1px, transparent 1px, transparent 64px),
      repeating-linear-gradient(90deg, rgba(255,255,255,0.035) 0px, rgba(255,255,255,0.035) 1px, transparent 1px, transparent 64px),
      radial-gradient(120% 160% at 50% -10%, var(--hero) 0%, var(--hero-2) 70%);
    color:#fff; text-align:center; padding:96px 28px 84px;
  }
  .hero-icon{
    width:64px; height:64px; margin:0 auto 32px; border-radius:16px;
    background:rgba(201,154,46,0.14); border:1px solid rgba(201,154,46,0.4);
    display:flex; align-items:center; justify-content:center;
  }
  .hero-icon svg{width:28px; height:28px; color:var(--gold);}
  .hero h1{
    font-size:clamp(2.2rem, 5vw, 3.6rem); font-weight:700; line-height:1.12; letter-spacing:-0.01em;
    margin:0 0 26px;
  }
  .hero h1 .accent{display:block; font-style:italic; font-weight:500; color:var(--gold); margin-top:4px;}
  .hero p{
    font-size:1.1rem; line-height:1.6; color:#DCC9F0; max-width:44ch; margin:0 auto 40px;
  }
  .cta{
    display:inline-flex; align-items:center; gap:10px;
    background:var(--gold); color:#FFFFFF; font-weight:600; font-size:0.95rem;
    padding:14px 26px; border-radius:999px; text-decoration:none; border:none; cursor:pointer;
    transition:transform 0.15s ease, box-shadow 0.15s ease;
  }
  .cta:hover{transform:translateY(-2px); box-shadow:0 10px 24px -8px rgba(201,154,46,0.6);}
  .cta svg{width:15px; height:15px;}

  /* ---------- collection header ---------- */
  .collection-head{
    display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:22px;
    padding:56px 0 26px; border-bottom:1px solid var(--line);
  }
  .collection-title{display:flex; align-items:center; gap:14px;}
  .collection-title .ico{
    width:36px; height:36px; border-radius:9px; background:var(--brand);
    display:flex; align-items:center; justify-content:center; flex:none;
  }
  .collection-title .ico svg{width:18px; height:18px; color:#fff;}
  .collection-title h2{font-size:1.7rem; font-weight:600; margin:0; letter-spacing:-0.01em;}
  .collection-title p{margin:4px 0 0; color:var(--ink-soft); font-size:0.95rem;}
  .search-wrap{position:relative;}
  #search{
    font-family:'IBM Plex Sans', sans-serif; font-size:0.9rem;
    padding:11px 16px 11px 38px; border-radius:999px; border:1px solid var(--line);
    background:var(--card); width:250px; color:var(--ink);
    box-shadow:0 1px 2px rgba(0,0,0,0.03);
  }
  #search:focus{outline:2px solid var(--gold); outline-offset:1px;}
  .search-wrap svg{position:absolute; left:14px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:var(--ink-soft); pointer-events:none;}

  /* ---------- layout: sidebar + grid ---------- */
  .layout{display:grid; grid-template-columns:250px 1fr; gap:44px; padding:32px 0 24px; align-items:start;}
  .sidebar{position:sticky; top:24px;}
  .sidebar-label{
    font-family:'IBM Plex Mono', monospace; font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--ink-soft); margin:0 0 12px;
  }
  .series-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:3px;}
  .series-btn{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    width:100%; text-align:left; background:transparent; border:none; cursor:pointer;
    padding:9px 12px; border-radius:8px; font-size:0.88rem; color:var(--ink);
    transition:background 0.15s;
  }
  .series-btn:hover{background:#F2EAFA;}
  .series-btn .count{font-family:'IBM Plex Mono', monospace; font-size:0.76rem; color:var(--ink-soft);}
  .series-btn.active{background:var(--brand); color:#fff;}
  .series-btn.active .count{color:rgba(255,255,255,0.75);}

  .grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:22px;}
  .card{
    display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line);
    border-radius:14px; overflow:hidden; transition:transform 0.18s ease, box-shadow 0.18s ease;
  }
  .card:hover{transform:translateY(-3px); box-shadow:0 14px 28px -16px rgba(15,33,31,0.35);}
  .cover{
    position:relative; aspect-ratio:3/4; overflow:hidden;
    background-image:
      repeating-linear-gradient(135deg, rgba(255,255,255,0.06) 0px, rgba(255,255,255,0.06) 2px, transparent 2px, transparent 16px),
      linear-gradient(160deg, var(--tint) 0%, color-mix(in srgb, var(--tint) 62%, black) 100%);
  }
  .cover .icon{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; opacity:0.22;}
  .cover .icon svg{width:52%; height:52%; color:#fff;}
  .cover .tag{
    position:absolute; top:10px; left:10px; background:rgba(255,255,255,0.92); color:var(--ink);
    font-size:0.62rem; font-weight:600; letter-spacing:0.02em; padding:5px 9px; border-radius:999px;
    max-width:calc(100% - 20px);
  }
  .cover:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}
  .cover-hint{
    position:absolute;left:50%;bottom:11px;transform:translateX(-50%);z-index:2;white-space:nowrap;
    padding:6px 10px;border-radius:999px;background:rgba(46,19,84,.88);color:#fff;
    font-size:.65rem;font-weight:600;letter-spacing:.02em;box-shadow:0 3px 10px rgba(0,0,0,.2);
    transition:opacity .18s ease;
  }
  .cover-description{
    position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:center;
    padding:20px 17px;background:rgba(46,19,84,.96);color:#fff;overflow-y:auto;
    opacity:0;transform:translateY(7px);pointer-events:none;
    transition:opacity .18s ease,transform .18s ease;
  }
  .cover-description strong{font-family:'Fraunces',Georgia,serif;font-size:1rem;line-height:1.25;color:var(--gold-light);margin-bottom:9px;}
  .cover-description p{font-size:.73rem;line-height:1.48;margin:0;color:#F5EFFB;}
  .cover-description > span{font-size:.58rem;line-height:1.35;color:#CBB8DF;margin-top:11px;}
  .cover:hover .cover-description,
  .cover:focus-visible .cover-description,
  .cover.show-description .cover-description{opacity:1;transform:translateY(0);pointer-events:auto;}
  .cover:hover .cover-hint,
  .cover:focus-visible .cover-hint,
  .cover.show-description .cover-hint{opacity:0;}
  .body{padding:14px 14px 16px; display:flex; flex-direction:column; flex:1;}
  .card h3{font-size:0.92rem; line-height:1.3; font-weight:600; margin:0 0 12px; flex:1; letter-spacing:-0.005em;}
  .dl-btn{
    display:flex; align-items:center; justify-content:center; gap:7px;
    background:var(--brand); color:#fff; text-decoration:none;
    font-size:0.82rem; font-weight:500; padding:10px 10px; border-radius:9px;
    transition:background 0.15s;
  }
  .dl-btn:hover{background:#37155E;}
  .dl-btn svg{width:14px; height:14px;}

  .no-results{display:none; color:var(--ink-soft); padding:60px 0; text-align:center; font-size:0.95rem;}

  /* ---------- clinical article directory ---------- */
  .article-library{margin-top:72px; padding:64px 0 20px; border-top:1px solid var(--line);}
  .article-library-head{max-width:760px; margin-bottom:28px;}
  .article-eyebrow{
    font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--brand); margin:0 0 9px;
  }
  .article-library-head h2{font-size:2rem; line-height:1.2; margin:0 0 10px;}
  .article-library-head > p:last-child{color:var(--ink-soft); line-height:1.6; margin:0;}
  .article-category-nav{display:flex; flex-wrap:wrap; gap:9px; margin:0 0 34px;}
  .article-category-nav a{
    display:inline-flex; align-items:center; gap:8px; padding:9px 13px; border:1px solid var(--line);
    border-radius:999px; background:#fff; color:var(--ink); text-decoration:none; font-size:0.82rem; font-weight:500;
  }
  .article-category-nav a:hover{border-color:var(--brand); background:#F5EFFB;}
  .article-category-nav span{color:var(--ink-soft); font-family:'IBM Plex Mono', monospace; font-size:0.72rem;}
  .article-groups{display:grid; gap:24px;}
  .article-group{scroll-margin-top:24px; border:1px solid var(--line); border-radius:14px; background:#fff; overflow:hidden;}
  .article-group-heading{
    display:flex; justify-content:space-between; align-items:baseline; gap:18px;
    padding:18px 22px; background:#F5EFFB; border-bottom:1px solid var(--line);
  }
  .article-group-heading h3{font-size:1.25rem; margin:0;}
  .article-group-heading span{color:var(--ink-soft); font-family:'IBM Plex Mono', monospace; font-size:0.72rem; white-space:nowrap;}
  .article-link-list{list-style:none; margin:0; padding:4px 22px; columns:2; column-gap:42px;}
  .article-link-list li{break-inside:avoid; border-bottom:1px solid var(--line);}
  .article-link-list a{
    display:flex; justify-content:space-between; align-items:flex-start; gap:14px;
    padding:13px 0; color:var(--ink); text-decoration:none; font-size:0.9rem; line-height:1.45;
  }
  .article-link-list a:hover{color:var(--brand);}
  .article-link-list a span{color:var(--brand); flex:none; font-size:1rem;}
  .article-admin-note{padding:16px 18px; border:1px solid #e2b0b7; background:#fff5f6; border-radius:10px; color:#8a2734;}

  /* ---------- author ---------- */
  .author{
    margin-top:70px; padding:56px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    background:#F5EFFB;
  }
  .author-inner{display:flex; gap:36px; align-items:center; flex-wrap:wrap;}
  .avatar{
    width:132px; height:132px; border-radius:50%; flex:none;
    background:linear-gradient(160deg, var(--brand), var(--hero-2));
    display:flex; align-items:center; justify-content:center; overflow:hidden;
    font-family:'Fraunces', serif; font-size:2.4rem; font-weight:600; color:var(--gold-light);
    border:3px solid #fff; box-shadow:0 6px 20px -8px rgba(15,33,31,0.4);
  }
  .avatar img{width:100%; height:100%; object-fit:cover;}
  .author-text{flex:1; min-width:260px;}
  .author-eyebrow{font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 8px;}
  .author-text h3{font-size:1.5rem; font-weight:600; margin:0 0 6px;}
  .author-role{color:var(--gold); font-weight:500; font-size:0.92rem; margin:0 0 14px;}
  .author-text p.bio{color:var(--ink-soft); font-size:0.96rem; line-height:1.6; max-width:62ch; margin:0;}
  .author-note{
    margin-top:16px; font-size:0.8rem; color:var(--ink-soft); background:#fff; border:1px dashed var(--line);
    border-radius:8px; padding:10px 14px; max-width:62ch;
  }

  /* ---------- author detail ---------- */
  .author-role-list{list-style:none; margin:0 0 20px; padding:0; display:flex; flex-direction:column; gap:7px; max-width:62ch;}
  .author-role-list li{
    font-size:0.94rem; color:var(--ink); line-height:1.5; padding-left:18px; position:relative;
  }
  .author-role-list li::before{
    content:""; position:absolute; left:0; top:0.55em; width:6px; height:6px; border-radius:50%; background:var(--gold);
  }
  .contact-row{display:flex; gap:10px; flex-wrap:wrap; margin-top:18px;}
  .contact-btn{
    display:inline-flex; align-items:center; gap:8px; font-size:0.85rem; font-weight:500;
    padding:10px 16px; border-radius:999px; text-decoration:none; border:1px solid var(--line); background:#fff; color:var(--ink);
    transition:border-color 0.15s, background 0.15s;
  }
  .contact-btn:hover{border-color:var(--brand); background:#F5EFFB;}
  .contact-btn svg{width:14px; height:14px;}

  /* ---------- capstone ---------- */
  .capstone{padding:56px 0;}
  .capstone .wrap{max-width:900px;}
  .capstone h3{font-size:1.4rem; font-weight:600; margin:0 0 6px;}
  .capstone .eyebrow{font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 8px;}
  .capstone p{color:var(--ink-soft); font-size:0.96rem; line-height:1.65; margin:0 0 18px;}
  .amazon-row{display:flex; gap:10px; flex-wrap:wrap; align-items:center; font-size:0.9rem; color:var(--ink-soft);}
  .amazon-row a{color:var(--brand); font-weight:600; text-decoration:none; border-bottom:1px solid var(--gold);}
  .amazon-row a:hover{color:var(--gold);}

  /* ---------- footer ---------- */
  footer{margin-top:0; background:var(--hero-2); color:#EDE1F7; padding:52px 0 30px;}
  footer .wrap{max-width:1280px;}
  footer h4{font-family:'Fraunces', serif; font-size:1.25rem; font-weight:600; margin:0 0 10px;}
  footer p{color:#C7AEE0; font-size:0.9rem; line-height:1.6; margin:0;}
  .links-cols{display:grid; grid-template-columns:1fr 1fr; gap:8px 32px; margin:22px 0 0; padding:0; list-style:none;}
  .links-cols li{border-top:1px solid rgba(255,255,255,0.1); padding:11px 0;}
  .links-cols a{color:#EDE1F7; text-decoration:none; font-size:0.9rem; display:flex; justify-content:space-between; gap:10px; align-items:center;}
  .links-cols a:hover{color:var(--gold-light);}
  .links-cols .g-link{color:#B39BD0; font-size:0.78rem; text-decoration:underline; flex:none;}
  .disclaimer{
    margin-top:44px; padding-top:28px; border-top:1px solid rgba(255,255,255,0.12);
    font-size:0.78rem; line-height:1.65; color:#B39BD0; max-width:900px;
  }
  .foot-bottom{max-width:1280px; margin:28px auto 0; padding:20px 32px 0; border-top:1px solid rgba(255,255,255,0.12); font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:#9B82B8;}
  @media (max-width:640px){.links-cols{grid-template-columns:1fr;}}

  @media (max-width:980px){
    .layout{grid-template-columns:1fr;}
    .sidebar{position:static;}
    .series-list{flex-direction:row; flex-wrap:wrap;}
    .series-btn{width:auto; border:1px solid var(--line);}
    .grid{grid-template-columns:repeat(3, 1fr);}
  }
  @media (max-width:680px){
    .grid{grid-template-columns:repeat(2, 1fr);}
    .collection-head{align-items:flex-start;}
    #search{width:100%;}
    .author-inner{text-align:center; justify-content:center;}
    .article-link-list{columns:1;}
  }
  @media (max-width:420px){
    .grid{grid-template-columns:1fr 1fr;}
    .cover-description{padding:15px 12px;justify-content:flex-start;}
    .cover-description strong{font-size:.86rem;}
    .cover-description p{font-size:.66rem;line-height:1.4;}
    .cover-description > span{display:none;}
  }

.cover > img{width:100%;height:100%;object-fit:cover;display:block;}
.dl-btn.is-missing{background:#756b80;cursor:not-allowed;opacity:.82;}
.gi-pdf-warning{font-size:.74rem;color:#8a2734;margin-top:8px;text-align:center;}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important;}
