/* Better Draft marketing pages. Rules live in DESIGN.md. Load after global.css. */
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;1,6..72,400;1,6..72,500&family=Courier+Prime:ital,wght@0,400;0,700;1,400&display=swap');

:root {
  --paper: #FFFFFF;
  --desk:  #F0EEE9;
  --ink:   #1B1A17;
  --ink-2: #5B5850;
  --ink-3: #8B877D;
  --rule:  #DAD7CF;
  --red:   #C8201A;
  --font-text:  'Newsreader', 'Iowan Old Style', Georgia, serif;
  --font-sheet: 'Courier Prime', 'Courier New', Courier, monospace;
  --sheet-shadow: 0 1px 2px rgba(27,26,23,.06), 0 16px 48px rgba(27,26,23,.10);

  /* Map the old tokens so shared components (toast, inputs) follow the desk. */
  --bg-deep: var(--desk);
  --bg-primary: var(--desk);
  --bg-elevated: var(--paper);
  --bg-surface: var(--desk);
  --border: var(--rule);
  --border-light: var(--rule);
  --border-strong: var(--ink-3);
  --text-primary: var(--ink);
  --text-secondary: var(--ink-2);
  --text-tertiary: var(--ink-3);
  --text-muted: var(--ink-3);
  --accent: var(--red);
  --accent-hover: var(--red);
  --font-display: var(--font-text);
  --font-body: var(--font-text);
  --font-ui: var(--font-text);
  --radius: 2px;
  --radius-lg: 2px;
}

html { font-size: 17px; }
body {
  font-family: var(--font-text);
  background: var(--desk);
  color: var(--ink);
  line-height: 1.6;
  font-optical-sizing: auto;
}
nav, button, input, select, textarea, label, .btn { font-family: var(--font-text); }

h1, h2, h3 { font-family: var(--font-text); font-weight: 400; color: var(--ink); letter-spacing: -0.02em; line-height: 1.08; }
h1 em, h2 em { font-style: normal; color: inherit; }
h1 { font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1.05; }
h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); }
h3 { font-size: 1.25rem; line-height: 1.3; }
p  { font-size: 1.1rem; line-height: 1.6; }
a  { color: var(--ink); text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 3px; transition: text-decoration-color .15s; }
a:hover { color: var(--ink); text-decoration-color: var(--ink); }
small, .small { font-size: 0.92rem; color: var(--ink-3); }

.wrap   { max-width: 960px; margin: 0 auto; padding: 0 24px; }
.wrap > p, .wrap > .faq-body { max-width: 62ch; }
.wrap-w { max-width: 960px; margin: 0 auto; padding: 0 24px; }
.sec    { padding: 96px 0 0; }
.sec h2 { margin-bottom: 20px; max-width: 26ch; }
.sec p + p { margin-top: 1em; }
.measure { max-width: 62ch; }
.muted { color: var(--ink-2); }

