
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background-color: #0C0C0C; color: #F0EEE8; font-family: 'Source Sans 3', sans-serif; font-size: 16px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-family: 'Libre Baskerville', serif; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; font-family: 'Source Sans 3', sans-serif; }

.pm-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 50; background: #0C0C0C; border-bottom: 1px solid #282826; height: 72px; display: flex; align-items: center; justify-content: space-between; padding: 0 48px; }
.pm-nav-logo { font-family: 'Libre Baskerville', serif; font-size: 17px; font-weight: 700; letter-spacing: 0.03em; color: #F0EEE8; }
.pm-nav-links { display: flex; align-items: center; }
.pm-nav-links a { font-size: 13px; color: #888884; padding: 0 14px; letter-spacing: 0.03em; transition: color 0.2s; }
.pm-nav-links a:hover { color: #F0EEE8; }
.pm-nav-begin { margin-left: 12px !important; font-size: 13px !important; font-weight: 600; background: #F0EEE8; color: #0C0C0C !important; padding: 9px 22px !important; border-radius: 2px; transition: background 0.2s; }
.pm-nav-begin:hover { background: #D8D6D0; color: #0C0C0C !important; }

.pm-footer { background: #060606; padding: 64px 48px 40px; border-top: 1px solid #282826; }
.pm-footer-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 60px; max-width: 1040px; margin: 0 auto 48px; }
.pm-footer-logo { font-family: 'Libre Baskerville', serif; font-size: 16px; font-weight: 700; color: #F0EEE8; margin-bottom: 12px; }
.pm-footer-tag { font-size: 13px; color: #888884; line-height: 1.7; }
.pm-footer-nav-title { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #888884; margin-bottom: 16px; font-weight: 600; }
.pm-footer-nav a { display: block; font-size: 14px; color: #888884; padding: 4px 0; transition: color 0.2s; }
.pm-footer-nav a:hover { color: #F0EEE8; }
.pm-footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 24px; max-width: 1040px; margin: 0 auto; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.pm-footer-bottom p { font-size: 12px; color: #888884; }

.pm-btn { display: inline-block; background: #F0EEE8; color: #0C0C0C; padding: 13px 32px; font-family: 'Source Sans 3', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.05em; border-radius: 2px; border: none; cursor: pointer; transition: background 0.2s; }
.pm-btn:hover { background: #D8D6D0; }
.pm-btn-ghost { display: inline-block; background: transparent; color: #F0EEE8; padding: 13px 32px; font-family: 'Source Sans 3', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.05em; border-radius: 2px; border: 1px solid #282826; cursor: pointer; transition: all 0.2s; }

.pm-section-label { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: #888884; margin-bottom: 48px; font-weight: 600; display: block; }
.pm-section-title { font-family: 'Libre Baskerville', serif; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 700; line-height: 1.2; color: #F0EEE8; margin-bottom: 32px; }

.pm-section { padding: 96px 48px; border-bottom: 1px solid #282826; }
.pm-inner { max-width: 1040px; margin: 0 auto; }
.pm-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
.pm-col-body { font-size: 16px; color: #888884; line-height: 1.8; }
.pm-col-body p + p { margin-top: 1em; }

.pm-list { list-style: none; }
.pm-list li { padding: 10px 0; border-top: 1px solid #282826; font-size: 15px; color: #F0EEE8; display: flex; align-items: center; gap: 12px; }

.pm-not-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1px; background: #282826; margin: 40px 0; }
.pm-not-cell { background: #0C0C0C; padding: 28px 24px; }
.pm-not-title { font-family: 'Libre Baskerville', serif; font-size: 15px; font-weight: 700; color: #F0EEE8; margin-bottom: 6px; }
.pm-not-sub { font-size: 13px; color: #888884; line-height: 1.6; }

.pm-pathway-wrap { display: flex; flex-direction: column; align-items: center; max-width: 560px; margin: 48px auto 0; }
.pm-pathway-stage { width: 100%; background: #0C0C0C; border: 1px solid #282826; padding: 20px 28px; display: flex; align-items: center; gap: 20px; transition: border-color 0.2s, background 0.2s; }
.pm-pathway-stage:hover { border-color: #A0A09A; background: #1E1E1C; }
.pm-stage-num { font-size: 11px; letter-spacing: 0.12em; color: #888884; font-weight: 600; min-width: 20px; }
.pm-stage-name { font-family: 'Libre Baskerville', serif; font-size: 17px; font-weight: 700; color: #F0EEE8; }
.pm-arrow { text-align: center; color: #888884; font-size: 18px; padding: 6px 0; width: 100%; }
.pm-fork-tracks { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; width: 100%; }
.pm-fork-track { background: #0C0C0C; border: 1px solid #282826; padding: 20px; transition: border-color 0.2s; display: block; }
.pm-fork-track:hover { border-color: #A0A09A; background: #1E1E1C; }
.pm-fork-label { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #888884; font-weight: 600; text-align: center; padding: 12px 0; }
.pm-entry { text-align: center; background: #1E1E1C; padding: 96px 48px; border-top: 1px solid #282826; }

.pm-stage-bands { max-width: 1040px; margin: 0 auto; padding: 0 48px 96px; }
.pm-stage-band { display: grid; grid-template-columns: 200px 1fr; gap: 60px; padding: 56px 0; border-top: 1px solid #282826; align-items: start; }
.pm-stage-band-label { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #888884; margin-bottom: 8px; font-weight: 600; }
.pm-stage-band-title { font-family: 'Libre Baskerville', serif; font-size: 22px; font-weight: 700; color: #F0EEE8; }
.pm-stage-band-purpose { font-size: 14px; color: #888884; margin-top: 4px; }
.pm-stage-band-body { font-size: 16px; color: #888884; line-height: 1.75; margin-bottom: 16px; }
.pm-req-list { list-style: none; }
.pm-req-list li { padding: 8px 0; border-top: 1px solid #282826; font-size: 14px; color: #F0EEE8; display: flex; gap: 12px; }
.pm-req-list li::before { content: '•'; color: #888884; }
.pm-fork-divider { display: flex; align-items: center; gap: 20px; padding: 40px 0 8px; }
.pm-fork-divider-line { flex: 1; height: 1px; background: #282826; }
.pm-fork-divider-label { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: #888884; font-weight: 600; white-space: nowrap; }
.pm-track-bands { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #282826; margin-bottom: 96px; }
.pm-track-band { background: #0C0C0C; padding: 48px 40px; }
.pm-track-header { margin-bottom: 24px; padding-bottom: 24px; border-top: 1px solid #282826; }

.pm-pricing-intro { max-width: 600px; margin: 0 auto; text-align: center; padding: 96px 48px 64px; }
.pm-pricing-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: #282826; max-width: 1040px; margin: 0 auto; }
.pm-pricing-card { background: #0C0C0C; padding: 40px 28px; display: flex; flex-direction: column; }
.pm-pricing-card.featured { background: #1E1E1C; border: 1px solid #A0A09A; }
.pm-pricing-stage { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #888884; margin-bottom: 12px; font-weight: 600; }
.pm-pricing-name { font-family: 'Libre Baskerville', serif; font-size: 16px; font-weight: 700; color: #F0EEE8; margin-bottom: 20px; line-height: 1.3; }
.pm-pricing-price { font-family: 'Libre Baskerville', serif; font-size: 32px; font-weight: 700; color: #F0EEE8; margin-top: auto; }
.pm-pricing-note { font-size: 12px; color: #888884; margin-top: 4px; }
.pm-pricing-footer { max-width: 1040px; margin: 0 auto; padding: 48px 48px 96px; }

.pm-canon-intro { max-width: 620px; margin: 0 auto; text-align: center; padding: 96px 48px 48px; }
.pm-canon-body { max-width: 680px; margin: 0 auto; padding: 0 48px 96px; }
.pm-canon-principle { padding: 48px 0; border-top: 1px solid #282826; }
.pm-canon-num { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #888884; margin-bottom: 12px; font-weight: 600; }
.pm-canon-title { font-family: 'Libre Baskerville', serif; font-size: 22px; font-weight: 700; color: #F0EEE8; margin-bottom: 20px; }
.pm-canon-text { font-size: 16px; color: #888884; line-height: 1.8; margin-bottom: 12px; }
.pm-canon-items { list-style: none; margin: 16px 0; }
.pm-canon-items li { padding: 6px 0; font-size: 15px; color: #F0EEE8; border-top: 1px solid #282826; }
.pm-canon-items li::before { content: '— '; color: #888884; }

.pm-apps-intro { max-width: 620px; margin: 0 auto; text-align: center; padding: 96px 48px 48px; }
.pm-apps-body { max-width: 1040px; margin: 0 auto; padding: 0 48px 96px; }
.pm-window-card { border: 1px solid #282826; padding: 40px; max-width: 560px; margin: 0 auto 56px; }
.pm-window-title { font-family: 'Libre Baskerville', serif; font-size: 18px; font-weight: 700; color: #F0EEE8; margin-bottom: 24px; text-align: center; }
.pm-window-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #282826; margin-bottom: 24px; }
.pm-window-cell { background: #0C0C0C; padding: 16px 20px; text-align: center; font-size: 15px; color: #F0EEE8; }
.pm-req-section { border-top: 1px solid #282826; padding-top: 40px; margin-bottom: 48px; }
.pm-req-section h3 { font-family: 'Libre Baskerville', serif; font-size: 20px; font-weight: 700; color: #F0EEE8; margin-bottom: 24px; }
.pm-faq-item { padding: 28px 0; border-top: 1px solid #282826; }
.pm-faq-q { font-family: 'Libre Baskerville', serif; font-size: 17px; font-weight: 700; color: #F0EEE8; margin-bottom: 10px; }
.pm-faq-a { font-size: 15px; color: #888884; line-height: 1.75; }
.pm-submit-block { text-align: center; padding: 48px 0; border-top: 1px solid #282826; }
.pm-submit-block p { font-size: 15px; color: #888884; margin-bottom: 24px; max-width: 480px; margin-left: auto; margin-right: auto; }

.pm-corp-intro { max-width: 680px; margin: 0 auto; text-align: center; padding: 96px 48px 48px; }
.pm-corp-body { max-width: 1040px; margin: 0 auto; padding: 0 48px 96px; }
.pm-corp-section { padding: 56px 0; border-top: 1px solid #282826; }
.pm-corp-section h3 { font-family: 'Libre Baskerville', serif; font-size: 20px; font-weight: 700; color: #F0EEE8; margin-bottom: 20px; }

.pm-about-body { max-width: 620px; margin: 0 auto; padding: 96px 48px; text-align: center; }
.pm-about-body p { font-size: 17px; color: #888884; line-height: 1.85; margin-bottom: 1.25em; }

.pm-contact-body { max-width: 560px; margin: 0 auto; padding: 96px 48px; }
.pm-contact-body h2 { font-family: 'Libre Baskerville', serif; font-size: 26px; font-weight: 700; margin-bottom: 12px; color: #F0EEE8; }
.pm-contact-body .pm-lead { font-size: 15px; color: #888884; margin-bottom: 48px; line-height: 1.7; }
.pm-form-row { margin-bottom: 24px; }
.pm-form-row label { display: block; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: #888884; margin-bottom: 8px; font-weight: 600; }
.pm-form-row input, .pm-form-row select, .pm-form-row textarea { width: 100%; background: #111110; border: 1px solid #282826; padding: 12px 16px; font-family: 'Source Sans 3', sans-serif; font-size: 15px; color: #F0EEE8; border-radius: 2px; outline: none; transition: border-color 0.2s; appearance: none; }
.pm-form-row input:focus, .pm-form-row select:focus, .pm-form-row textarea:focus { border-color: #A0A09A; }
.pm-form-row input::placeholder, .pm-form-row textarea::placeholder { color: #444442; }
.pm-form-row textarea { min-height: 140px; resize: vertical; }

.pm-auth-card { width: 100%; max-width: 440px; border: 1px solid #282826; padding: 48px; }
.pm-auth-eyebrow { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #888884; margin-bottom: 24px; font-weight: 600; }
.pm-auth-title { font-family: 'Libre Baskerville', serif; font-size: 26px; font-weight: 700; color: #F0EEE8; margin-bottom: 8px; }
.pm-auth-sub { font-size: 14px; color: #888884; margin-bottom: 36px; line-height: 1.6; }
.pm-auth-error { background: #1a0f0f; border: 1px solid #3d1f1f; color: #e88; padding: 10px 14px; font-size: 13px; border-radius: 2px; margin-bottom: 16px; display: none; }
.pm-auth-toggle { margin-top: 20px; text-align: center; font-size: 13px; color: #888884; }
.pm-auth-toggle a { color: #F0EEE8; text-decoration: underline; cursor: pointer; }
.pm-success { background: #0a1a10; border: 1px solid #1a4d2a; color: #6ecf8a; padding: 16px 20px; font-size: 14px; border-radius: 2px; margin-top: 16px; display: none; }

.pm-intro-block { max-width: 620px; margin: 0 auto; text-align: center; padding: 96px 48px 48px; }
.pm-intro-block p { font-size: 16px; color: #888884; line-height: 1.8; }
.pm-intro-block p + p { margin-top: 1em; }

.pm-enroll-card { width: 100%; max-width: 560px; border: 1px solid #282826; padding: 48px; }
.pm-status-bar { display: flex; align-items: center; gap: 12px; background: #111110; border: 1px solid #282826; padding: 16px 20px; margin-bottom: 28px; }
.pm-summary { border: 1px solid #282826; padding: 20px 24px; margin-bottom: 28px; }
.pm-summary-line { display: flex; justify-content: space-between; font-size: 14px; padding: 8px 0; border-bottom: 1px solid #282826; }
.pm-summary-total { display: flex; justify-content: space-between; font-size: 16px; padding: 12px 0 8px; font-weight: 600; color: #F0EEE8; }

.lesson-body h3 { font-family: 'Libre Baskerville', serif; font-size: 18px; font-weight: 700; color: #F0EEE8; margin: 2em 0 0.75em; }
.lesson-body p { margin-bottom: 1em; color: #C8C6C0; line-height: 1.85; font-size: 16px; }
.lesson-body strong { color: #F0EEE8; }
.lesson-body em { font-style: italic; }
.lesson-body ul { list-style: none; margin: 0.5em 0 1.25em; }
.lesson-body ul li { padding: 6px 0 6px 20px; border-top: 1px solid #282826; font-size: 15px; position: relative; color: #F0EEE8; }
.lesson-body ul li::before { content: '—'; position: absolute; left: 0; color: #888884; }
.lesson-callout { background: #111110; border: 1px solid #282826; border-left: 2px solid #A0A09A; padding: 20px 24px; margin: 2em 0; }
.lesson-callout-label { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: #A0A09A; margin-bottom: 8px; font-weight: 600; display: block; }
.lesson-callout p { color: #888884 !important; font-size: 14px !important; margin: 0 !important; }

@media (max-width: 768px) {
  .pm-nav { padding: 0 24px; }
  .pm-nav-links { display: none; }
  .pm-two-col { grid-template-columns: 1fr; gap: 40px; }
  .pm-stage-band { grid-template-columns: 1fr; gap: 24px; }
  .pm-pricing-grid { grid-template-columns: 1fr 1fr; }
  .pm-track-bands { grid-template-columns: 1fr; }
  .pm-footer-grid { grid-template-columns: 1fr; gap: 40px; }
  .pm-section { padding: 64px 24px; }
  .pm-stage-bands { padding: 0 24px 64px; }
  .pm-intro-block { padding: 64px 24px 40px; }
  .pm-apps-body, .pm-corp-body, .pm-canon-body, .pm-pricing-footer { padding-left: 24px; padding-right: 24px; }
  .pm-footer { padding: 48px 24px 32px; }
}

.pm-hero { min-height: calc(100vh - 72px); display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 48px; border-bottom: 1px solid #282826; margin-top: 72px; }
.pm-hero-inner { max-width: 680px; }
.pm-hero-label { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: #888884; margin-bottom: 36px; font-weight: 600; }
.pm-hero-title { font-family: 'Libre Baskerville', serif; font-size: clamp(2.4rem,5vw,4rem); font-weight: 700; line-height: 1.15; color: #F0EEE8; margin-bottom: 20px; }
.pm-hero-sub { font-family: 'Libre Baskerville', serif; font-style: italic; font-size: 16px; color: #888884; margin-bottom: 8px; }
.pm-hero-body { font-size: 16px; color: #888884; max-width: 520px; margin: 24px auto 40px; line-height: 1.75; }
.pm-hero-note { font-size: 13px; letter-spacing: 0.06em; color: #888884; margin-top: 16px; }

.report-container { background: #111110; border: 1px solid #282826; padding: 32px; margin: 24px 0; }
.report-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid #282826; }
.report-week-label { font-family: 'Libre Baskerville', serif; font-size: 18px; font-weight: 700; color: #F0EEE8; }
.report-status { font-size: 12px; color: #888884; }
.report-field { margin-bottom: 20px; }
.report-field-label { font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: #888884; margin-bottom: 8px; font-weight: 600; }
.report-input { width: 100%; background: #0C0C0C; border: 1px solid #282826; padding: 10px 14px; font-family: 'Source Sans 3', sans-serif; font-size: 14px; color: #F0EEE8; border-radius: 2px; outline: none; transition: border-color 0.2s; box-sizing: border-box; resize: vertical; }
.report-input:focus { border-color: #A0A09A; }
.report-input::placeholder { color: #444442; }
.report-field-meta { font-size: 11px; color: #888884; margin-top: 4px; font-style: italic; }
.report-actions { display: flex; align-items: center; gap: 16px; margin-top: 28px; padding-top: 24px; border-top: 1px solid #282826; }
.report-save-btn { background: #F0EEE8; color: #0C0C0C; padding: 10px 24px; font-family: 'Source Sans 3', sans-serif; font-size: 13px; font-weight: 600; border: none; border-radius: 2px; cursor: pointer; transition: background 0.2s; }
.report-save-btn:hover { background: #D8D6D0; }
.report-save-status { font-size: 13px; color: #6ecf8a; }
.report-timestamp-notice { margin-top: 16px; font-size: 11px; color: #888884; font-style: italic; border-top: 1px solid #282826; padding-top: 12px; }
