/* Law & Technology Workshop — light mode stylesheet */

:root {
  /* Colors */
  --paper: #F7F5EF;
  --ink: #111111;
  --oxford: #0B1A2A;      /* headers/nav */
  --burgundy: #6E1E24;    /* traditional accent */
  --cyan: #15B8C4;        /* tech accent */
  --card: #FFFFFF;
  --rule: #D9D4C7;        /* subtle hairline */

  /* Typography */
  --font-serif: Georgia, "Times New Roman", Times, serif;
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

  /* Rhythm */
  --radius: 8px;
  --shadow-sm: 0 2px 8px rgba(0,0,0,0.06);
  --shadow-md: 0 8px 20px rgba(0,0,0,0.10);
}

html { scroll-behavior: smooth; }

body {
  background-color: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  line-height: 1.7;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* abstract, faint tech + margin lines motif */
  background-image:
    linear-gradient(90deg, rgba(11,26,42,0.03) 1px, rgba(0,0,0,0) 1px),
    linear-gradient(180deg, rgba(110,30,36,0.025) 1px, rgba(0,0,0,0) 1px);
  background-size: 24px 24px, 32px 32px;
  background-position: 0 0, 0 0;
}

.container { margin: 0 auto; max-width: 880px; padding: 3rem 2rem; }
.site { display: flex; flex-direction: column; }

/* Header and wordmark */
.header { padding-top: 1.25rem; padding-bottom: 0.5rem; display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.title { margin: 0; }
.title a { text-decoration: none; color: var(--oxford); }
.wordmark .sc { display: block; font-variant-caps: small-caps; letter-spacing: 0.08em; font-size: 0.95rem; line-height: 1.1; color: var(--oxford); }
.wordmark .serif { display: block; font-family: var(--font-serif); font-size: 1.8rem; letter-spacing: 0.02em; }
.wordmark .underline { display: block; height: 2px; background: linear-gradient(90deg, var(--cyan), var(--burgundy)); margin-top: 6px; width: 92px; }

.tagline { color: var(--oxford); font-size: 1.05rem; margin-top: 0.5rem; margin-bottom: 0; }
.branding p { margin: 0; padding-bottom: 1em; }

/* Navigation */
.nav { display: flex; align-items: center; gap: 1.5rem; }
.nav-menu { display: flex; gap: 2rem; list-style: none; margin: 0; padding: 0; align-items: center; flex-wrap: wrap; }
.nav-menu > li > a { color: var(--oxford); text-decoration: none; padding: 0.25rem 0; position: relative; }
.nav-menu > li > a::after { content: ""; position: absolute; left: 0; bottom: -2px; width: 100%; height: 2px; background: linear-gradient(90deg, var(--cyan), var(--burgundy)); transform: scaleX(0); transform-origin: center; transition: transform 160ms ease; }
.nav-menu > li > a:hover::after, .nav-menu > li > a:focus::after, .nav-menu a.active::after { transform: scaleX(1); }
.nav-menu a.active { color: var(--oxford); }

.nav-dropdown { position: relative; }
.dropdown-menu { position: absolute; top: 2rem; left: 0; background: var(--card); border: 1px solid var(--rule); border-radius: var(--radius); box-shadow: var(--shadow-sm); list-style: none; margin: 0; padding: 0.5rem 0; min-width: 240px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: all 0.2s ease; z-index: 1000; }
.dropdown-menu li { margin: 0; }
.dropdown-menu a { display: block; padding: 0.5rem 1rem; border-bottom: none !important; }
.dropdown-menu a:hover, .dropdown-menu a:focus { background: rgba(21,184,196,0.08); }
.nav-dropdown:hover .dropdown-menu, .nav-dropdown:focus-within .dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); }

/* Hamburger (mobile) */
.nav-toggle { display: none; }
.nav-toggle-label { display: none; cursor: pointer; padding: 0.5rem; z-index: 1001; }
.hamburger { position: relative; display: block; width: 20px; height: 14px; background: var(--oxford); }
.hamburger::before, .hamburger::after { content: ""; position: absolute; left: 0; width: 20px; height: 2px; background: var(--oxford); border-radius: 1px; }
.hamburger::before { top: 0; }
.hamburger::after { bottom: 0; }
.hamburger { height: 2px; border-radius: 1px; }
.hamburger::before { top: 6px; }

