/* Personal portfolio, prints and learning. Existing course styles live in style.css. */
:root { --g3:#939393; }
body { font-size:1rem; }
body::after { display:none; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline:2px solid #fff; outline-offset:6px; }
.reveal { opacity:1; transform:none; }
.rise { opacity:1; transform:none; animation:none; }
.kicker { font-size:.75rem; letter-spacing:.16em; }
.brand-nav { padding-top:1.05rem; padding-bottom:1.05rem; }
.brand-nav .name { font-size:1.25rem; }
.brand-nav .navlinks { gap:1.5rem; }
.brand-nav .navlinks a { font-size:.875rem; }
.brand-nav .navcta { font-size:.75rem; }
.menu-toggle { color:#fff; background:none; border:1px solid var(--line2); padding:.65rem .85rem; font:inherit; cursor:pointer; }
.menu-toggle[hidden] { display:none; }
.brand-nav { border-bottom-color:var(--line); }
.breadcrumbs { position:static; display:block; padding:1rem 0 0; background:none; backdrop-filter:none; border:0; font-family:var(--body); }
.breadcrumbs ol { display:flex; align-items:center; flex-wrap:wrap; gap:.6rem; list-style:none; color:var(--g2); font-size:.875rem; }
.breadcrumbs li+li::before { content:"/"; margin-right:.6rem; color:var(--g3); }
.breadcrumbs a { color:var(--g2); text-decoration:none; }
.breadcrumbs a:hover { color:var(--white); text-decoration:underline; }
.breadcrumbs [aria-current] { color:var(--white); }
.has-breadcrumb .homehero { padding-top:3rem; min-height:80svh; }
.has-breadcrumb .page-intro { padding-top:2.5rem; }
.not-found { padding-bottom:3rem; }
.recovery-links { padding-top:3rem; }
.recovery-links h2 { font-size:2rem; margin-bottom:2rem; }
.recovery-link { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.3rem 0; border-bottom:1px solid var(--line); text-decoration:none; }
.recovery-link:hover { color:var(--g2); }
.brand-main { padding-top:6.5rem; }
.brand-hero { padding:2.5rem 0 4.5rem; }
.hero-topline { display:flex; justify-content:space-between; gap:1rem; align-items:center; margin-bottom:1.7rem; }
.hero-topline p:last-child { color:var(--g2); font-size:.875rem; }
.brand-hero h1 { font-size:7rem; letter-spacing:-.045em; line-height:.95; margin-bottom:2.5rem; }
.hero-layout { display:grid; grid-template-columns:1.35fr 1fr; gap:3.5rem; align-items:center; }
.hero-image { margin:0; }
.hero-image img { display:block; width:100%; height:auto; aspect-ratio:5/4; object-fit:cover; }
.hero-image figcaption { display:flex; justify-content:space-between; gap:1rem; margin-top:.8rem; color:var(--g2); font-size:.75rem; }
.hero-copy h2 { font-size:2.7rem; line-height:1.15; }
.hero-copy p { color:var(--g2); margin:1.6rem 0 2rem; max-width:36ch; }
.text-link { text-decoration:none; display:inline-flex; align-items:center; gap:1.3rem; padding:.6rem 0; border-bottom:1px solid #666; font-size:.875rem; color:var(--white); }
.text-link:hover { border-color:#fff; }
.text-link .arrow { transition:transform .2s; }
.text-link:hover .arrow { transform:translateX(4px); }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; margin-bottom:2.5rem; }
.section-heading .kicker { margin-bottom:1rem; }
.section-heading h2 { font-size:3.4rem; }
.section-heading>p { color:var(--g2); max-width:34ch; }
.work-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem 1.5rem; }
.work-item { min-width:0; margin:0; }
.work-item img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; background:var(--panel); }
.work-item figcaption { padding-top:1rem; display:flex; justify-content:space-between; gap:1rem; align-items:baseline; }
.work-item h3 { font-size:1.25rem; }
.work-item figcaption p { color:var(--g2); font-size:.75rem; }
.feature-split { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start; }
.feature-split h2 { font-size:3.7rem; }
.feature-split .prose p { color:var(--g2); }
.feature-split .kicker { margin-bottom:1.4rem; }
.feature-split .ctarow { margin-top:2rem; }
.print-promise { margin-top:1.8rem; color:var(--g2); font-size:.875rem; }
.private-feature { display:grid; grid-template-columns:1.3fr 1fr; gap:4rem; padding:2.5rem 0 3rem; border-top:1px solid var(--line2); border-bottom:1px solid var(--line2); margin-bottom:3rem; }
.private-feature h3 { font-size:2.2rem; margin:.75rem 0 1rem; }
.private-feature p { color:var(--g2); max-width:52ch; }
.private-cost { display:flex; flex-direction:column; align-items:flex-start; gap:1rem; }
.private-cost strong { font-family:var(--display); font-size:4rem; font-weight:400; line-height:1; }
.private-cost .price-caption { font-size:.875rem; }
.private-cost .btn { margin-top:.5rem; }
.course-list { border-top:1px solid var(--line); }
.course-row { display:grid; grid-template-columns:.35fr 1fr 1.4fr .65fr auto; align-items:center; gap:1.5rem; padding:1.7rem 0; color:inherit; text-decoration:none; border-bottom:1px solid var(--line); }
.course-row:hover h3 { color:var(--g2); }
.course-row h3 { font-size:1.5rem; }
.course-row>p, .course-number { color:var(--g2); font-size:.875rem; }
.course-meta { text-align:right; font-size:.875rem; }
.course-meta span { display:block; color:var(--g2); font-size:.75rem; }
.now-list { border-top:1px solid var(--line); }
.now-item { display:grid; grid-template-columns:.6fr 1fr 1.3fr; gap:2rem; padding:2rem 0; border-bottom:1px solid var(--line); }
.now-item h3 { font-size:1.7rem; }
.now-item .description { color:var(--g2); }
.now-item .text-link { margin-top:.8rem; }
.about-grid { display:grid; grid-template-columns:.65fr 1fr; gap:5rem; align-items:center; }
.about-grid img { display:block; width:100%; height:auto; }
.about-grid h2 { font-size:3.5rem; margin:1rem 0 1.8rem; }
.about-grid p { color:var(--g2); }
.about-grid p+p { margin-top:1.2rem; }
.about-grid .text-link { margin-top:1.5rem; }
.contact-section h2 { font-size:4.2rem; }
.contact-section .sub { font-size:1rem; }
.footgrid h4 { font-size:.8125rem; }
.page-intro { padding:3rem 0 4.5rem; max-width:900px; }
.page-intro h1 { font-size:5.5rem; letter-spacing:-.03em; margin:1.3rem 0 1.8rem; }
.page-intro h1 em { color:var(--g2); }
.page-intro .intro-text { color:var(--g2); max-width:51ch; font-size:1.2rem; line-height:1.7; }
.page-intro .ctarow { margin-top:2rem; }
.page-intro .meta-inline { max-width:fit-content; }
.process-list { counter-reset:steps; }
.process-step { counter-increment:steps; display:grid; grid-template-columns:.2fr 1fr 1.5fr; gap:2rem; padding:2rem 0; border-top:1px solid var(--line); }
.process-step::before { content:'0' counter(steps); color:var(--g2); font-size:.875rem; }
.process-step h3 { font-size:1.65rem; }
.process-step p { color:var(--g2); }
.course-outline { display:grid; grid-template-columns:1fr 1fr; gap:0 3rem; margin-top:2.5rem; }
.outline-item { padding:1.5rem 0; border-top:1px solid var(--line); }
.outline-item .kicker { margin-bottom:.7rem; }
.outline-item h3 { font-size:1.7rem; margin-bottom:.7rem; }
.outline-item p { color:var(--g2); }
.course-private-note { padding:1.6rem 0; margin-top:1.5rem; border-top:1px solid var(--line2); }
.course-private-note p { color:var(--g2); max-width:60ch; margin:.75rem 0; }
.homehero h1 { font-size:5rem; }
h2 { font-size:3.5rem; }
.price { font-size:5rem; }
.homehero .lede { font-size:1.25rem; }
.final h2 { font-size:3.5rem; }
.pull { font-size:2rem; }
summary { font-size:1.25rem; }
@media (max-width:1000px) {
  .brand-nav .name span { display:none; }
  .brand-nav .navlinks { gap:1rem; }
  .brand-hero h1 { font-size:5.5rem; }
  .hero-layout, .feature-split, .private-feature { gap:2.5rem; }
  .hero-copy h2 { font-size:2.25rem; }
  .about-grid { gap:3rem; }
}
@media (min-width:821px) { .menu-toggle:not([hidden]) { display:none; } }
@media (max-width:820px) {
  .brand-nav { flex-wrap:wrap; }
  .brand-nav .navlinks { width:100%; display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; }
  .brand-nav .navlinks a { padding:.5rem 0; }
  .brand-nav .navlinks .navcta { padding:.5rem 1rem; }
  .brand-nav.menu-ready .navlinks { display:none; }
  .brand-nav.menu-ready .navlinks.is-open { display:flex; padding-top:.8rem; }
  .brand-main { padding-top:9rem; }
  body:has(.menu-ready) .brand-main { padding-top:5rem; }
  .brand-hero h1 { font-size:4.2rem; }
  .hero-layout { grid-template-columns:1fr; gap:2rem; }
  .hero-copy { max-width:38rem; }
  .hero-copy h2 { font-size:2.5rem; }
  .hero-copy p { max-width:50ch; }
  .feature-split, .private-feature, .about-grid { grid-template-columns:1fr; }
  .about-grid img { max-width:350px; }
  .feature-split h2, .section-heading h2, .about-grid h2 { font-size:3rem; }
  .now-item { grid-template-columns:1fr 2fr; gap:1rem 2rem; }
  .now-item .description { grid-column:2; }
  .course-row { grid-template-columns:auto 1fr auto; gap:1rem; }
  .course-row>p { grid-column:2; grid-row:2; }
  .course-meta { grid-column:3; grid-row:1 / span 2; }
  .course-row>.arrow { display:none; }
  .page-intro h1 { font-size:4.2rem; }
  .process-step { grid-template-columns:auto 1fr; gap:1rem 1.5rem; }
  .process-step p { grid-column:2; }
  .homehero h1 { font-size:3.7rem; }
}
@media (max-width:540px) {
  .brand-hero { padding:2rem 0 3rem; }
  .hero-topline { display:block; }
  .hero-topline p:last-child { margin-top:.5rem; }
  .brand-hero h1 { font-size:3.8rem; }
  .section-heading { display:block; }
  .section-heading>p { margin-top:1rem; }
  .work-grid { gap:2rem 1rem; }
  .work-item figcaption { display:block; }
  .work-item h3 { font-size:1.125rem; }
  .work-item figcaption p { margin-top:.4rem; }
  .private-feature { gap:2rem; }
  .now-item { grid-template-columns:1fr; gap:.65rem; }
  .now-item .description { grid-column:auto; }
  .contact-section h2, .page-intro h1 { font-size:3.2rem; }
  .page-intro .intro-text { font-size:1.0625rem; }
  .course-outline { grid-template-columns:1fr; }
  .btn { font-size:.75rem; padding:1rem 1.25rem; letter-spacing:.08em; }
  h2, .final h2 { font-size:2.5rem; }
  .homehero h1 { font-size:3rem; }
  .homehero .lede { font-size:1.125rem; }
  .course-row { gap:.75rem; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *, *::before, *::after { transition:none!important; } }

.homehero .hero-description { font-family:var(--display); font-size:clamp(1.13rem,.8rem + 1.76vw,2.35rem); color:var(--g2); letter-spacing:-.01em; margin-top:.5em; line-height:1.3; }
.learning-hub-link { margin:0 0 2.5rem; }
.learning-option { display:grid; grid-template-columns:1.35fr 1fr .8fr; gap:3rem; padding:2.5rem 0; border-top:1px solid var(--line); }
.learning-option h3 { font-size:2rem; margin:1rem 0; }
.learning-option h3 a { text-decoration:none; }
.learning-option h3 a:hover { text-decoration:underline; text-underline-offset:.2em; }
.learning-option p { color:var(--g2); }
.learning-option dl div+div { margin-top:1rem; }
.learning-option dt { color:var(--g2); font-size:.75rem; margin-bottom:.2rem; }
.learning-option dd { font-size:.9375rem; }
.learning-price strong { font-family:var(--display); font-size:3rem; font-weight:400; line-height:1; }
.learning-price p { font-size:.875rem; margin:.7rem 0 1rem; max-width:24ch; }
.portfolio-grid { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:4rem 2.5rem; }
.portfolio-photo { margin:0; min-width:0; }
.portfolio-photo:nth-child(even) { margin-top:5rem; }
.portfolio-photo img { display:block; width:100%; height:auto; }
.portfolio-photo a { display:block; }
.portfolio-photo figcaption { margin-top:1.3rem; }
.portfolio-photo h3 { font-size:1.8rem; margin:.65rem 0; }
.portfolio-photo figcaption>p:last-child { color:var(--g2); font-size:.9375rem; max-width:45ch; }
.brand-nav [aria-current="page"] { text-decoration:underline; text-underline-offset:.4em; }
@media(max-width:820px) {
  .learning-option { grid-template-columns:1fr 1fr; gap:1.8rem; }
  .learning-option>div:first-child { grid-column:1/-1; }
  .portfolio-grid { gap:2.5rem 1.5rem; }
}
@media(max-width:540px) {
  .learning-option { grid-template-columns:1fr; }
  .learning-option dl { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
  .learning-option dl div+div { margin-top:0; }
  .portfolio-grid { grid-template-columns:1fr; gap:3rem; }
  .portfolio-photo:nth-child(even) { margin-top:0; }
}
