/* components.css — v2: nav, chips, tiles, sheet, timeline, rows, cards */

/* ---------- Nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:var(--z-nav);background:rgba(255,255,255,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:var(--border-hairline);transition:height var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}
.nav.scrolled{height:var(--nav-h-scrolled);box-shadow:var(--shadow-xs)}
.nav-inner{max-width:var(--wrap-wide);margin:0 auto;height:100%;padding:0 var(--page-gutter);display:flex;align-items:center;gap:var(--space-8)}
.brand{font-family:var(--font-display);font-weight:600;font-size:20px;letter-spacing:var(--tracking-display);color:var(--ink-900);text-decoration:none;white-space:nowrap}
.brand:hover{color:var(--ink-900)}
.brand .brand-dot{color:var(--blue-500-ramp)}
.nav-links{display:flex;align-items:center;gap:var(--space-6);margin-left:auto}
.nav-links a{position:relative;font-size:13.5px;font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-500);text-decoration:none;padding:13px 0}
.nav-links a::after{content:"";position:absolute;left:0;bottom:2px;height:2px;width:100%;background:var(--blue-500-ramp);transform:scaleX(0);transform-origin:left;transition:transform var(--duration-fast) var(--ease-out)}
.nav-links a:hover,.nav-links a.active,.nav-links a[aria-current="true"]{color:var(--ink-900)}
.nav-links a:hover::after,.nav-links a.active::after,.nav-links a[aria-current="true"]::after{transform:scaleX(1)}
.nav-cta{flex:none;display:inline-flex;align-items:center;min-height:var(--tap-min);padding:10px 18px;border:1px solid var(--grey-300);border-radius:var(--radius-md);font-size:13.5px;font-weight:700;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-900);text-decoration:none;transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}
.nav-cta .arr{color:var(--blue-500-ramp);margin-left:6px}
.nav-cta:hover{border-color:var(--blue-500-ramp);color:var(--link)}
.menu-btn{display:none;width:44px;height:44px;margin-left:auto;align-items:center;justify-content:center;color:var(--ink-900);font-size:22px;line-height:1}
@media (max-width:900px){
  .nav-links{display:none}
  .nav-links.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:var(--border-hairline);padding:var(--space-2) var(--page-gutter) var(--space-4)}
  .nav-links.open a{display:block;font-family:var(--font-display);font-size:20px;text-transform:none;letter-spacing:0;padding:14px 0;border-bottom:var(--border-hairline)}
  .nav-links.open a::after{display:none}
  .menu-btn{display:inline-flex}
  .nav-cta{margin-left:var(--space-4);padding:8px 12px}
}
@media (max-width:480px){
  .brand{font-size:18px}
  .nav-cta{padding:8px 10px;font-size:12px;margin-left:var(--space-2)}
  .nav-inner{gap:var(--space-3)}
}

/* ---------- Buttons / chips ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;min-height:var(--tap-min);padding:12px 20px;border-radius:var(--radius-md);font-weight:600;font-size:var(--text-sm);text-decoration:none;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}
.btn-primary{background:var(--blue-900-navy);color:#fff}
.btn-primary:hover{background:var(--blue-800);color:#fff}
.btn-ghost{background:transparent;border:1px solid var(--grey-300);color:var(--ink-900)}
.btn-ghost:hover{border-color:var(--blue-500-ramp);color:var(--link)}

/* ---------- Hero meta: credential strip, role chips, stats ---------- */
.cred-strip{font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--ink-500);line-height:2}
.cred-strip .sep{color:var(--ink-500);padding:0 2px}
.hero-roles{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-6);margin-top:var(--space-4)}
.role-chip{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:var(--ink-700);min-height:44px}
.role-chip::before{content:"";width:8px;height:8px;flex:none;background:var(--blue-500-ramp)}
a.role-chip{text-decoration:none}
a.role-chip:hover{color:var(--link);text-decoration:underline;text-underline-offset:3px}
.stats-band{background:var(--grey-150);border-top:var(--border-hairline);border-bottom:var(--border-hairline)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-8);padding-top:var(--space-10);padding-bottom:var(--space-10)}
.stat{position:relative}
.stat-num{font-family:var(--font-display);font-weight:700;font-size:var(--stat-num);line-height:1;color:var(--ink-900);letter-spacing:var(--tracking-display)}
.stat-num .stat-affix{color:var(--blue-500-ramp)}
.stat-label{font-size:var(--text-sm);color:var(--ink-500);margin-top:var(--space-2);max-width:15em;line-height:var(--leading-snug)}
@media (min-width:961px){.stat + .stat{border-left:1px solid var(--grey-250);padding-left:var(--space-8)}}
@media (max-width:900px){.stats-grid{grid-template-columns:repeat(2,1fr)}}

