// Publications & Books — tabbed by category, reverse-chronological within.
// Entries sourced from Daniel B. Garrie's 2025 master CV.

const PUBLICATIONS = {
  books: [
    { y: 2021, t: 'Don\u2019t Fall Behind: A Cybersecurity Guide for Law Firms', v: 'Lexeprint Publishing', a: 'Practical playbook for small and midsize law firms confronting the next decade of cyber risk.' },
    { y: 2020, t: 'Plugged In: Guidebook to Software and the Law (4th ed.)', v: 'Thomson Reuters', co: 'with Hon. F. Allegra', a: 'Bench-and-bar reference on how courts treat software, code, licensing, and digital evidence.' },
    { y: 2019, t: 'Cybersecurity & the Courthouse: Safeguarding the Judicial Process', v: 'Wolters Kluwer', co: 'with Hon. L. Gordon', a: 'How courts must defend the integrity of judicial systems against cyber compromise.' },
    { y: 2018, t: 'Plugged In: Guidebook to Software and the Law (3rd ed.)', v: 'Thomson Reuters', co: 'with Hon. F. Allegra' },
    { y: 2017, t: 'Law Firm Cybersecurity', v: 'American Bar Association', co: 'with B. Spernow', a: 'ABA-published treatise on the obligations and operational practices required of modern law firms.' },
    { y: 2016, t: 'Cyberwarfare: Understanding the Law, Policy, and Technology (2015\u20132016 ed.)', v: 'Thomson Reuters Legal Works' },
    { y: 2015, t: 'Understanding Software, the Internet, Mobile Computing, and the Cloud: A Guide for Judges', v: 'Federal Judicial Center', a: 'Commissioned by the FJC. Foundational reference distributed to federal judges nationwide.' },
    { y: 2015, t: 'Plugged In: Guidebook to Software and the Law (2015 ed.)', v: 'Thomson Reuters', co: 'with Hon. F. Allegra' },
    { y: 2015, t: 'Software and the Law: Digital Forensic Investigations and E-Discovery', v: 'Thomson Reuters' },
    { y: 2014, t: 'Cyber Warfare: Understanding the Law, Policy and Technology (2014 ed.)', v: 'Thomson Reuters', co: 'with M. Silber' },
    { y: 2013, t: 'Dispute Resolution and E-discovery (2013 ed.)', v: 'Thomson Reuters', co: 'with Y. Griver' },
    { y: 2013, t: 'The New Frontier of Warfare', v: 'Journal of Law and Cyberwarfare' },
    { y: 2012, t: 'Treatise on Electronic Discovery and Dispute Resolution', v: 'Thomson Reuters', co: 'with Y. Griver', a: 'Multi-volume treatise on the discovery and resolution of electronically stored information disputes.' },
    { y: 2009, t: 'Skirting the Boards of Privacy: Examining the Spyware Technologies on the Web and Network Neutrality', v: 'Spyware (G. Chandana ed.)' },
  ],
  chapters: [
    { y: 2021, t: 'Chapter 30 \u2014 Cyber Warfare & Cybersecurity', v: 'eDiscovery for Corporate Counsel (2021 ed.), Thomson Reuters', co: 'with S. Walsh' },
    { y: 2017, t: 'Chapter 30 \u2014 Cyber Warfare & Cybersecurity', v: 'eDiscovery for Corporate Counsel (2017 ed.), Thomson Reuters' },
    { y: 2010, t: 'Technology: The Fire That Burned Down the House?', v: 'The OLP Thought Leader\u2019s Guide to E-Discovery, Org. of Legal Professionals' },
    { y: 2010, t: 'The Good, the Bad and the Ugly of Electronic Archiving', v: 'The OLP Thought Leader\u2019s Guide to E-Discovery, Org. of Legal Professionals', co: 'with J. Chatelain' },
    { y: 2009, t: 'Parasiteware: Unlocking Personal Privacy', v: 'Wire Tapping: Regulatory Perspectives, Amicus Books (J. Ramakistaish ed.)', co: 'with R. Wong' },
    { y: 2008, t: 'Navigating the Global Privacy Ocean: Issues and Concerns for Multinational Corporations', v: 'Internet Privacy and Legal Issues (G. Usha ed.)' },
    { y: 2008, t: 'Electronic Discovery Cost Shifting: A Modest Proposal for Change', v: 'Electronic Evidence and Legal Issues, India Univ. Press' },
    { y: 2006, t: 'Warning: Software May be Hazardous to Your Privacy', v: 'Legal, Privacy, and Security Issues', co: 'with S. Kaufman' },
  ],
  reviews: [
    { y: 2017, t: 'Cyber Risk Insurance: Revaluating Traditional Coverage Issues in the Context of Cyber', v: 'Hastings Business Law Journal, Vol. 14 Issue 2' },
    { y: 2017, t: 'Why Arbitration Clauses May Make Sense in Cyber Insurance Policies', v: 'Cardozo Journal of Conflict Resolution, Vol. 19:43' },
    { y: 2017, t: 'It\u2019s the Cybercrime and its Sponsors (Not My Cyber-Security), Stupid', v: 'Journal of Law and Cyber Warfare, Vol. 5 Issue 2' },
    { y: 2017, t: 'Physical Damage and Cyber Insurance', v: 'Brooklyn Law Journal' },
    { y: 2016, t: 'An Unsatisfactory State of the Law: The Limited Options for a Corporation Dealing with Cyber Hostilities by State Actors', v: 'Cardozo Law Review, Vol. 37 No. 5', co: 'with Lt. Col. S. Reeves' },
    { y: 2016, t: 'So You\u2019re Telling Me There\u2019s A Chance: How the Articles on State Responsibility Could Empower Corporate Responses to State-Sponsored Cyber Attacks', v: 'Harvard National Security Journal (Winter 2016)', co: 'with Lt. Col. S. Reeves', a: 'Argues international law affords corporate counter-response options previously assumed unavailable.' },
    { y: 2015, t: 'An Unsatisfactory State of The Law: The Limited Options for a Corporation Dealing with Cyber Hostilities by State Actors', v: 'Harvard National Security Journal', co: 'with S. Reeves' },
    { y: 2014, t: 'Digital Forensic Evidence in the Courtroom: Understanding Content & Quality', v: 'Northwestern Journal of Technology & Intellectual Property, Vol. 12 Issue 2', co: 'with J. Morissy' },
    { y: 2014, t: 'Cyber-Security Insurance: Navigating the Landscape of a Growing Field', v: '31 J. Marshall J. Info. Tech. & Privacy L. 379', co: 'with M. Mann' },
    { y: 2013, t: 'The E-Discovery Dance for Patent Litigation: The Federal Circuit Tries to Change the Tune', v: 'Washington Journal of Law, Technology & Arts, Vol. 8 Issue 4 (Winter 2013)' },
    { y: 2013, t: 'The Federal Circuit Tries to Change the Tune to the E-Discovery Dance', v: '22 Fed. Cir. B.J. 347' },
    { y: 2013, t: 'The Evolution of E-Discovery Model Orders', v: '28 Syracuse Sci. & Tech. L. Rep. 121', co: 'with M. Lang' },
    { y: 2013, t: 'Cyber Warfare & the Corporate Environment', v: '2 J.L. & Cyber War 1', co: 'with S. Rao' },
    { y: 2013, t: 'Do We Need Amendments to Federal Rule of Civil Procedure 26, 37?', v: 'Am. J. Trial Advoc. 533', co: 'with V. Strumwasser' },
    { y: 2013, t: 'Matrimonial Law Economics: Electronic Discovery and Change in Senior Partner\u2019s Roles', v: 'Am. J. Family L. (Spring 2013)' },
    { y: 2012, t: 'Effective Keyword Selection Requires a Mastery of Storage Technology & the Law', v: '32 Pace L. Rev. 400' },
    { y: 2012, t: 'An Argument for Uniform E-Discovery Practice in Cross-Border Civil Litigation', v: '7 J. Bus. & Tech. L. 341', co: 'with D. Gelb' },
    { y: 2012, t: 'Unchaining E-Discovery in the Patent Courts', v: '8 Wash. J.L. Tech. & Arts 487', co: 'with Y. Griver' },
    { y: 2012, t: 'Digital Sexual Harassment in the Complex Social Computing Workplace', v: 'Michigan Journal of Gender & Law (Spring 2012)' },
    { y: 2012, t: 'Cyber Warfare, What Are the Rules?', v: '1 J.L. & Cyber Warfare 1' },
    { y: 2012, t: 'E-Discovery in New Zealand under the New Amended Rules', v: '9 Digital Evidence & Elec. Signature L. Rev. 7', co: 'with D. Harvey' },
    { y: 2011, t: 'E-Discovery Mediation & the Art of Keyword Search', v: '13 Cardozo J. Conflict Resol. 467', co: 'with E. Machuca' },
    { y: 2010, t: 'Legally Correct but Technologically Off-the-Mark', v: '9 Nw. J. Tech. & Intell. Prop. 1', co: 'with B. Spernow' },
    { y: 2010, t: 'E-Discovery in Criminal Cases: A Need for Specific Rules', v: 'Suffolk University Law Review', co: 'with D. Gelb' },
    { y: 2010, t: 'Criminal Cases Gone Paperless: Hanging with the Wrong Crowd', v: '47 San Diego L. Rev. 521' },
    { y: 2010, t: 'Data Protection: The Challenges Facing Social Networking', v: 'Brigham Young Univ. Intl. L. & Mgmt. Rev., Vol. 6 No. 3' },
    { y: 2009, t: 'Mobile Messaging Making E-Discovery Messy', v: '32 Hastings Comm. & Ent. L.J. 103', co: 'with M. Duffy-Lewis' },
    { y: 2009, t: 'Voice-over-Internet Protocol: Protecting the Privacy of Wireless Communications', v: '4 J. Legal Tech. Risk Mgmt. 41' },
    { y: 2009, t: 'Mobile Messaging & Electronic Discovery', v: '8 Loy. L. & Tech. Ann. 95', co: 'with Y. Griver' },
    { y: 2009, t: 'Conquering the Tower of e-Discovery Babel', v: '6:1 SCRIPTed 121', co: 'with M. Duffy-Lewis' },
    { y: 2009, t: 'Digital Issues in Mergers & Acquisitions, E-Discovery, and Information Technology Systems', v: 'Widener Law Review Vol. 19 (pp. 25\u201356)', co: 'with Y. Griver' },
    { y: 2008, t: 'Score on E-Discovery: New Discovery Rules for the Twenty-First Century', v: '17 Mich. St. J. Int\u2019l L. 401', co: 'with M. Duffy-Lewis' },
    { y: 2008, t: 'Network Neutrality: Laissez-faire Approach or Not?', v: '34 Rutgers Comp. & Tech. L.J. 315', co: 'with R. Wong' },
    { y: 2008, t: 'Corporate Counsel\u2019s New Dance Partner: Criminal Lawyers Teach the Limbo Dance', v: '5:1 SCRIPTed 168', co: 'with M. Duffy-Lewis' },
    { y: 2007, t: 'Demystifying Clickstream Data: A European & U.S. Perspective', v: '20 Emory Int\u2019l L. Rev. 563', co: 'with R. Wong' },
    { y: 2007, t: 'Regulating Voice Over Internet Protocol: an EU/US Comparative Approach', v: '22 American Univ. Int\u2019l L. Rev. 549', co: 'with R. Wong' },
    { y: 2006, t: 'The Legal Status of Spyware', v: '59 Federal Comm. L.J. 157' },
    { y: 2006, t: 'Spyware Technologies: Limiting the Horizons of Digital Privacy', v: '23 Thomas M. Cooley L. Rev. 473', co: 'with R. Wong' },
    { y: 2006, t: 'Hiding the Inaccessible Truth: Amending the Federal Rules to Accommodate Electronic Discovery', v: '25 Texas Rev. of Litigation 115' },
    { y: 2006, t: 'Parasiteware: Unlocking Personal Privacy', v: '3:3 SCRIPTed 203' },
    { y: 2005, t: 'Voice Over Internet Protocol & the Wiretap Act: Is Your Conversation Protected?', v: '29 Seattle Univ. L. Rev. 97', co: 'with M.J. Armstrong' },
    { y: 2005, t: 'Sexual Harassment: Limiting the Affirmative Defense in the Digital Workplace', v: '39 Mich. J. of L. Reform 73' },
    { y: 2005, t: 'The Legal Status of Software', v: '23 John Marshall J. of Comp. & Info. Law 711' },
    { y: 2005, t: 'Coddling Spies: Why the Law Doesn\u2019t Adequately Address Computer Spyware', v: '2005 Duke L. & Tech. Review 25' },
  ],
  conference: [
    { y: 2024, t: 'A Constitutional Quagmire: Ethical Minefields of AI, Cyber, and Privacy', v: 'RSA Conference 2024 (May 6, 2024)' },
    { y: 2021, t: 'Cybersecurity for Autonomous Vehicles', v: 'TAI Symposium 2021 (September 2021)', co: 'with R. Staats, G. Pierce' },
    { y: 2021, t: 'Two Amigos: Cybersecurity and Privacy', v: 'TAI Symposium 2021 (September 2021)', co: 'with R. Staats, G. Pierce' },
    { y: 2021, t: 'A Guide to eDiscovery in Artificial Intelligence', v: 'EDRM (July 2021)' },
    { y: 2020, t: 'Utilizing ADR, ODR, and Court Litigation to Resolve Disputes in the ERA of COVID-19', v: 'ABA Business Law Section Annual Meeting (September 2020)' },
    { y: 2020, t: 'Cybersecurity, Lawyers and Legal Ethics \u2014 A Perfect Storm', v: '42nd Annual Entertainment and Sports Industries Virtual Conference (September 2020)' },
    { y: 2019, t: 'Managing International Cyber Incidents', v: 'Tel Aviv Cyber Week (June 2019)' },
    { y: 2019, t: 'Data Breaches: Essential Knowledge for Corporate Counsel to Advise the Board', v: 'CLM Cyber Conference (July 2019)' },
    { y: 2017, t: 'How to Prepare for and Defend Against Cyberattacks When You\u2019re Bound by the Law and Your Attacker is Not', v: 'Journal of Law and Cyber Warfare Annual Symposium (September 2017)' },
    { y: 2017, t: 'Cybersecurity in the Courts', v: 'Academy for the Interchange and Exchange of Judicial Matters (June 2017)' },
    { y: 2006, t: 'The Privacy Framework: Protecting Clickstream Data', v: '4 IASTED Int\u2019l Conf. on L. & Tech. 587 (April 2006)', co: 'with R. Wong' },
  ],
  trade: [
    { y: 2024, t: 'Arbitrating Smart Contract Disputes: A Comprehensive Approach', v: 'Daily Journal (Dec. 2024)', co: 'with Hon. G. Andler' },
    { y: 2024, t: 'Crafting Effective Privilege Logs for Legal Success', v: 'Business Law Today (Nov. 2024)' },
    { y: 2024, t: 'Deepfakes in Court Proceedings: How to Safeguard Evidence', v: 'Law360 (Nov. 2024)', co: 'with J. Deutsch' },
    { y: 2024, t: 'Navigating the Mirage of Deepfakes in Court and Arbitration', v: 'Daily Journal (Oct. 2024)', co: 'with Hon. G. Andler' },
    { y: 2024, t: '8 Tips To Achieve Compliance And Avoid Fines Under the CPRA\u2019s Data Minimization Requirements', v: 'Law360 (Aug. 2024)', co: 'with B. Newman, J. Tram' },
    { y: 2024, t: 'Inside the Clubhouse: The Growing Cyber Threats Facing Country Clubs', v: 'Daily Journal (Sept. 2024)', co: 'with J. Deutsch' },
    { y: 2024, t: 'From Niche to Universal: The Broadening Application of NIST Cybersecurity Framework 2.0', v: 'Law.com (July 2024)', co: 'with Y. Griver' },
    { y: 2024, t: 'Lessons for CISOs From the SolarWinds Breach and SEC Enforcement', v: 'ALM Cyber (May 2024)', co: 'with J. Deutsch, D. Cass' },
    { y: 2024, t: 'Using AI to Predict Outcomes in Class Action Litigation', v: 'Law.com (April 2024)' },
    { y: 2024, t: 'Arbitration As An Effective Mechanism For Resolving Asset Purchase Agreement Disputes', v: 'Daily Journal (April 2024)' },
    { y: 2024, t: 'Navigating Personal Liability: Post Data-Breach Recommendations for Responsible Officers', v: 'CSOOnline.com (April 2024)', co: 'with Hon. R. Kramer' },
    { y: 2024, t: 'Board Members Take Note: Cybersecurity Audits Are More Important Than Ever', v: 'Bloomberg Law (March 2024)' },
    { y: 2024, t: 'Companies Need to Reevaluate Cybersecurity and Privacy Programs to Comply with the FTC\u2019s Expanded Safeguards Rule', v: 'Daily Journal (March 2024)', co: 'with D. Shonka' },
    { y: 2024, t: 'Harnessing the Power of Technical E-Discovery Neutrals in Litigation', v: 'NY Daily Journal (Feb. 2024)', co: 'with Hon. L. Gordon' },
    { y: 2024, t: 'The Advantages of Mediating Computer Fraud and Abuse Act Disputes', v: 'Daily Journal (Feb. 2024)', co: 'with Hon. G. Andler' },
    { y: 2024, t: 'Using Special Masters in Social Media Litigation to Streamline Discovery', v: 'American Lawyer (Feb. 2024)' },
    { y: 2024, t: 'Understanding the Distinct Roles of E-Discovery and Digital Forensics', v: 'JAMS ADR Insights (Jan. 2024)', co: 'with Hon. G. Andler' },
    { y: 2023, t: 'Preparing Law Students for a New, AI-Assisted Legal World', v: 'Law360 (Nov. 2023)', co: 'with R. Abbott, K. Silverman' },
    { y: 2023, t: 'Cutting Costs, Not Corners: The Impact of Artificial Intelligence & Machine Learning on Attorneys and Clients Alike', v: 'DailyJournal.com (Sept. 2023)', co: 'with J. Deutsch' },
    { y: 2023, t: 'Directors Beware: How the SEC Cybersecurity Regulations Are Reshaping and Re-Risking Corporate Governance', v: 'Daily Journal (Aug. 2023)', co: 'with J. Deutsch, J. D\u2019Agostino' },
    { y: 2023, t: 'How the SEC is Transforming Corporate Cybersecurity Oversight', v: 'Bloomberg Law (Aug. 2023)', co: 'with B. Newman' },
    { y: 2023, t: 'Balancing SEC Cyber Compliance and Trade Secret Protection', v: 'Law360 (Aug. 2023)', co: 'with B. Newman' },
    { y: 2023, t: 'When To Use a Discovery Special Master', v: 'Daily Journal (July 2023)', co: 'with G. Andler' },
    { y: 2023, t: 'Selecting and Preparing an Effective Rule 30(b)(6) Witness for E-Discovery', v: 'Daily Journal (May 2023)', co: 'with T. Vanaskie' },
    { y: 2022, t: 'Mobile Messaging and E-Discovery', v: 'LA Daily Journal (Nov. 2022)', co: 'with Hon. G. Andler' },
    { y: 2022, t: 'Don\u2019t Blame Bug Bounties, Blame Joe Sullivan: Accountability Arrived at the CISO\u2019s Doorstep', v: 'Security Current (Oct. 2022)', co: 'with C. Cass' },
    { y: 2022, t: 'Lessons for Cybersecurity Officers After Ex-Uber Exec Trial', v: 'Law360 (Oct. 2022)' },
    { y: 2022, t: 'There is No \u2018I\u2019 in Team: Electronic Discovery and Professional Sports', v: 'LA Daily Journal (July 2022)', co: 'with Hon. G. Andler' },
    { y: 2022, t: 'The Need for Mediation in E-Discovery \u2014 the Way Forward', v: 'Daily Journal (June 2022)', co: 'with Hon. G. Andler' },
    { y: 2021, t: 'Revisiting Proportionality Under Rule 26(b)(1)', v: 'Bloomberg Law (Nov. 2021)' },
    { y: 2021, t: 'JAMS Spotlight: Daniel B. Garrie, Esq.', v: 'JAMS (Oct. 2021)' },
    { y: 2021, t: 'Using Data Sets to Settle Cases', v: 'Daily Journal (July 2021)', co: 'with Hon. G. Andler' },
    { y: 2021, t: 'Decentralized Finance Made Simple: What Lawyers Need to Know', v: 'LegalTech News (June 2021)', co: 'with Hon. G. Andler' },
    { y: 2021, t: 'Trade Secrets: Is Litigating Infringement Worth It?', v: 'LA Daily Journal (March 2021)', co: 'with Hon. G. Andler' },
    { y: 2021, t: 'When Does It Make Sense and How To Get a Special Master', v: 'LA Daily Journal (March 2021)', co: 'with Hon. G. Andler' },
    { y: 2021, t: 'I Could Be Prosecuted for Paying Ransomware Ransom!', v: 'LA Daily Journal (Feb. 2021)', co: 'with Hon. G. Andler' },
    { y: 2021, t: 'Mastering Complex Cases: Effective Use of Special Masters in Complex Civil Cases', v: 'LA Daily Journal (Dec. 2020)', co: 'with Hon. G. Andler' },
    { y: 2020, t: 'JAMS Smart Contracts Rules', v: 'JAMS (Nov. 2020)', a: 'Contributor to the JAMS Smart Contracts Rules \u2014 framework for arbitration of on-chain disputes.' },
    { y: 2020, t: 'A Keystroke Causes a Tornado: Applying Chaos Theory to International Cyber Warfare Law', v: 'Brooklyn Journal of International Law (July 2020)', co: 'with M. Simanova' },
    { y: 2020, t: 'Confronting the Challenges of Virtual Mediation', v: 'Law360 (April 2020)' },
    { y: 2019, t: 'Neutrals Need to \u2018Speak Tech\u2019 to Resolve Disputes Involving Smart Contracts', v: 'New York Law Journal (Oct. 2019)' },
    { y: 2019, t: 'The Benefits of Using Technical Special Masters', v: 'The American Lawyer (Oct. 2019)' },
    { y: 2019, t: 'Mediating Cyber Insurance Claims', v: 'LA Daily Journal (July 2019)' },
    { y: 2019, t: '\u2018Act Of War\u2019 Questions In Cyberattack Insurance Case', v: 'Law360 (April 2019)', co: 'with P. Rosen' },
    { y: 2018, t: 'Mediators Need to Become \u2018Bilingual\u2019 to Resolve Smart Contracts', v: 'LegalTech News (Dec. 2018)' },
    { y: 2018, t: 'Using Forensic Neutrals in Large Commercial Disputes', v: 'ALM The Recorder (Feb. 2018)' },
    { y: 2017, t: 'You Don\u2019t Have to Go to Court to Resolve Your Data Breaches', v: 'L.A. Daily Journal', co: 'with A. Publicover' },
    { y: 2017, t: 'Keyword Mediation Helps Expedite E-Discovery', v: 'Daily Journal (Dec. 2017)', co: 'with Hon. G. Andler' },
    { y: 2017, t: 'The Neutral Corner: Using Forensic Neutrals in Trade Secret Disputes', v: 'Legal Executive Institute (May 2017)' },
    { y: 2017, t: 'The Evolving Effect of Technology in Litigation: Using Discovery Special Masters, Technical Special Masters & Forensic Neutrals', v: 'NW Lawyer (April 2017)' },
    { y: 2015, t: 'Guarding Against a Cyber 9/11', v: 'Wall Street Journal (April 2015)' },
    { y: 2014, t: 'The Rise of Cyber-Techno Attorney', v: 'Crain\u2019s New York (June 2014)' },
    { y: 2013, t: 'We Need Mediation in E-Discovery', v: 'Law360 (June 2013)' },
  ],
};