/* Responsive behavior */
@media (max-width: 768px) {
  .nav-toggle-label { display: block; position: fixed; top: 1rem; right: 1rem; width: 2.5rem; height: 2.5rem; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 1001; background: rgba(255, 255, 255, 0.9); border-radius: 6px; border: 1px solid rgba(11,26,42, 0.1); backdrop-filter: blur(10px); transition: all 0.3s ease; }
  .nav-toggle-label:hover { background: rgba(255, 255, 255, 0.95); border-color: rgba(11,26,42, 0.2); transform: scale(1.05); }
  .nav { position: relative; }
  .nav-menu { position: fixed; top: 4.5rem; right: 1rem; left: auto; width: 280px; background: var(--paper); border: 1px solid var(--rule); border-radius: var(--radius); box-shadow: var(--shadow-sm); flex-direction: column; gap: 0; padding: 0; margin: 0; transform: translateY(-20px); opacity: 0; visibility: hidden; transition: all 0.3s ease; z-index: 1000; }
  .nav-toggle:checked ~ .nav-menu { transform: translateY(0); opacity: 1; visibility: visible; }
  .nav-menu li { width: 100%; border-bottom: 1px solid var(--rule); }
  .nav-menu li:last-child { border-bottom: none; }
  .nav-menu > li > a { display: block; padding: 1rem; border-bottom: none !important; }
  .nav-menu > li > a:hover, .nav-menu > li > a:focus { background-color: rgba(21,184,196,0.08); border-bottom: none !important; }
  .nav-dropdown { position: static; }
  .dropdown-menu { position: static; opacity: 1; visibility: visible; transform: none; border: none; box-shadow: none; background: transparent; margin-left: 1rem; }
  .dropdown-menu li { border-bottom: 1px solid var(--rule); }
  .dropdown-menu a { padding: 0.5rem 1rem; }
}

/* Links */
a { color: var(--oxford); text-decoration: none; border-bottom: 1px solid transparent; transition: color 120ms ease, border-color 120ms ease; }
a:focus, a:hover { border-bottom: 1px solid var(--cyan); }

.intro-text { text-align: center; }

/* Event/schedule cards */
.event-list { display: grid; gap: 2rem; list-style: none; margin-top: 2rem; padding-left: 1rem; padding-right: 1rem; }
@media (min-width: 768px) { .event-list { grid-template-columns: repeat(2, 1fr); } }
.event-item { background-color: var(--card); border: 1px solid var(--rule); border-radius: var(--radius); box-shadow: var(--shadow-sm); display: flex; flex-direction: column; padding: 2rem; transition: transform 120ms ease, box-shadow 120ms ease; }
.event-item:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); }
.card-link { display: block; color: inherit; text-decoration: none; }
.card-link:hover, .card-link:focus { text-decoration: none; }
.card-eyebrow { color: var(--burgundy); font-variant-caps: small-caps; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em; margin: 0 0 1rem; text-align: center; }
.event-date { color: var(--burgundy); font-variant-caps: small-caps; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em; margin: 0 0 1rem; text-align: center; }/*{ color: var(--oxford); display: block; font-family: var(--font-mono); font-size: 0.92rem; font-weight: 500; margin-bottom: 0.5rem; }*/
.event-title { font-family: var(--font-serif); font-size: 1.45rem; font-style: normal; font-weight: 700; line-height: 1.3; margin: 0 0 1.5rem; text-align: center; }
.event-details { margin-left: 0; flex-grow: 1; }
.event-details dt { color: var(--ink); font-family: var(--font-sans); font-size: 1rem; }
.event-details dd { margin-bottom: 1rem; margin-left: 0; padding-left: 1rem; border-left: 3px solid var(--rule); }
.speaker-name { display: inline-block; font-weight: 700; }
.speaker-affiliation { display: block; font-style: italic; font-size: 0.9rem; }
.meta-links { margin: 0.25rem 0 0.75rem; }
.paper-link { font-family: var(--font-mono); font-size: 0.9rem; color: var(--oxford); border-bottom: 1px solid transparent; }
.paper-link::after { content: "\2197"; margin-left: 0.25rem; font-size: 0.9em; }
.paper-link:hover, .paper-link:focus { border-color: var(--cyan); }
.paper-citation { font-family: var(--font-serif); font-size: 0.98rem; }
.paper-citation::after {
  content: "";
  display: inline-block;
  width: 0.95em;
  height: 0.95em;
  margin-left: 0.35rem;
  background-color: currentColor;
  /* Font Awesome Free external-link-style icon (as mask) */
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M384 64C366.3 64 352 78.3 352 96C352 113.7 366.3 128 384 128L466.7 128L265.3 329.4C252.8 341.9 252.8 362.2 265.3 374.7C277.8 387.2 298.1 387.2 310.6 374.7L512 173.3L512 256C512 273.7 526.3 288 544 288C561.7 288 576 273.7 576 256L576 96C576 78.3 561.7 64 544 64L384 64zM144 160C99.8 160 64 195.8 64 240L64 496C64 540.2 99.8 576 144 576L400 576C444.2 576 480 540.2 480 496L480 416C480 398.3 465.7 384 448 384C430.3 384 416 398.3 416 416L416 496C416 504.8 408.8 512 400 512L144 512C135.2 512 128 504.8 128 496L128 240C128 231.2 135.2 224 144 224L224 224C241.7 224 256 209.7 256 192C256 174.3 241.7 160 224 160L144 160z"/></svg>');
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M384 64C366.3 64 352 78.3 352 96C352 113.7 366.3 128 384 128L466.7 128L265.3 329.4C252.8 341.9 252.8 362.2 265.3 374.7C277.8 387.2 298.1 387.2 310.6 374.7L512 173.3L512 256C512 273.7 526.3 288 544 288C561.7 288 576 273.7 576 256L576 96C576 78.3 561.7 64 544 64L384 64zM144 160C99.8 160 64 195.8 64 240L64 496C64 540.2 99.8 576 144 576L400 576C444.2 576 480 540.2 480 496L480 416C480 398.3 465.7 384 448 384C430.3 384 416 398.3 416 416L416 496C416 504.8 408.8 512 400 512L144 512C135.2 512 128 504.8 128 496L128 240C128 231.2 135.2 224 144 224L224 224C241.7 224 256 209.7 256 192C256 174.3 241.7 160 224 160L144 160z"/></svg>');
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-position: center;
  mask-position: center;
  opacity: 0.95;
}
.paper-citation:hover, .paper-citation:focus { border-bottom: 1px solid var(--cyan); }
/* Bluebook helpers */
.bb-citation .title { font-style: italic; }
.bb-citation .journal { font-variant-caps: small-caps; letter-spacing: 0.04em; }
.smallcaps { font-variant-caps: small-caps; letter-spacing: 0.04em; }
.nested-event-list { border-top: 1px solid var(--rule); list-style: none; margin-top: 1rem; padding-left: 0; padding-top: 1rem; }
.nested-event-item { margin-bottom: 1rem; }
.nested-event-item:last-child { margin-bottom: 0; }
.nested-event-item:not(:last-child):after { border-bottom: 1px dashed var(--rule); content: ""; display: block; margin: 1.5rem 0; width: 100%; }