/* Masthead */
.masthead { display: flex; align-items: center; justify-content: space-between; padding: 28px 32px; gap: 24px; }
.masthead .logo { font-family: var(--font-text) !important; font-size: 1.4rem !important; font-weight: 400 !important; text-decoration: none !important; color: var(--ink) !important; letter-spacing: -0.015em !important; }
.masthead .logo .bd-dot { color: var(--red) !important; }
.masthead-links { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.masthead-links a { font-size: 1rem; text-decoration: none; color: var(--ink-2); }
.masthead-links a:hover { color: var(--ink); }
.masthead-actions { display: flex; align-items: center; gap: 18px; }
.masthead-actions a:not(.btn-ink):not(.btn-line) { text-decoration: none; color: var(--ink-2); font-size: 1rem; }
.masthead-burger { display: none; background: none; border: 0; cursor: pointer; padding: 6px; color: var(--ink); }
.masthead-burger svg { display: block; }
.mobile-menu { display: none; position: fixed; inset: 0; background: var(--desk); z-index: 200; flex-direction: column; align-items: flex-start; justify-content: center; gap: 20px; padding: 32px; }
.mobile-menu.open { display: flex; }
.mobile-menu a { font-size: 1.6rem; text-decoration: none; }
.mobile-menu-close { position: absolute; top: 22px; right: 24px; background: none; border: 0; font-size: 1.4rem; cursor: pointer; color: var(--ink); font-family: var(--font-text); }

/* Buttons. Ink or outline. Never red. */
.btn-ink, .btn-line {
  display: inline-block; padding: 12px 22px; border-radius: 2px; cursor: pointer;
  font: 500 1rem/1.2 var(--font-text); text-decoration: none; letter-spacing: 0;
  transition: background .15s, border-color .15s;
}
.btn-ink  { background: var(--ink); color: var(--paper); border: 1px solid var(--ink); }
.btn-ink:hover { background: #000; border-color: #000; color: var(--paper); }
.btn-ink:disabled { opacity: .55; cursor: default; }
.btn-line { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
.btn-line:hover { background: rgba(27,26,23,.06); color: var(--ink); }
.btn-lg { padding: 15px 28px; font-size: 1.1rem; }

/* The sheet: a script page. The only element that casts a shadow. */
.sheet {
  background: var(--paper); color: var(--ink);
  box-shadow: var(--sheet-shadow); border-radius: 2px;
  padding: 48px 48px 40px;
  font-family: var(--font-sheet); font-size: 0.92rem; line-height: 1.55;
}
.sheet .slug { font-weight: 700; text-transform: uppercase; }
.sheet .act  { margin-top: 1.1em; }
.sheet .chr  { margin: 1.1em 0 0 38%; text-transform: uppercase; }
.sheet .dlg  { margin: 0 22% 0 20%; }
.sheet .mark { text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.sheet-grid { display: grid; grid-template-columns: 1fr 230px; gap: 0 36px; align-items: start; }
.sheet-note {
  font-family: var(--font-text); font-style: italic; font-size: 1rem; line-height: 1.45;
  color: var(--red); padding-top: 2px;
}
.sheet-note b { font-weight: 500; font-style: normal; }
.sheet-note .who { display: block; font-style: normal; font-size: 0.86rem; margin-top: 8px; opacity: .85; }
.sheet textarea {
  width: 100%; border: 0; outline: 0; resize: vertical; background: transparent; color: var(--ink);
  font: inherit; line-height: inherit; min-height: 120px; padding: 0; display: block; border-radius: 0; overflow: hidden; resize: none;
}
.sheet textarea:focus { box-shadow: none; }
.sheet textarea::placeholder { color: var(--ink-3); }
.sheet-tools { display: flex; align-items: center; gap: 18px; margin-top: 20px; font-family: var(--font-text); flex-wrap: wrap; }
.sheet-tools .small { margin: 0; }
.sheet-tools .small a { color: var(--ink-2); }

/* Rows: a definition list in place of a card grid. */
.rows { border-top: 1px solid var(--rule); }
.rows > div { display: grid; grid-template-columns: 240px 1fr; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--rule); }
.rows h3 { margin: 0; font-size: 1.35rem; }
.rows p  { margin: 0; color: var(--ink-2); }

/* Run-in headings, set in two columns. */
.runin { columns: 2; column-gap: 48px; }
.runin p { break-inside: avoid; margin: 0 0 18px; color: var(--ink-2); font-size: 1.05rem; }
.runin p b { font-weight: 500; color: var(--ink); }

/* Quiet FAQ. */
.faq p { margin: 0 0 20px; color: var(--ink-2); }
.faq p b { display: block; font-weight: 500; color: var(--ink); }

/* Footer: one line, spaces not dots. */
.site-footer { margin-top: 96px; padding: 32px; border-top: 1px solid var(--rule); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; font-size: 0.92rem; color: var(--ink-3); }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.site-footer a { color: var(--ink-3); text-decoration: none; }
.site-footer a:hover { color: var(--ink); }

/* Toasts stay but match the desk. */
.toast { font-family: var(--font-text); border-radius: 2px; box-shadow: none; }

@media (max-width: 820px) {
  html { font-size: 16px; }
  .masthead { padding: 20px 16px; }
  .masthead-links { display: none; }
  .masthead-actions .btn-ink { display: none; }
  .masthead-burger { display: block; }
  .wrap, .wrap-w { padding: 0 16px; }
  .sec { padding-top: 64px; }
  .sheet { padding: 24px 20px; font-size: 0.86rem; }
  .sheet .chr { margin-left: 30%; }
  .sheet .dlg { margin: 0 8% 0 14%; }
  .sheet-grid { grid-template-columns: 1fr; gap: 18px; }
  .sheet-note { border-top: 1px solid var(--rule); padding-top: 14px; }
  .rows > div { grid-template-columns: 1fr; gap: 8px; padding: 22px 0; }
  .runin { columns: 1; }
  .site-footer { margin-top: 64px; padding: 24px 16px; }
  body { overflow-x: hidden; }
}

/* The editor screenshot runs past the column. The only thing on the page that does. */
.shot-bleed { width: calc(100% + 160px); max-width: none; margin-left: -80px; }
@media (max-width: 1140px) { .shot-bleed { width: 100%; margin-left: 0; } }

/* Legacy pages. The old templates pulled onto the desk until each is rewritten.
   body.legacy turns the accent to ink so nothing but Penn's notes is red. */
body.legacy { --accent: var(--ink); --accent-hover: #000; background: var(--desk) !important; }
body.legacy, .auth-page, .feedback-page { background-image: none !important; }
.legacy h1, .legacy h2, .legacy h3, .legacy .plan-name, .legacy .card-title, .legacy .detail-title, .legacy .auth-logo a, .legacy .feedback-logo a {
  font-family: var(--font-text) !important; font-weight: 400 !important; letter-spacing: -0.02em !important;
}
.legacy .auth-logo a, .legacy .feedback-logo a { font-size: 1.4rem; text-decoration: none; }
.legacy .auth-logo a span, .legacy .feedback-logo a span { color: var(--red) !important; }
.legacy .kicker, .legacy .section-label, .legacy .dl-eyebrow, .legacy .about-eyebrow, .legacy .eyebrow, .legacy .room .no,
.legacy .feature-num, .legacy .hero-tag, .legacy .taste-label, .legacy .plan-launch-tag, .legacy .card-meta, .legacy .act-label, .legacy .detail-byline {
  font-family: var(--font-text) !important; font-size: 0.95rem !important; letter-spacing: 0 !important;
  text-transform: none !important; color: var(--ink-3) !important; font-weight: 400 !important; background: none !important; border: 0 !important; padding: 0 !important;
}
.legacy .hero-tag::after, .legacy .feature-num::after, .legacy .hero-sub::before, .legacy .hero-tag .dot { display: none !important; }
.legacy .pricing-hero, .legacy .legal-hero, .legacy .support-hero, .legacy .browse-hero, .legacy .hero, .legacy .about-wrap, .legacy .dl-wrap {
  text-align: left !important; max-width: 960px; margin: 0 auto; padding: 40px 24px 24px !important; align-items: flex-start !important;
}
.legacy .hero-content { text-align: left !important; margin: 0 !important; }
.legacy .pricing-hero h1, .legacy .hero h1, .legacy .browse-hero h1 { max-width: 20ch; margin-left: 0 !important; }
.legacy .pricing-hero p, .legacy .hero-sub, .legacy .browse-hero p, .legacy .dl-sub { max-width: 62ch; margin-left: 0 !important; color: var(--ink-2) !important; }
.legacy .credit-explainer, .legacy .topup-section h2, .legacy .pricing-meta, .legacy .features-header, .legacy .support-hero .subtitle, .legacy .trust { text-align: left !important; }
.legacy .tpl-wrap .wrap, .tpl-seo .wrap { max-width: 680px !important; padding: 24px 24px 90px !important; }

/* Buttons. Ink or outline. */
.legacy .btn, .legacy a.cta, .legacy button.cta, .legacy .btn-primary, .legacy .btn-accent, .legacy .nav-cta, .legacy .plan-cta, .legacy .dl-btn,
.legacy .submit-btn, .legacy .ent-form button, .legacy .about-cta a.btn, .legacy .dl-win button, .legacy .card-cta, .legacy .continue-link a, .legacy .cta-btn, .legacy .auth-card button[type=submit] {
  display: inline-block; background: var(--ink) !important; color: var(--paper) !important; border: 1px solid var(--ink) !important;
  border-radius: 2px !important; font-family: var(--font-text) !important; font-weight: 500 !important; font-size: 1rem !important;
  letter-spacing: 0 !important; text-transform: none !important; box-shadow: none !important; opacity: 1 !important; text-decoration: none !important;
}
.legacy a.cta, .legacy button.cta, .legacy .submit-btn, .legacy .plan-cta, .legacy .auth-card button[type=submit] { display: block; width: 100%; text-align: center; padding: 13px 20px !important; }
.legacy .btn:hover, .legacy a.cta:hover, .legacy .plan-cta:hover, .legacy .dl-btn:hover, .legacy .submit-btn:hover { background: #000 !important; border-color: #000 !important; color: var(--paper) !important; }
.legacy .btn-ghost, .legacy .btn-secondary, .legacy .dl-btn.secondary, .legacy .pricing-card:not(.featured) .plan-cta, .legacy .back-btn, .legacy .prompt-btn {
  background: transparent !important; color: var(--ink) !important; border: 1px solid var(--ink) !important;
}
.legacy .btn-ghost:hover, .legacy .btn-secondary:hover, .legacy .dl-btn.secondary:hover, .legacy .pricing-card:not(.featured) .plan-cta:hover, .legacy .prompt-btn:hover { background: rgba(27,26,23,.06) !important; color: var(--ink) !important; }
.legacy .filter-tag, .legacy .cat-btn { border-radius: 2px !important; border: 1px solid var(--rule) !important; background: transparent !important; color: var(--ink-2) !important; font-family: var(--font-text) !important; }
.legacy .filter-tag.active, .legacy .cat-btn.selected { background: var(--ink) !important; color: var(--paper) !important; border-color: var(--ink) !important; }

/* Cards become sheets of paper with a hairline. No glow, no motion. */
.legacy .room, .legacy .gate, .legacy .auth-card, .legacy .feedback-card, .legacy .support-card, .legacy .pricing-card, .legacy .topup-card, .legacy .feature-card,
.legacy .analysis-card, .legacy .act-card, .legacy .char-card, .legacy .section-block, .legacy .capture, .legacy .taste, .legacy .success, .legacy .compare div, .legacy .dl-feat, .legacy .ent-form-wrap, .legacy .legal-content, .legacy .mock {
  background: var(--paper) !important; border: 1px solid var(--rule) !important; border-radius: 2px !important; box-shadow: none !important; animation: none !important; transform: none !important;
}
.legacy .pricing-card.featured { border-color: var(--ink) !important; }
.legacy .pricing-card:hover, .legacy .feature-card:hover, .legacy .analysis-card:hover { border-color: var(--ink-3) !important; }
.legacy .popular-badge, .legacy .comparison-section, .legacy .plan-features li::before, .legacy .learn-list li::before, .legacy .prompt-btn::before { display: none !important; }
.legacy .plan-features li { padding-left: 0 !important; }
.legacy .room .sample, .legacy .sample { border-left: 0 !important; border-radius: 2px !important; background: var(--desk) !important; font-family: var(--font-sheet); }
.legacy .plan-price, .legacy .topup-price { font-weight: 400 !important; letter-spacing: -0.02em !important; font-family: var(--font-text) !important; }
.legacy strong, .legacy b { font-weight: 500; }

/* Inputs. */
.legacy .input, .legacy input[type=email], .legacy input[type=text], .legacy input[type=password], .legacy input[type=tel], .legacy textarea, .legacy select {
  border-radius: 2px !important; border: 1px solid var(--rule) !important; background: var(--paper) !important; color: var(--ink) !important; font-family: var(--font-text) !important; box-shadow: none !important;
}
.legacy .input:focus, .legacy input:focus, .legacy textarea:focus, .legacy select:focus { border-color: var(--ink) !important; outline: 0; box-shadow: none !important; }
.legacy .sheet textarea { border: 0 !important; background: transparent !important; }

/* Links in body copy: ink, hairline underline. */
.legacy .trust a, .legacy .micro a, .legacy .contact-alt a, .legacy .about-links a, .legacy .auth-footer a, .legacy .feedback-footer a, .legacy .lede a, .legacy .room a,
.legacy .dl-note a, .legacy .cta-trust a, .legacy .section-block a, .legacy .faq-item a, .legacy .pricing-meta a, .legacy .legal-content a, .legacy .support-body a, .legacy .auth-card a,
.legacy .secondary-text a, .legacy .about-wrap a:not(.btn), .legacy .legal-body a, .legacy main a, .legacy .article-body a, .legacy .postlist a.title {
  color: var(--ink) !important; text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 3px;
}
.legacy .site-footer a, .legacy .masthead a { text-decoration: none; }
.legacy .about-wrap .sig, .legacy .meta { color: var(--ink-3); font-family: var(--font-text) !important; }

/* Second pass after screenshots. */
.legacy h1 em, .legacy h2 em { font-style: italic; font-weight: inherit !important; color: inherit !important; }
.legacy .promise-hero, .legacy .features-header, .legacy .features-header h2, .legacy .features-header p, .legacy .section-title, .legacy .pricing-hero h1 { text-align: left !important; }
.legacy .credit-explainer, .legacy .topup-section, .legacy .faq-section, .legacy .pricing-grid-wrap, .legacy .promise-body, .legacy .legal-content, .legacy .support-body, .legacy .browse-body, .legacy .features, .legacy .team-list, .legacy .ent-form-wrap { max-width: 960px !important; margin-left: auto !important; margin-right: auto !important; padding-left: 24px !important; padding-right: 24px !important; }
.legacy .roadmap-tag { font-size: 0.9rem !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--ink-3) !important; background: none !important; padding: 0 !important; font-family: var(--font-text) !important; }
.legacy .roadmap-tag::before { content: "("; } .legacy .roadmap-tag::after { content: ")"; }
@media (max-width: 820px) {
  .sheet { padding: 20px 16px; }
  .sheet textarea { font-size: 0.72rem; }
  .legacy .credit-explainer, .legacy .topup-section, .legacy .faq-section, .legacy .pricing-grid-wrap, .legacy .promise-body, .legacy .legal-content, .legacy .support-body, .legacy .browse-body, .legacy .features, .legacy .team-list, .legacy .ent-form-wrap { padding-left: 16px !important; padding-right: 16px !important; }
}