const PUB_TABS = [
  { id: 'books', label: 'Books & Treatises', sub: 'AUTHORED · CO-AUTHORED' },
  { id: 'reviews', label: 'Law Reviews & Journals', sub: 'PEER-REVIEWED · ACADEMIC' },
  { id: 'chapters', label: 'Book Chapters', sub: 'EDITED VOLUMES · CONTRIBUTIONS' },
  { id: 'conference', label: 'Conference', sub: 'PROCEEDINGS · KEYNOTES' },
  { id: 'trade', label: 'Trade Press', sub: 'LAW360 · DAILY JOURNAL · LAW.COM' },
];

const PubCard = ({ p }) => (
  <article style={{
    padding: '24px 0',
    borderBottom: '1px solid var(--line-soft)',
    display: 'grid', gridTemplateColumns: '64px 1fr', gap: 28, alignItems: 'baseline',
  }}>
    <div className="mono" style={{
      fontSize: 11, color: 'var(--gold-deep)', letterSpacing: '0.18em',
      paddingTop: 6,
    }}>
      {p.y}
    </div>
    <div>
      <h3 className="serif" style={{ fontSize: 22, lineHeight: 1.25, color: 'var(--ink)', fontWeight: 500 }}>
        {p.t}
      </h3>
      <div className="mono" style={{
        fontSize: 11, letterSpacing: '0.14em', color: 'var(--slate-700)',
        marginTop: 8, textTransform: 'uppercase',
      }}>
        {p.v}{p.co ? ' \u00b7 ' + p.co : ''}
      </div>
      {p.a && (
        <p className="serif" style={{
          fontSize: 16, color: 'var(--slate-900)', marginTop: 12,
          fontStyle: 'italic', lineHeight: 1.55, maxWidth: 680,
        }}>
          {p.a}
        </p>
      )}
    </div>
  </article>
);