/* ---------- Quote teaching card ---------- */
.quote-card{border-top:2px solid var(--blue-500-ramp);padding-top:var(--space-5)}
.quote-card blockquote{margin:0;font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(22px,2vw,27px);line-height:var(--leading-snug);color:var(--ink-900);transition:opacity var(--duration-fast) var(--ease-out)}
.quote-card figcaption,.quote-attr{margin-top:var(--space-4);font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-400);transition:opacity var(--duration-fast) var(--ease-out)}
.quote-card.fading blockquote,.quote-card.fading figcaption{opacity:0}
.creed{margin-top:var(--space-8);border-left:2px solid var(--blue-500-ramp);padding-left:var(--space-5);font-family:var(--font-display);font-style:italic;font-size:var(--text-lg);line-height:var(--leading-snug);color:var(--ink-900)}

/* ---------- Work controls: path strip, filters, search ---------- */
.path-strip{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-8)}
.path-strip:empty{display:none}
.path-step,.path-strip button{display:inline-flex;align-items:center;gap:10px;min-height:var(--tap-min);padding:9px 16px;border:1px solid var(--grey-300);border-radius:var(--radius-pill);font-size:13.5px;font-weight:600;color:var(--ink-600);background:var(--paper);text-align:left;transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}
.path-step:hover,.path-strip button:hover{border-color:var(--blue-500-ramp);color:var(--ink-900)}
.path-step .step-num,.path-strip .step-num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--blue-600-link);font-weight:700}
.work-controls{margin-top:var(--space-10)}
.search-row{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}
.search-label{font-size:var(--text-2xs);font-weight:800;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-400)}
.search-input{flex:1 1 260px;min-height:48px;padding:10px 16px;border:var(--border-strong);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink-900);font-size:16px}
.search-input::placeholder{color:var(--ink-400)}
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:var(--space-6) 0 var(--space-4)}
.filters .filters-label{font-size:var(--text-2xs);font-weight:800;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-400);margin-right:var(--space-2)}
.filter-btn,.filters button{display:inline-flex;align-items:center;gap:7px;min-height:var(--tap-min);padding:9px 16px;border:1px solid var(--grey-300);border-radius:var(--radius-pill);font-size:13.5px;font-weight:600;color:var(--ink-600);background:transparent;transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}
.filter-btn:hover,.filters button:hover{border-color:var(--blue-500-ramp);color:var(--ink-900)}
.filter-btn.active,.filter-btn[aria-pressed="true"],.filters button.active,.filters button[aria-pressed="true"]{background:var(--blue-900-navy);border-color:var(--blue-900-navy);color:#fff}
.filter-btn .count,.filters button .count{font-family:var(--font-mono);font-size:var(--text-xs);opacity:.75}
.result-line{font-size:var(--text-sm);color:var(--ink-500);min-height:1.4em}

/* ---------- Project tiles (rendered by JS) ---------- */
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-10) var(--space-5);margin-top:var(--space-8)}
@media (max-width:960px){.project-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.project-grid{grid-template-columns:1fr}}
.tile{position:relative;display:flex;flex-direction:column;width:100%;text-align:left;background:var(--paper-raised);border:0;padding:0;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}
.tile.hide{display:none}
.tile::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--blue-500-ramp);transform:scaleX(0);transform-origin:left;transition:transform var(--duration-fast) var(--ease-out);z-index:2}
@media (hover:hover) and (pointer:fine){
  .tile:hover{transform:translateY(var(--lift-y));box-shadow:var(--shadow-lift)}
  .tile:hover::before{transform:scaleX(1)}
}
.tile:has(.tile-open[aria-expanded="true"])::before{transform:scaleX(1)}
.tile:has(.tile-open[aria-expanded="true"]) .tile-body{background:var(--blue-50)}
.tile img,.tile-cover{width:100%;aspect-ratio:var(--tile-aspect);object-fit:cover;background:var(--grey-100)}
.tile-body{border:var(--border-hairline);border-top:0;padding:var(--space-5);display:flex;flex-direction:column;flex:1}
.tile-meta,.tile-cat-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3)}
.tile-cat{font-size:var(--text-2xs);font-weight:800;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--blue-600-link)}
.tile-years{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-400);text-align:right}
.tile h3{font-size:var(--text-lg);font-weight:600;line-height:var(--leading-display);margin-top:var(--space-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tile:hover h3{color:var(--blue-800)}
.tile-short{font-size:var(--text-sm);color:var(--ink-500);line-height:var(--leading-snug);margin-top:var(--space-1)}
.tile-study,.tile-cta,.tile-more,.study-link{margin-top:auto;padding-top:var(--space-4);font-size:var(--text-sm);font-weight:600;color:var(--link)}
.tile-study .arr,.tile-cta .arr,.tile-more .arr,.study-link .arr{color:var(--blue-500-ramp);display:inline-block;transition:transform var(--duration-fast) var(--ease-out)}
.tile:hover .tile-study .arr,.tile:hover .tile-cta .arr,.tile:hover .study-link .arr{transform:translateX(3px)}
.grid-empty{grid-column:1/-1;padding:var(--space-10) 0;font-size:var(--text-md);color:var(--ink-500)}

/* ---------- Study sheet (right panel desktop / full sheet mobile) ---------- */
.sheet-backdrop{position:fixed;inset:0;background:var(--scrim);z-index:calc(var(--z-sheet) - 1)}
.sheet-backdrop[hidden],.sheet[hidden]{display:none!important}
.sheet{position:fixed;top:0;right:0;bottom:0;width:min(680px,100vw);z-index:var(--z-sheet);background:var(--paper);box-shadow:var(--shadow-panel);overflow-y:auto;overscroll-behavior:contain;border-top:2px solid var(--blue-500-ramp);padding:var(--space-8) var(--space-8) var(--space-10);animation:sheet-in var(--duration-slow) var(--ease-out)}
@keyframes sheet-in{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.sheet{animation:none}}
.sheet-close{position:sticky;top:0;float:right;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:24px;color:var(--ink-500);background:var(--paper);z-index:2}
.sheet-close:hover{color:var(--ink-900)}
.sp-img,.sheet img.sp-photo{width:100%;aspect-ratio:var(--tile-aspect-wide);object-fit:cover;background:var(--grey-100);margin-bottom:var(--space-6)}
.sp-cat{font-size:var(--text-2xs);font-weight:800;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--blue-600-link)}
.sheet h3,.sp-title{font-size:var(--text-xl);font-weight:600;line-height:var(--leading-display);margin-top:var(--space-2);clear:left}
.sp-years{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-400);margin-top:var(--space-2)}
.sp-meta{font-size:var(--text-sm);color:var(--ink-500);margin-top:var(--space-1)}
.sp-section{margin-top:var(--space-8)}
.sp-section > h4{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:800;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-400);margin-bottom:var(--space-3)}
.sp-body p{font-size:var(--text-md);color:var(--ink-600);line-height:var(--leading-body)}
.sp-body p + p{margin-top:var(--space-4)}
.sp-lesson{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(22px,2vw,27px);line-height:var(--leading-snug);color:var(--ink-900)}
.sp-lesson::before{content:"";display:block;width:24px;height:3px;background:var(--blue-500-ramp);margin-bottom:var(--space-4)}
.sp-lesson-note{font-size:var(--text-xs);color:var(--ink-400);margin-top:var(--space-2);letter-spacing:var(--tracking-label);text-transform:uppercase;font-weight:700}
.file-row,.doc-row{display:flex;align-items:center;gap:var(--space-4);min-height:56px;padding:var(--space-3) var(--space-2);border-top:var(--border-hairline);text-decoration:none;color:var(--ink-900)}
.file-row:last-child,.doc-row:last-child{border-bottom:var(--border-hairline)}
.file-row:hover,.doc-row:hover{background:var(--grey-50);box-shadow:inset 2px 0 0 var(--blue-500-ramp);color:var(--ink-900)}
.file-mark{flex:none;width:30px;height:36px;border:1px solid var(--grey-300);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-2xs);font-weight:800;color:var(--blue-600-link)}
.file-row .file-title,.doc-row .file-title{font-weight:600;font-size:var(--text-base);color:var(--ink-900);line-height:1.3}
.file-row:hover .file-title{color:var(--link)}
.file-row .file-meta,.doc-row .file-meta{display:block;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-400);font-weight:400;margin-top:2px}
.file-row .file-open,.doc-row .file-open{margin-left:auto;flex:none;font-size:var(--text-sm);font-weight:600;color:var(--link)}
.ref-list li{padding:var(--space-1) 0}
.ref-list a{font-size:var(--text-base)}
.ref-list a .arr{color:var(--blue-500-ramp);text-decoration:none}
.sheet-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-10);padding-top:var(--space-5);border-top:var(--border-hairline)}
.sheet-nav button{font-size:var(--text-sm);font-weight:600;color:var(--link);min-height:var(--tap-min);padding:8px 4px}
.sheet-nav button:hover{color:var(--link-hover)}
.sp-count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-400)}
@media (max-width:760px){
  .sheet{width:100vw;border-radius:var(--radius-md) var(--radius-md) 0 0;border-top:0;animation:sheet-up var(--duration-slow) var(--ease-out)}
  @keyframes sheet-up{from{transform:translateY(100%)}to{transform:none}}
  @media (prefers-reduced-motion:reduce){.sheet{animation:none}}
}

