/*
Theme Name: Hello Orba
Description: Independent English editorial theme for Culture and a separate native Tech section.
Version: 1.0.0
Requires at least: 6.3
Requires PHP: 8.1
Text Domain: hello-orba
License: GNU General Public License v2 or later
*/
:root {
  --paper: #f5f4ef; --surface: #ffffff; --ink: #161b19; --muted: #505c54;
  --accent: #234b39; --on-accent: #ffffff; --highlight: #d3ed77;
  --line: #a6afa7; --focus: #92370e; --radius: 2px;
  --display: Georgia, 'Times New Roman', 'Noto Serif CJK KR', serif;
  --body: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans CJK KR', sans-serif;
  --mono: ui-monospace, SFMono-Regular, Consolas, monospace;
}
* { box-sizing: border-box; }
html { color: var(--ink); background: var(--paper); font-size: 100%; }
body { margin: 0; font-family: var(--body); font-size: 1rem; line-height: 1.65; }
a { color: var(--accent); text-underline-offset: .2em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
a:active { color: var(--ink); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
#main-content:focus { outline: none; }
h1, h2, h3, h4, h5, h6 { font-family: var(--display); font-weight: 700; line-height: 1.12; overflow-wrap: anywhere; }
h1 { font-size: clamp(2.5rem, 5vw, 5rem); margin: 0; letter-spacing: -.035em; }
h2 { font-size: clamp(1.65rem, 2.5vw, 2.5rem); }
h3 { font-size: 1.5rem; }
p { margin: 0 0 1.5rem; }
img, video, iframe { max-width: 100%; }
img { height: auto; }
figure { max-width: 100%; margin-inline: 0; }
button, input, select, textarea { font: inherit; max-width: 100%; border-radius: var(--radius); }
button, input, select { min-height: 44px; }
button { background: var(--accent); color: var(--on-accent); border: 1px solid var(--accent); padding: .5rem 1.5rem; cursor: pointer; }
button:hover { background: var(--ink); }
button:active { background: var(--accent); }
button:disabled { opacity: .6; cursor: not-allowed; }
input, select, textarea { background: var(--surface); color: var(--ink); border: 1px solid var(--muted); padding: .5rem .75rem; }
input[aria-invalid="true"] { border: 2px solid var(--focus); }
.shell { width: min(100% - clamp(2rem, 8vw, 8rem), 1280px); margin-inline: auto; }
.skip-link { position: absolute; left: 1rem; top: .5rem; transform: translateY(-180%); padding: .75rem 1rem; background: var(--surface); color: var(--ink); z-index: 10; }
.skip-link:focus { transform: translateY(0); }
.site-header { padding-top: 1.5rem; }
.masthead-meta { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; font-size: .875rem; border-bottom: 1px solid var(--line); }
.masthead-meta a { display: inline-flex; align-items: center; min-height: 44px; gap: .5rem; }
.masthead { display: block; width: fit-content; padding: 1rem 0 1.5rem; color: var(--ink); font-family: var(--display); font-weight: 700; font-size: clamp(2.7rem, 9vw, 7.4rem); line-height: 1.05; letter-spacing: -.065em; text-decoration: none; }
.brand-mark { color: var(--accent); background: var(--highlight); padding-right: .08em; }
.header-bar { display: flex; justify-content: space-between; gap: 1.5rem; align-items: flex-start; border-top: 4px double var(--ink); border-bottom: 1px solid var(--ink); }
.site-navigation { flex: 1; min-width: 0; }
.site-navigation summary { cursor: pointer; min-height: 44px; padding: .5rem 0; width: fit-content; font-weight: 650; }
.site-navigation summary::marker { color: var(--accent); }
.nav-links { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1.5rem; list-style: none; margin: 0; padding: 0; }
.nav-links li { min-width: 0; }
.nav-links a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; overflow-wrap: anywhere; }
.nav-links a:hover, .nav-links a[aria-current] { text-decoration: underline; }
.nav-links a[aria-current] { font-weight: 750; }
.nav-tech { border-left: 1px solid var(--line); padding-left: 1.5rem; }
.search-jump { min-height: 44px; display: inline-flex; align-items: center; gap: .5rem; }
.site-main { padding-top: 3rem; padding-bottom: 4rem; min-height: 45vh; }
.home-intro { display: grid; grid-template-columns: minmax(0, 3fr) minmax(12rem, 1fr); gap: 4rem; margin-bottom: 4rem; align-items: start; }
.section-label { display: block; color: var(--accent); font-family: var(--body); font-size: .875rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; margin: 0 0 1rem; }
.culture-index { border-top: 2px solid var(--accent); padding-top: .75rem; }
.culture-index p { color: var(--muted); font-size: .875rem; margin: 0 0 .5rem; }
.culture-index ul { list-style: none; padding: 0; margin: 0; }
.culture-index a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; text-decoration: none; border-bottom: 1px solid var(--line); }
.culture-index a:hover { text-decoration: underline; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .5rem 2rem; border-top: 2px solid var(--ink); padding-top: 1rem; margin-bottom: 2rem; }
.section-heading h2 { font-size: 1.5rem; margin: 0; }
.section-heading span { font-size: .875rem; color: var(--muted); }
.story-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 3rem; }
.story { min-width: 0; padding: 0 0 2rem; border-bottom: 1px solid var(--line); margin-bottom: 2rem; }
.story-grid-home .story:first-child { grid-column: 1 / -1; max-width: 900px; padding-bottom: 3rem; }
.story-grid-home .story:first-child h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
.story h2 { margin: .75rem 0 1rem; }
.story h2 a { color: var(--ink); text-decoration: none; }
.story h2 a:hover { text-decoration: underline; }
.story-meta { display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem 1rem; }
.story-meta .section-label { margin: 0; }
.story-meta time, .story-author { color: var(--muted); font-size: .875rem; }
.story-excerpt { max-width: 70ch; overflow-wrap: anywhere; }
.story-author { margin: 0; }
.page-heading { max-width: 950px; margin-bottom: 3rem; }
.page-heading > p:last-child { font-size: 1.125rem; max-width: 65ch; margin-top: 1.5rem; color: var(--muted); }
.empty-state { background: var(--surface); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 2rem; margin: 2rem 0; }
.empty-state h2 { font-size: 1.65rem; margin: 0 0 1rem; }
.empty-state p { margin: 0; max-width: 65ch; color: var(--muted); }
.search-form { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem; margin: 0 0 3rem; }
.search-field { flex: 1 1 18rem; min-width: 0; }
.search-scope { flex: 0 1 13rem; min-width: 0; }
.search-form label { display: block; font-size: .875rem; font-weight: 650; margin-bottom: .5rem; }
.search-form input, .search-form select { width: 100%; }
.topic-navigation { margin: 0 0 2rem; border-block: 1px solid var(--line); padding: .5rem 0; }
.topic-navigation .nav-links { gap: .25rem 1.5rem; }
.article-heading { max-width: 1000px; margin: 0 0 3rem; }
.article-heading h1 { margin-bottom: 1.5rem; }
.section-return { width: fit-content; min-height: 44px; display: flex; align-items: center; }
.article-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; color: var(--muted); font-size: .875rem; }
.reading-measure { max-width: 70ch; }
.entry-content { font-size: 1.125rem; overflow-wrap: anywhere; }
.entry-content h2, .entry-content h3 { margin: 3rem 0 1rem; }
.entry-content ul, .entry-content ol { padding-left: 1.5rem; }
.entry-content li { margin-bottom: .5rem; }
.entry-content blockquote { margin: 2rem 0; padding-left: 1.5rem; border-left: 3px solid var(--accent); }
.entry-content a { overflow-wrap: anywhere; }
.entry-content pre { max-width: 100%; overflow-x: auto; white-space: pre; padding: 1.5rem; background: var(--ink); color: var(--paper); font-family: var(--mono); font-size: .875rem; line-height: 1.7; overflow-wrap: normal; tab-size: 4; }
.entry-content pre:focus-visible { outline-color: var(--focus); }
.entry-content code { font-family: var(--mono); font-size: .9em; }
.entry-content pre code { font-size: inherit; white-space: pre; overflow-wrap: normal; word-break: normal; }
.entry-content table { border-collapse: collapse; width: 100%; font-size: 1rem; display: block; max-width: 100%; overflow-x: auto; }
.table-scroll { max-width: 100%; overflow-x: auto; margin-block: 2rem; }
.table-scroll table { display: table; }
.entry-content td, .entry-content th { border: 1px solid var(--line); padding: .75rem; text-align: left; }
.entry-content figcaption { color: var(--muted); font-size: .875rem; }
.wp-caption { max-width: 100%; }
.alignleft { float: left; margin: .5rem 1.5rem 1rem 0; }
.alignright { float: right; margin: .5rem 0 1rem 1.5rem; }
.aligncenter { margin-inline: auto; }
.entry-content::after { content: ''; display: table; clear: both; }
.article-permalink { margin-block: 3rem; font-size: .875rem; }
.preview-notice { padding: 1rem; border: 2px solid var(--accent); max-width: 70ch; }
.related-stories { margin-top: 4rem; }
.pagination, .page-links { margin: 2rem 0; }
.nav-links .page-numbers, .pagination .page-numbers, .page-links a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: .5rem; border: 1px solid var(--line); }
.pagination .current { background: var(--accent); color: var(--on-accent); }
.pagination .nav-links { gap: .5rem; }
.site-footer { padding-block: 2rem; border-top: 4px double var(--ink); }
.footer-top { display: flex; flex-wrap: wrap; gap: .5rem 2rem; align-items: baseline; justify-content: space-between; margin-bottom: 1rem; }
.footer-brand { font-family: var(--display); font-size: 2rem; font-weight: 700; letter-spacing: -.04em; color: var(--ink); text-decoration: none; }
.footer-top p { margin: 0; color: var(--muted); font-size: .875rem; }
.recovery-links { margin-block: 2rem; }
.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; }
@media (min-width: 768px) {
  .site-navigation[open] { display: flex; align-items: baseline; gap: 1.5rem; flex-wrap: wrap; }
  .site-navigation[open] > nav { flex: 1 1 auto; }
}
@media (max-width: 767px) {
  .site-header { padding-top: .75rem; }
  .masthead-meta { font-size: .875rem; }
  .masthead { padding-block: 1rem; }
  .header-bar { gap: 1rem; }
  .site-navigation .nav-links { display: block; padding-bottom: .75rem; }
  .site-navigation .nav-links a { width: 100%; }
  .nav-tech { border-left: 0; border-top: 1px solid var(--line); padding: .5rem 0 0; margin-top: .5rem; }
  .site-main { padding-top: 2rem; padding-bottom: 3rem; }
  .home-intro { grid-template-columns: minmax(0, 1fr); gap: 2rem; margin-bottom: 3rem; }
  .culture-index { max-width: none; }
  .story-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .story-grid-home .story:first-child { padding-bottom: 2rem; }
  .page-heading, .article-heading { margin-bottom: 2rem; }
  .empty-state { padding: 1.5rem; }
  .search-scope { flex: 1 1 12rem; }
  .search-form button { flex: 1 1 6rem; }
  .entry-content pre { padding: 1rem; }
  .alignleft, .alignright { float: none; margin: 1.5rem 0; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