const PublicationsPage = ({ onNav }) => {
  const { useState } = React;
  const [tab, setTab] = useState('books');
  const list = (PUBLICATIONS[tab] || []).slice().sort((a, b) => b.y - a.y);

  return (
    <div className="page-fade">
      <section style={{ background: 'var(--ink)', color: 'var(--paper)', padding: '120px 0 80px' }}>
        <div className="container">
          <div className="eyebrow on-dark">Selected Works</div>
          <h1 className="display" style={{ fontSize: 'clamp(56px, 7.5vw, 104px)', marginTop: 16, color: 'var(--paper)' }}>
            Publications &amp;<br/>
            <em style={{ color: 'var(--gold)', fontStyle: 'italic', fontWeight: 300 }}>Books.</em>
          </h1>
          <p style={{ marginTop: 32, fontSize: 19, color: 'var(--slate-300)', maxWidth: 720, lineHeight: 1.6 }}>
            Curated selection from 300+ legal and technical articles, twenty books and treatises, and a working corpus of conference proceedings, book chapters, and trade-press commentary.
          </p>
          <div className="mono" style={{ marginTop: 40, paddingTop: 24, borderTop: '1px solid rgba(212,185,122,0.18)', fontSize: 11, color: 'var(--gold)', letterSpacing: '0.2em', display: 'flex', justifyContent: 'space-between' }}>
            <span>BY DANIEL B. GARRIE, ESQ.</span>
            <span>CITED IN 500+ ARTICLES &amp; OPINIONS</span>
          </div>
        </div>
      </section>

      {/* Tabs */}
      <section style={{
        background: 'var(--paper-2)', borderBottom: '1px solid var(--line-soft)',
        position: 'sticky', top: 65, zIndex: 30,
      }}>
        <div className="container" style={{ padding: '0 32px' }}>
          <div style={{ display: 'flex', gap: 0, overflowX: 'auto' }}>
            {PUB_TABS.map(t => {
              const active = tab === t.id;
              return (
                <button key={t.id} onClick={() => setTab(t.id)} style={{
                  padding: '20px 24px', flexShrink: 0,
                  borderRight: '1px solid var(--line-soft)',
                  borderBottom: active ? '2px solid var(--gold-deep)' : '2px solid transparent',
                  background: active ? 'var(--paper)' : 'transparent',
                  textAlign: 'left',
                }}>
                  <div className="serif" style={{ fontSize: 16, color: active ? 'var(--ink)' : 'var(--slate-700)', fontWeight: 500 }}>
                    {t.label}
                  </div>
                  <div className="mono" style={{ fontSize: 9, letterSpacing: '0.18em', color: active ? 'var(--gold-deep)' : 'var(--slate-500)', marginTop: 4 }}>
                    {t.sub} · {(PUBLICATIONS[t.id] || []).length} ENTRIES
                  </div>
                </button>
              );
            })}
          </div>
        </div>
      </section>

      <section className="section">
        <div className="container" style={{ maxWidth: 980 }}>
          <div className="mono" style={{ fontSize: 11, color: 'var(--slate-700)', letterSpacing: '0.18em', marginBottom: 24 }}>
            {PUB_TABS.find(t => t.id === tab).label.toUpperCase()} · REVERSE-CHRONOLOGICAL
          </div>
          <div style={{ borderTop: '1px solid var(--line-soft)' }}>
            {list.map((p, i) => <PubCard key={i} p={p}/>)}
          </div>
          <p className="serif" style={{ fontSize: 14, color: 'var(--slate-700)', fontStyle: 'italic', marginTop: 40, lineHeight: 1.6 }}>
            This page reflects a curated selection. Daniel has authored or co-authored over 300 published articles and twenty books, with scholarship cited in 500+ articles and judicial opinions. A full publication record is available on request.
          </p>
        </div>
      </section>

      <section className="section" style={{ background: 'var(--ink)', color: 'var(--paper)' }}>
        <div className="container center">
          <div className="eyebrow on-dark">Engage</div>
          <h2 className="display" style={{ fontSize: 'clamp(36px, 4.5vw, 60px)', marginTop: 16, color: 'var(--paper)' }}>
            Bring this scholarship to your matter.
          </h2>
          <button className="btn btn-gold" style={{ marginTop: 32 }} onClick={() => onNav('intake')}>
            Open match intake <span className="arrow">→</span>
          </button>
        </div>
      </section>
    </div>
  );
};

window.PublicationsPage = PublicationsPage;