.aals-subheading, .page-title, .season-title, .page-subheading { color: var(--oxford); font-family: var(--font-serif); font-size: 1.5rem; margin-top: 2rem; text-align: center; }
.page-title { border-bottom: 0; }
.page-subheading { font-size: 1.5rem; }
.season-title { border-top: 1px solid var(--rule); padding-top: 1rem; }

/* Signature divider: burgundy rule + cyan rule */
.rule-duo { width: 100%; height: 3px; position: relative; margin: 0.75rem 0 1.5rem 0; }
.rule-duo::before, .rule-duo::after { content: ""; position: absolute; left: 0; right: 0; }
.rule-duo::before { top: 0; height: 1px; background: var(--burgundy); }
.rule-duo::after { top: 1px; height: 2px; background: var(--cyan); }

/* Footer */
.site-footer { border-top: 1px solid var(--rule); margin-top: 3rem; padding-top: 1rem; font-size: 0.92rem; }
.site-footer .smallcaps { font-variant-caps: small-caps; letter-spacing: 0.06em; }
.site-footer .meta { font-family: var(--font-mono); color: rgba(17,17,17,0.7); }

/* Hero CTA buttons */
.button-row { display: flex; gap: 0.75rem; justify-content: center; align-items: center; flex-wrap: wrap; }
.btn { border: 1px solid var(--oxford); color: var(--oxford); padding: 0.6rem 1rem; border-radius: 6px; display: inline-block; line-height: 1.2; }
.btn:hover, .btn:focus { background: rgba(21,184,196,0.08); border-color: var(--cyan); }

/* Accessibility focus */
:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }

/* Reduce motion */
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* Organizing Committee layout */
.organizing-committee { list-style: none; padding-left: 0; margin: 1.5rem 1rem 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0.5rem 2rem; }
.organizing-committee li { padding: 0.4rem 0; }
.organizing-committee .speaker-name a { font-family: var(--font-serif); font-weight: 600; }
.section-eyebrow { color: var(--burgundy); font-variant-caps: small-caps; letter-spacing: 0.08em; font-size: 0.9rem; text-align: center; margin: 0.5rem 0 0; }