/* ---------- Timeline ---------- */
.tl-controls{position:sticky;top:var(--nav-h-scrolled);background:var(--paper);z-index:5;padding:var(--space-5) 0 var(--space-4);border-bottom:var(--border-hairline)}
.tl-scrub-row{display:flex;align-items:center;gap:var(--space-4)}
.tl-scrub{flex:1;appearance:none;-webkit-appearance:none;height:44px;background:transparent;cursor:pointer}
.tl-scrub::-webkit-slider-runnable-track{height:2px;background:var(--grey-250)}
.tl-scrub::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-9px;border-radius:var(--radius-circle);background:var(--paper);border:2px solid var(--blue-500-ramp);box-shadow:var(--shadow-xs)}
.tl-scrub::-moz-range-track{height:2px;background:var(--grey-250)}
.tl-scrub::-moz-range-thumb{width:18px;height:18px;border-radius:var(--radius-circle);background:var(--paper);border:2px solid var(--blue-500-ramp);box-shadow:var(--shadow-xs)}
.tl-era-labels{display:flex;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-400);margin-top:var(--space-1)}
.tl-readout{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-3)}
.tl-era{font-weight:700;font-size:var(--text-sm);color:var(--ink-900)}
.tl-reset{margin-left:auto;font-size:var(--text-sm);font-weight:600;color:var(--link);min-height:var(--tap-min);padding:8px 4px}
.timeline{position:relative;margin-top:var(--space-10);padding-left:6px}
.timeline::before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:2px;background:var(--grey-250)}
.tl-item{position:relative;padding-left:34px;padding-bottom:var(--space-8);transition:opacity var(--duration-med) var(--ease-out)}
.tl-item::before{content:"";position:absolute;left:0;top:6px;width:12px;height:12px;border-radius:var(--radius-circle);background:var(--paper);border:3px solid var(--link)}
.tl-item.dim{opacity:.45}
.tl-item.active::before{background:var(--blue-500-ramp);border-color:var(--blue-500-ramp)}
.tl-years{font-size:var(--text-xs);font-weight:800;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--link)}
.tl-item h3,.tl-role{font-size:22px;font-weight:600;line-height:var(--leading-display);margin-top:var(--space-1)}
.tl-org{font-weight:600;font-size:var(--text-base);color:var(--ink-500)}
.tl-text,.tl-item p.desc{font-size:var(--text-base);color:var(--ink-600);max-width:52em;margin-top:var(--space-1)}
.tl-concurrent{background:var(--blue-50);border-left:2px solid var(--blue-500-ramp);padding-top:var(--space-4);padding-right:var(--space-4);margin-bottom:var(--space-8)}
.tl-concurrent::before{border-color:var(--blue-500-ramp)}
.edu-block{margin-top:var(--space-6);border-top:var(--border-hairline);padding-top:var(--space-8)}
.edu-block h3{font-size:21px;font-weight:600;margin-bottom:var(--space-4)}
.edu-row{display:flex;align-items:baseline;gap:var(--space-4);padding:var(--space-3) 0;border-top:var(--border-hairline);font-size:var(--text-base);color:var(--ink-600)}
.edu-row:last-child{border-bottom:var(--border-hairline)}
.edu-row .edu-degree{font-weight:700;color:var(--ink-900)}
.edu-row .edu-year{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-400);flex:none}

