*,::before,::after{margin:0;padding:0;border:0 solid;box-sizing:border-box}
html{line-height:1.5;-webkit-text-size-adjust:100%}
h1,h2,h3{font-size:inherit;font-weight:inherit}
a{text-decoration:inherit}
b,strong{font-weight:bolder}
img,svg{display:block;vertical-align:middle}
img{max-width:100%;height:auto}
button,input,textarea{font:inherit;color:inherit;background-color:transparent;border-radius:0;opacity:1}
textarea{resize:vertical}
::placeholder{opacity:1;color:color-mix(in oklab,currentcolor 50%,transparent)}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
:root { --background:#f4e8e4; --foreground:#581321; --card:#f7eeeb; --card-foreground:#581321; --primary:#651321; --primary-foreground:#fff8f5; --secondary:#ded2cf; --secondary-foreground:#581321; --muted:#eadedb; --muted-foreground:#6e5354; --accent:#651321; --accent-foreground:#fff8f5; --border:#b9aaa6; --input:#cbbeba; --ring:#651321; --radius:0; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; background:var(--background); color:#221515; font-family:Georgia,"Times New Roman",serif; font-size:16px; }
a { color:inherit; }
.wrap { width:min(1708px,calc(100% - 80px)); margin:0 auto; }
.masthead { height:66px; border-bottom:1px solid #a99e9a; background:#f8eeea; }
.masthead-inner { display:flex; align-items:center; width:min(1708px,calc(100% - 80px)); height:100%; margin:auto; color:var(--foreground); font-size:25px; font-weight:700; text-decoration:none; }
.hero { min-height:344px; border-bottom:1px solid #aaa09d; background:#e4d9d6; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:minmax(520px,1fr) minmax(500px,1.2fr); min-height:344px; }
.hero-copy { z-index:1; align-self:center; max-width:610px; padding:18px 0 20px; }
h1,h2,h3 { color:var(--foreground); margin:0; }
h1 { font-size:clamp(48px,4.1vw,66px); line-height:.96; letter-spacing:-.025em; }
.kicker { margin:14px 0 16px; color:var(--foreground); font-size:22px; font-style:italic; font-weight:700; }
.hero-copy>p:not(.kicker) { max-width:620px; margin:0 0 12px; line-height:1.35; }
.hero-portrait { align-self:end; justify-self:end; width:min(100%,720px); height:344px; object-fit:contain; object-position:center bottom; }
.button { display:inline-flex; min-width:242px; min-height:45px; align-items:center; justify-content:center; padding:10px 24px; font-size:17px; text-decoration:none; text-transform:uppercase; transition:background .2s,color .2s; }
.solid { margin-top:2px; background:var(--primary); color:var(--primary-foreground); }
.solid:hover,.solid:focus-visible { background:#7a1d2e; }
.books-section { padding:46px 0 54px; }
h2 { margin-bottom:28px; font-size:29px; font-weight:800; text-transform:uppercase; }
.books-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:55px; align-items:stretch; margin-left:33px; margin-right:65px; }
.book { display:grid; grid-template-columns:194px 1fr; gap:24px; align-items:start; height:100%; }
.book>a:first-child { display:flex; width:194px; height:252px; align-items:flex-end; justify-content:center; }
.book img { display:block; width:auto; height:252px; max-width:194px; object-fit:contain; }
.book-copy { display:flex; min-height:252px; flex-direction:column; text-align:center; }
.book h3 { font-size:20px; font-weight:800; line-height:1.08; }
.book h3 span { display:block; margin-top:3px; font-size:17px; font-weight:800; line-height:1.14; white-space:pre-line; }
blockquote { margin:18px 0 4px; font-size:15px; font-style:italic; line-height:1.25; text-align:left; }
.attribution { min-height:20px; margin:0 0 6px; text-align:center; }
.outline { width:243px; min-width:0; margin-top:auto; align-self:center; border:3px solid var(--primary); color:var(--primary); font-weight:600; }
.outline:hover,.outline:focus-visible { background:var(--primary); color:var(--primary-foreground); }
a:focus-visible { outline:3px solid #a74a5c; outline-offset:3px; }
@media (max-width:1400px) { .wrap,.masthead-inner{width:min(100% - 48px,1280px)} .hero-grid{grid-template-columns:1.1fr .9fr} .hero-portrait{width:520px;max-width:none;transform:translateX(65px)} .books-grid{gap:26px;margin-left:0;margin-right:0} .book{grid-template-columns:171px 1fr;gap:18px} .book>a:first-child{width:171px;height:222px} .book img{width:auto;height:222px;max-width:171px} .book-copy{min-height:222px} }
.lower-section { padding:0 0 50px; }
.lower-grid { display:grid; grid-template-columns:minmax(0,2.3fr) minmax(330px,.9fr); gap:72px; }
.bio-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.bio { display:grid; grid-template-columns:124px 1fr; gap:18px; align-items:center; }
.bio p { margin:0; font-size:14px; line-height:1.35; }
.bio strong { color:var(--foreground); font-weight:800; }
.portrait-window { position:relative; width:124px; height:166px; overflow:hidden; background:#e1d5d2; }
.portrait-window img { position:absolute; top:0; width:244px; height:166px; max-width:none; object-fit:contain; }
.portrait-window.alan img { left:0; }
.portrait-window.janet img { right:auto; left:0; width:124px; height:166px; object-fit:cover; object-position:center; }
.their-work { display:grid; grid-template-columns:94px 1fr; gap:18px; margin:58px 0 0 123px; }
.their-work h2 { margin:0; font-size:29px; line-height:.95; text-align:right; }
.their-work p { margin:0 0 14px; font-size:14px; font-weight:600; line-height:1.35; }
.their-work a { color:var(--foreground); font-size:18px; font-weight:700; }
.contact { padding-top:47px; }
.contact h2 { text-align:center; }
.contact form { padding:10px 12px 0; background:#f9f1ee; }
.contact form>p { margin:0 0 10px; font-weight:700; }
.contact label { display:grid; grid-template-columns:74px 1fr; align-items:start; margin-bottom:8px; font-size:14px; }
.contact input,.contact textarea { width:100%; border:1px solid #cfc7c3; border-radius:2px; background:#fff; padding:9px 12px; color:#291b1c; font:inherit; font-size:14px; }
.contact textarea { resize:vertical; }
.contact button { display:flex; margin:26px auto 0; border:0; cursor:pointer; font-family:inherit; }
.contact button:disabled { cursor:wait; opacity:.7; }
.contact form>.form-status { margin:0; padding:14px 0; color:var(--foreground); line-height:1.35; text-align:center; }
footer { display:flex; justify-content:space-between; align-items:center; min-height:54px; padding:0 max(40px,calc((100% - 1708px)/2)); background:var(--primary); color:var(--primary-foreground); font-size:14px; }

@media (max-width:980px) {
  .books-grid { grid-template-columns:1fr; }
  .book { grid-template-columns:194px 1fr; }
  .book img { width:auto; height:252px; max-width:194px; }
  .book>a:first-child { width:194px; height:252px; }
  .book-copy { height:auto; min-height:252px; }
  .lower-grid { grid-template-columns:1fr; }
  .contact { max-width:520px; padding-top:0; }
}
@media (max-width:720px) {
  .wrap,.masthead-inner { width:calc(100% - 32px); }
  .masthead { height:58px; }
  .masthead-inner { justify-content:center; font-size:18px; text-align:center; }
  .hero-grid { display:flex; flex-direction:column; min-height:unset; }
  .hero-copy { padding:32px 0 20px; }
  h1 { font-size:clamp(36px,11vw,44px); line-height:1; }
  .kicker { margin:12px 0 14px; font-size:18px; line-height:1.35; white-space:pre-line; }
  .hero-copy>p:not(.kicker) { font-size:16px; line-height:1.5; }
  .hero-portrait { width:100%; height:auto; max-height:300px; transform:none; }
  .books-section { padding:34px 0 44px; }
  h2 { margin-bottom:24px; font-size:26px; }
  .books-grid { gap:52px; }
  .book { grid-template-columns:1fr; gap:18px; justify-items:center; }
  .book img { width:194px; height:252px; max-width:100%; }
  .book>a:first-child { width:194px; height:252px; max-width:100%; }
  .book-copy { width:100%; height:auto; min-height:0; }
  .book h3 { font-size:20px; line-height:1.15; }
  .book h3 span { margin-top:5px; font-size:17px; line-height:1.25; }
  blockquote { min-height:0; margin:18px 0 8px; font-size:16px; line-height:1.45; }
  .attribution { min-height:0; margin-bottom:4px; font-size:15px; line-height:1.35; }
  .button { width:100%; min-width:0; min-height:48px; font-size:16px; }
  .outline { width:min(100%,280px); margin-top:18px; }
  .lower-section { padding-bottom:36px; }
  .bio-grid { grid-template-columns:1fr; gap:34px; }
  .bio { grid-template-columns:104px 1fr; gap:16px; align-items:start; }
  .bio p { font-size:15px; line-height:1.5; }
  .portrait-window { width:104px; height:139px; }
  .portrait-window img { width:204px; height:139px; }
  .portrait-window.janet img { width:104px; height:139px; object-position:center 35%; }
  .their-work { grid-template-columns:1fr; gap:12px; margin:42px 0 0; }
  .their-work h2 { text-align:left; }
  .their-work h2 br { display:none; }
  .their-work p { font-size:15px; line-height:1.5; }
  .lower-grid { gap:42px; }
  .contact { width:100%; max-width:none; }
  .contact form { padding:16px 14px 0; }
  .contact form>p { font-size:16px; line-height:1.45; }
  .contact label { grid-template-columns:1fr; gap:6px; margin-bottom:14px; font-size:15px; }
  .contact input,.contact textarea { min-height:46px; padding:11px 12px; font-size:16px; }
  .contact textarea { min-height:120px; }
  .contact button { width:100%; margin-top:20px; }
  footer { justify-content:center; padding:17px 16px; gap:20px; text-align:center; }
}
@media (max-width:360px) {
  .wrap,.masthead-inner { width:calc(100% - 24px); }
  .masthead-inner { font-size:17px; }
  h1 { font-size:34px; }
  .bio { grid-template-columns:1fr; }
  .portrait-window { width:104px; }
}

@media (min-width:721px) {
  .book { grid-template-columns:194px minmax(0,1fr); }
  .outline { width:100%; max-width:243px; padding-left:8px; padding-right:8px; }
}
@media (min-width:981px) and (max-width:1599px) {
  .book { grid-template-columns:minmax(0,1fr); grid-template-rows:auto 1fr; justify-items:center; gap:18px; }
  .book-copy { width:100%; height:auto; min-height:0; align-self:stretch; }
  .outline { margin-top:auto; }
}
