/* MaruOps Journal. All component rules are scoped to this theme's containers. */
.wp-site-blocks { padding-block: 0; }
.maruops-shell {
  --journal-ink: #302820;
  --journal-muted: #6b6259;
  --journal-accent: #964d2e;
  --journal-line: #e6ded3;
  box-sizing: border-box;
  width: calc(100% - 64px);
  max-width: 1120px;
  margin-inline: auto;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.maruops-shell *, .maruops-shell *::before, .maruops-shell *::after { box-sizing: border-box; }
.maruops-shell a { text-underline-offset: .22em; }
.maruops-shell a:hover { color: #733b25; }
.maruops-shell :where(a,button,input,textarea,summary):focus-visible { outline: 2px solid #964d2e; outline-offset: 4px; }
.maruops-header { border-bottom: 1px solid #e6ded3; background: #fff; }
.maruops-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 100px; padding-block: 22px; }
.maruops-brand.wp-block-site-title { margin: 0; font-size: 29px; font-weight: 800; line-height: 1.15; letter-spacing: -.055em; }
.maruops-brand.wp-block-site-title a { color: #302820; text-decoration: none; }
.maruops-brand.wp-block-site-title a::after { content: '.'; color: #964d2e; }
.maruops-brand-note { margin: 7px 0 0; font-size: 12px; line-height: 1.5; color: #6b6259; letter-spacing: -.02em; }
.maruops-main-nav { font-size: 14px; font-weight: 650; line-height: 1.5; }
.maruops-main-nav .wp-block-navigation__container { gap: 28px; }
.maruops-main-nav .wp-block-navigation-item__content { padding-block: 10px; color: #302820; }
.maruops-main-nav .wp-block-navigation-item__content:hover { color: #964d2e; text-decoration: underline; }
.maruops-main-nav .wp-block-navigation__responsive-container-open { padding: 10px; min-width: 44px; min-height: 44px; }
.maruops-main { margin-top: 0; padding-bottom: 80px; }
.maruops-hero { display: grid; grid-template-columns: 1.3fr 1fr; align-items: center; gap: 76px; padding-block: 66px 56px; }
.maruops-eyebrow { margin: 0 0 20px; color: #964d2e; font-size: 11px; font-weight: 750; letter-spacing: .12em; line-height: 1.6; }
.maruops-hero-title.wp-block-heading { margin: 0 0 24px; font-size: clamp(34px, 3.6vw, 50px); font-weight: 750; line-height: 1.3; letter-spacing: -.065em; }
.maruops-hero-description { max-width: 470px; margin: 0; color: #6b6259; font-size: 16px; line-height: 1.85; }
.maruops-hero-link { margin: 26px 0 0; font-size: 14px; font-weight: 650; }
.maruops-hero-link a { display: inline-flex; gap: 20px; align-items: center; padding-block: 8px; text-decoration: underline; }
.maruops-hero-feature { min-width: 0; padding-left: 30px; border-left: 1px solid #e6ded3; }
.maruops-hero-image { margin: 0 0 22px; }
.maruops-hero-image a { display: block; }
.maruops-hero-image img { display: block; width: 100%; height: auto; border: 1px solid #e6ded3; border-radius: 5px; }
.maruops-hero-feature .maruops-eyebrow { margin-bottom: 8px; font-size: 10px; }
.maruops-hero-feature-title.wp-block-heading { margin: 0 0 9px; font-size: 21px; font-weight: 700; line-height: 1.5; letter-spacing: -.035em; }
.maruops-hero-feature-title a { color: #302820; text-decoration: none; }
.maruops-hero-feature-title a:hover { text-decoration: underline; }
.maruops-hero-feature-description { margin: 0; font-size: 13px; line-height: 1.8; color: #6b6259; }
.maruops-section-title.wp-block-heading { margin: 0; font-size: 25px; line-height: 1.45; font-weight: 750; letter-spacing: -.045em; }
.maruops-section-description { margin: 8px 0 0; color: #6b6259; font-size: 14px; line-height: 1.7; }
.maruops-learning { padding-block: 30px 48px; border-top: 1px solid #e6ded3; }
.maruops-series-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 24px; }
.maruops-series-card { display: flex; gap: 22px; padding: 26px 28px; border: 1px solid #e6ded3; border-radius: 8px; background: #f7f3ed; }
.maruops-series-number { flex: 0 0 auto; white-space: nowrap; margin: 0; color: #964d2e; font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: 14px; line-height: 1.9; font-weight: 650; }
.maruops-series-copy { min-width: 0; }
.maruops-series-title.wp-block-heading { margin: 0 0 8px; font-size: 20px; line-height: 1.5; font-weight: 700; }
.maruops-series-title a { color: #302820; text-decoration: none; }
.maruops-series-title a:hover { text-decoration: underline; }
.maruops-series-description { margin: 0; color: #6b6259; font-size: 14px; line-height: 1.8; }
.maruops-series-link { margin: 15px 0 0; font-size: 13px; font-weight: 650; }
.maruops-series-link a { display: inline-flex; align-items: center; gap: 20px; }
.maruops-latest { border-top: 2px solid #302820; padding-top: 32px; }
.maruops-latest-heading { display: flex; justify-content: space-between; align-items: center; gap: 28px; margin-bottom: 30px; }
.maruops-search { width: 320px; max-width: 100%; margin: 0; font-size: 13px; }
.maruops-search .wp-block-search__inside-wrapper { gap: 8px; padding: 0; border: 0; }
.maruops-search .wp-block-search__input { width: 0; min-width: 0; border: 1px solid #c6b9a9; border-radius: 5px; padding: 11px 13px; font: inherit; color: #302820; background: #fff; }
.maruops-search .wp-block-search__input::placeholder { color: #6b6259; opacity: 1; }
.maruops-search .wp-block-search__button { margin: 0; min-height: 44px; padding: 9px 16px; border: 1px solid #964d2e; border-radius: 5px; background: #964d2e; color: #fff; font: inherit; font-weight: 650; white-space: nowrap; }
.maruops-post-grid.wp-block-post-template { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px 24px; padding: 0; margin: 0; list-style: none; }
.maruops-post-grid > li { display: flex; flex-direction: column; min-width: 0; margin: 0; border: 1px solid #e6ded3; border-radius: 8px; overflow: hidden; background: #fff; }
.maruops-card-image.wp-block-post-featured-image { position: relative; flex-shrink: 0; width: 100%; margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: #f7f3ed; border-bottom: 1px solid #eee7de; }
.maruops-card-image a { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.maruops-card-image img { display: block; width: 100%; height: 100% !important; aspect-ratio: auto !important; object-fit: contain !important; padding: 0; }
.maruops-card-body { display: flex; flex: 1; flex-direction: column; padding: 22px; }
.maruops-card-category.wp-block-post-terms { margin: 0 0 10px; color: #964d2e; font-size: 11px; font-weight: 650; line-height: 1.7; }
.maruops-card-category a { color: #964d2e; text-decoration: none; white-space: normal; }
.maruops-card-category a:hover { text-decoration: underline; }
.maruops-card-title.wp-block-post-title { margin: 0 0 13px; font-size: 19px; font-weight: 700; line-height: 1.55; letter-spacing: -.025em; }
.maruops-card-title a { color: #302820; text-decoration: none; }
.maruops-card-title a:hover { color: #964d2e; text-decoration: underline; }
.maruops-card-excerpt.wp-block-post-excerpt { margin: 0 0 23px; color: #6b6259; font-size: 14px; line-height: 1.8; }
.maruops-card-excerpt .wp-block-post-excerpt__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 0; }
.maruops-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 15px; border-top: 1px solid #eee7de; font-size: 11px; line-height: 1.7; }
.maruops-card-meta .wp-block-post-date { margin: 0; color: #6b6259; font-size: inherit; }
.maruops-card-meta .wp-block-read-more { display: inline-flex; align-items: center; min-height: 28px; font-weight: 650; text-decoration: none; color: #302820; }
.maruops-card-meta .wp-block-read-more:hover { color: #964d2e; text-decoration: underline; }
.maruops-pagination.wp-block-query-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin: 40px 0 0; padding-top: 25px; border-top: 1px solid #e6ded3; font-size: 14px; }
.maruops-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 5px; text-decoration: none; border-radius: 5px; color: #302820; }
.maruops-pagination .page-numbers.current { background: #302820; color: #fff; }
.maruops-pagination :where(.wp-block-query-pagination-next,.wp-block-query-pagination-previous) { display: inline-flex; align-items: center; min-height: 40px; margin: 0; color: #302820; }
.maruops-pagination .wp-block-query-pagination-numbers { margin: 0; }
.maruops-archive { padding-top: 50px; }
.maruops-archive-head { margin-bottom: 35px; padding-bottom: 32px; border-bottom: 2px solid #302820; }
.maruops-archive-title.wp-block-query-title { margin: 0 0 16px; font-size: clamp(28px,3vw,40px); font-weight: 750; line-height: 1.4; }
.maruops-archive-description { max-width: 760px; margin: 0 0 24px; color: #6b6259; font-size: 16px; }
.maruops-archive-description p { margin: 0; }
.maruops-archive-head .maruops-search { margin-top: 22px; width: min(400px, 100%); max-width: 100%; }
.paged .maruops-home-intro { display: none; }
.paged .maruops-latest { margin-top: 45px; }
.maruops-single, .maruops-page { padding-top: 56px; }
.maruops-article-head { max-width: 760px; margin: 0 auto 32px; }
.maruops-article-category { margin-bottom: 18px; color: #964d2e; font-size: 13px; font-weight: 650; line-height: 1.7; }
.maruops-article-category a { white-space: normal; }
.maruops-single .maruops-article-head .maruops-article-title,
.maruops-page .maruops-article-head .maruops-article-title { margin: 0; max-width: 760px; font-size: clamp(29px,3.3vw,42px); font-weight: 750; line-height: 1.45; letter-spacing: -.045em; text-wrap: pretty; word-break: keep-all; overflow-wrap: anywhere; }
.maruops-article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 15px; margin-top: 24px; color: #6b6259; font-size: 13px; line-height: 1.7; }
.maruops-article-meta p, .maruops-article-meta .wp-block-post-date { margin: 0; font-size: inherit; color: inherit; }
.maruops-article-meta p::after { content: '·'; margin-left: 15px; }
.maruops-single .maruops-article-cover { max-width: 760px; margin: 0 auto 40px; }
.maruops-single .maruops-article-cover img { display: block; max-width: 100%; width: 100%; height: auto !important; aspect-ratio: auto !important; object-fit: contain; border: 1px solid #e6ded3; border-radius: 5px; }
.maruops-reading.wp-block-post-content { margin: 0 auto; width: 100%; max-width: 1120px; font-size: 18px; line-height: 1.8; color: #1f2937; }
.maruops-reading.wp-block-post-content > :not(.alignwide):not(.alignfull) { max-width: 760px; margin-inline: auto; }
.maruops-reading :where(.maruops-llm,.maruops-article) { padding-inline: 0; }
.maruops-reading .maruops-llm { font-family: inherit; }
.maruops-reading > p { margin-bottom: 1.15em; }
.maruops-reading :where(h2,h3,h4) { scroll-margin-top: 24px; }
.maruops-reading :where(.maruops-toc,.llm-toc,.gpu-toc,.maruops-auto-toc) { margin-block: 28px 36px; padding: 20px 24px; border: 1px solid #e6ded3; border-left: 3px solid #964d2e; border-radius: 0 6px 6px 0; background: #f7f3ed; font-size: 15px; line-height: 1.85; }
.maruops-reading :where(.maruops-toc,.llm-toc,.gpu-toc,.maruops-auto-toc) p { margin-bottom: 10px; }
.maruops-reading :where(.maruops-toc,.llm-toc,.gpu-toc,.maruops-auto-toc) ol { margin-bottom: 0; }
.maruops-auto-toc summary { cursor: pointer; font-weight: 700; }
.maruops-auto-toc nav { margin-top: 12px; }
.maruops-reading .wp-block-table { max-width: 1120px; overflow-x: auto; }
.maruops-reading img { max-width: 100%; height: auto; }
.maruops-reading .maruops-code { width: 100%; max-width: 760px; min-width: 0; margin: 24px auto; border: 1px solid #cbd5e1; border-radius: 7px; overflow: hidden; background: #f8fafc; }
.maruops-code-tools { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 10px 6px 18px; border-bottom: 1px solid #e6ded3; background: #edf2f8; color: #475569; font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: 12px; line-height: 1.5; }
.maruops-code-tools button { min-width: 48px; min-height: 32px; padding: 5px 10px; border: 1px solid #c3cedc; border-radius: 4px; background: #fff; color: #302820; font-family: inherit; font-size: 12px; cursor: pointer; }
.maruops-code-tools button:hover { background: #e3ebfa; }
.maruops-reading .maruops-code pre { width: 100%; max-width: 100%; margin: 0; border: 0; border-radius: 0; padding: 18px 20px; background: #f8fafc; color: #1f2937; font-size: 14px; line-height: 1.7; white-space: pre; word-break: normal; overflow-wrap: normal; overflow-x: auto; }
.maruops-reading code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.maruops-reading .maruops-code pre { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; tab-size: 4; }
.maruops-reading .maruops-code pre code { color: inherit; background: transparent; text-shadow: none; font-family: inherit; font-size: inherit; line-height: inherit; white-space: inherit; word-break: inherit; overflow-wrap: inherit; }
.maruops-code .token.comment, .maruops-code .token.prolog { color: #70665a; }
.maruops-code .token.punctuation { color: #475569; }
.maruops-code .token.property, .maruops-code .token.tag, .maruops-code .token.number, .maruops-code .token.boolean, .maruops-code .token.constant { color: #9f2851; }
.maruops-code .token.selector, .maruops-code .token.attr-name, .maruops-code .token.string, .maruops-code .token.char, .maruops-code .token.builtin { color: #126346; }
.maruops-code .token.operator, .maruops-code .token.entity, .maruops-code .token.url { color: #754d10; }
.maruops-code .token.keyword, .maruops-code .token.atrule, .maruops-code .token.attr-value { color: #964d2e; }
.maruops-code .token.function, .maruops-code .token.class-name { color: #7340a0; }
.maruops-code .token.regex, .maruops-code .token.important, .maruops-code .token.variable { color: #8f420f; }
.maruops-related { margin-top: 64px; padding-top: 30px; border-top: 2px solid #302820; }
.maruops-related > .maruops-section-title { margin-bottom: 26px; }
.maruops-related .maruops-card-title { font-size: 17px; }
.maruops-comments { width: 100%; max-width: 760px; margin: 64px auto 0; padding-top: 24px; border-top: 1px solid #e6ded3; font-size: 16px; }
.maruops-comments > h2 { margin: 0 0 24px; font-size: 25px; }
.maruops-comments .wp-block-comments-title { margin-bottom: 20px; font-size: 18px; }
.maruops-comments .wp-block-post-comments-form { padding-block: 0; font-size: 15px; }
.maruops-comments .comment-reply-title { font-size: 21px; }
.maruops-comments input:not([type=checkbox]):not([type=submit]), .maruops-comments textarea { width: 100%; max-width: 100%; border: 1px solid #c6b9a9; padding: 10px; font: inherit; }
.maruops-comments .comment-form label { font-size: 14px; line-height: 1.8; }
.maruops-comments .comment-form p { margin-bottom: 18px; }
.maruops-comments .maruops-comment { margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid #e6ded3; }
.maruops-footer { margin-top: 0; border-top: 1px solid #e6ded3; padding-block: 40px 22px; background: #f7f3ed; }
.maruops-footer-top { display: flex; align-items: center; justify-content: space-between; gap: 26px; padding-bottom: 30px; }
.maruops-footer-brand { margin: 0; font-size: 25px; font-weight: 800; letter-spacing: -.05em; line-height: 1.4; }
.maruops-footer-brand a { color: #302820; text-decoration: none; }
.maruops-footer-brand span { color: #964d2e; }
.maruops-footer-tagline { margin: 8px 0 0; color: #6b6259; font-size: 13px; line-height: 1.7; }
.maruops-footer-nav { font-size: 13px; }
.maruops-footer-nav .wp-block-navigation__container { gap: 22px; }
.maruops-footer-nav a { display: inline-flex; align-items: center; min-height: 36px; color: #302820; }
.maruops-footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 18px; border-top: 1px solid #e6ded3; color: #6b6259; font-size: 11px; line-height: 1.8; }
.maruops-footer-bottom p { margin: 0; }
.maruops-footer-mail a { color: #6b6259; }
@media (min-width: 782px) and (prefers-reduced-motion: no-preference) {
  .maruops-post-grid > li { transition: border-color .15s ease,box-shadow .15s ease; }
  .maruops-post-grid > li:hover { border-color: #bfa58d; box-shadow: 0 5px 18px #1723370a; }
}
@media (max-width: 1000px) {
  .maruops-hero { gap: 36px; }
  .maruops-hero-title.wp-block-heading { font-size: 37px; }
  .maruops-post-grid.wp-block-post-template { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .maruops-series-card { padding: 22px; gap: 16px; }
  .maruops-main-nav .wp-block-navigation__container { gap: 20px; }
}
@media (max-width: 781px) {
  .maruops-shell { width: calc(100% - 40px); }
  .maruops-header-inner { min-height: 86px; padding-block: 18px; gap: 16px; }
  .maruops-brand.wp-block-site-title { font-size: 26px; }
  .maruops-brand-note { font-size: 11px; }
  .maruops-main-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 28px 24px; }
  .maruops-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 18px; font-size: 20px; }
  .maruops-main-nav .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; }
  .maruops-hero { grid-template-columns: 1fr; gap: 34px; padding-block: 40px 34px; }
  .maruops-hero-title.wp-block-heading { font-size: clamp(29px,5vw,40px); }
  .maruops-hero-description { max-width: 540px; font-size: 15px; }
  .maruops-hero-feature { padding: 24px 0 0; border-left: 0; border-top: 1px solid #e6ded3; }
  .maruops-hero-image { float: right; width: 42%; max-width: 250px; margin: 0 0 14px 24px; }
  .maruops-hero-feature-title.wp-block-heading { font-size: 19px; }
  .maruops-hero-feature::after { content: ''; display: table; clear: both; }
  .maruops-series-grid { gap: 16px; }
  .maruops-series-card { display: block; padding: 20px; }
  .maruops-series-number { margin-bottom: 10px; font-size: 12px; }
  .maruops-series-title.wp-block-heading { font-size: 18px; }
  .maruops-section-title.wp-block-heading { font-size: 23px; }
  .maruops-latest-heading { flex-wrap: wrap; gap: 20px; }
  .maruops-search { width: 100%; max-width: 440px; }
  .maruops-post-grid.wp-block-post-template { gap: 22px 18px; }
  .maruops-card-body { padding: 19px; }
  .maruops-card-title.wp-block-post-title { font-size: 18px; }
  .maruops-single, .maruops-page { padding-top: 36px; }
  .maruops-reading.wp-block-post-content:has(> .maruops-llm) { padding-inline: 0; }
  .maruops-footer-top { align-items: flex-start; flex-direction: column; gap: 22px; }
}
@media (max-width: 599px) {
  .maruops-reading.wp-block-post-content { font-size: 17px; }
  .maruops-main { padding-bottom: 54px; }
  .maruops-eyebrow { margin-bottom: 16px; font-size: 10px; }
  .maruops-hero-title.wp-block-heading { font-size: clamp(28px,7.5vw,35px); margin-bottom: 20px; }
  .maruops-hero-link { margin-top: 18px; }
  .maruops-hero-image { float: none; width: 100%; max-width: none; margin: 0 0 18px; }
  .maruops-hero-feature-title.wp-block-heading { font-size: 20px; }
  .maruops-learning { padding-block: 26px 32px; }
  .maruops-series-grid { grid-template-columns: 1fr; margin-top: 22px; }
  .maruops-series-card { display: flex; gap: 18px; }
  .maruops-series-number { margin-bottom: 0; }
  .maruops-post-grid.wp-block-post-template { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .maruops-card-body { padding: 22px; }
  .maruops-card-title.wp-block-post-title { font-size: 20px; }
  .maruops-card-category.wp-block-post-terms { font-size: 12px; }
  .maruops-card-meta { font-size: 12px; }
  .maruops-latest { padding-top: 25px; }
  .maruops-pagination.wp-block-query-pagination { gap: 8px; font-size: 13px; }
  .maruops-pagination .page-numbers { min-width: 32px; }
  .maruops-single .maruops-article-head .maruops-article-title,
  .maruops-page .maruops-article-head .maruops-article-title { font-size: 29px; line-height: 1.5; }
  .maruops-article-meta { margin-top: 20px; }
  .maruops-article-head { margin-bottom: 26px; }
  .maruops-single .maruops-article-cover { margin-bottom: 30px; }
  .maruops-reading :where(.maruops-toc,.llm-toc,.gpu-toc,.maruops-auto-toc) { padding: 18px; font-size: 14px; }
  .maruops-reading .maruops-code pre { padding: 16px; font-size: 13px; }
  .maruops-related { margin-top: 45px; }
  .maruops-comments { margin-top: 45px; }
  .maruops-footer { padding-top: 32px; }
  .maruops-footer-bottom { flex-direction: column; gap: 8px; }
  .maruops-footer-nav .wp-block-navigation__container { gap: 18px; }
}