/* ---------- Academia cards ---------- */
.acad-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10) var(--space-6);margin-top:var(--space-10)}
@media (max-width:860px){.acad-grid{grid-template-columns:1fr}}
.acad-card{position:relative;border-top:var(--border-hairline);padding-top:var(--space-5)}
.acad-card::before{content:"";position:absolute;top:-1px;left:0;width:48px;height:2px;background:var(--blue-500-ramp)}
.acad-card h3{font-size:22px;font-weight:600}
.acad-card .acad-inst{font-size:var(--text-sm);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-500);margin-top:var(--space-1)}
.acad-card p{font-size:var(--text-base);color:var(--ink-600);margin-top:var(--space-3)}
.acad-card ul li{padding:var(--space-2) 0;border-top:var(--border-hairline);font-size:var(--text-base);color:var(--ink-600)}
.acad-card ul li:first-child{border-top:0}
.acad-card ul b,.acad-card ul strong{color:var(--ink-900)}
.acad-card .forthcoming{font-family:var(--font-display);font-style:italic;font-weight:600;color:var(--link)}
.acad-card .acad-link{margin-top:var(--space-3);font-weight:600}

/* ---------- Writing rows ---------- */
.books{margin-top:var(--space-8);border-bottom:var(--border-hairline)}
.book-row{display:grid;grid-template-columns:170px 1fr auto;gap:var(--space-6);align-items:start;padding:var(--space-6) var(--space-2);border-top:var(--border-hairline)}
a.book-row{text-decoration:none;color:inherit}
a.book-row:hover{background:var(--grey-50);box-shadow:inset 2px 0 0 var(--blue-500-ramp)}
a.book-row:hover .book-title{color:var(--link)}
.book-year{font-family:var(--font-display);font-weight:700;font-size:22px;line-height:1.2;color:var(--link)}
.book-year small{display:block;font-family:var(--font-sans);font-size:var(--text-xs);font-weight:600;color:var(--ink-400);margin-top:2px}
.book-title{font-size:21.5px;font-weight:600;line-height:var(--leading-display)}
.book-blurb{font-size:var(--text-sm);color:var(--ink-500);max-width:38em;margin-top:var(--space-1);line-height:var(--leading-snug)}
.book-action{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2);text-align:right}
.book-action .book-link{font-size:var(--text-sm);font-weight:600;color:var(--link);white-space:nowrap}
.book-action .book-also{font-size:var(--text-xs);color:var(--ink-400)}
@media (max-width:760px){.book-row{grid-template-columns:1fr}.book-action{align-items:flex-start;text-align:left}}

/* Tile title button: full-width, left-aligned (UA button text centers otherwise) */
.tile-open{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}

/* ---------- Quote controls + full-text dialog (Round 2) ---------- */
.quote-controls{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-top:var(--space-5);align-items:center}
.quote-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:1px solid var(--grey-300);border-radius:var(--radius-pill);background:var(--paper);font-size:13.5px;font-weight:600;color:var(--ink-700);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}
.quote-btn:hover{border-color:var(--blue-500-ramp);color:var(--link)}
.quote-btn[aria-pressed="true"]{background:var(--blue-900-navy);border-color:var(--blue-900-navy);color:#fff}
.quote-full{border-color:transparent;color:var(--link)}
.quote-sheet blockquote{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(24px,2.6vw,32px);line-height:var(--leading-snug);color:var(--ink-900);margin:var(--space-6) 0 var(--space-4)}
.quote-sheet .q-attr{font-size:var(--text-xs);font-weight:700;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-500)}
.quote-sheet .q-link{display:inline-flex;align-items:center;min-height:44px;margin-top:var(--space-8);font-weight:600;color:var(--link)}
.quote-sheet .q-link:hover{color:var(--link-hover)}
.book-blurb{display:block}
