/* Kakao Tech-inspired editorial treatment. Original JIKJI type artwork. */
:root { --paper: #fff; --surface: #f5f7fa; --ink: #151518; --muted: #60646d; --line: #e8edf2; --accent: #2466a8; --blue: #5ea5ea; --blue-soft: #eaf4fd; --focus: #2466a8; }
.shell { width: min(100% - 4rem, 77.5rem); }
h1, h2, h3 { letter-spacing: -.02em; text-wrap: balance; }
.lede { margin-block: 0; word-break: keep-all; overflow-wrap: break-word; text-wrap: pretty; }
/* Short editorial copy wraps by words; center-aligned introductions balance lines.
   Long prose and preformatted code retain their normal reading flow. */
.page-heading .lede, .article-header .lede { text-wrap: balance; white-space: normal; }
.card-title, .read-next-link h3 { word-break: keep-all; overflow-wrap: break-word; text-wrap: balance; }
.card-excerpt, .section-description, .footer-intro p { word-break: keep-all; overflow-wrap: break-word; text-wrap: pretty; }
.site-header { min-height: 5rem; padding-block: 1rem; border: 0; gap: 3rem; }
.brand { font-size: 1.5rem; letter-spacing: -.025em; font-weight: 750; }
.brand { display: inline-flex; align-items: center; gap: .75rem; }
.company-link { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.75rem; font-size: .875rem; text-decoration: none; white-space: nowrap; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.pagination { display: flex; justify-content: center; align-items: center; gap: 12px; border: 0; margin-top: 3rem; padding-block: 1.5rem; }
.pagination-numbers { display: flex; align-items: center; gap: 8px; }
.pagination a, .pagination-disabled, .pagination-numbers > span[aria-current] { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 44px; text-decoration: none; font-size: 14px; font-weight: 600; color: #60646d; border-radius: 5px; }
.pagination [rel], .pagination-disabled { font-size: 28px; font-weight: 400; }
.pagination .pagination-disabled { color: #b3bdc9; }
.pagination [aria-current="page"] { background: var(--blue-soft); color: var(--accent); }
.pagination a:hover { background: #f3f7fa; color: var(--accent); }
.archive-home > .section-heading { margin-bottom: 1rem; }
.brand .brand-logo { width: 100px; height: 23px; max-height: none; flex-shrink: 0; }
.site-header .nav { gap: 2.5rem; }
.nav a { font-size: .9375rem; color: #41434b; }
.nav a[aria-current] { text-decoration-thickness: 2px; text-underline-offset: .75rem; }
.search-button { border: 0; border-radius: 2rem; background: var(--accent); color: white; min-height: 2.5rem; padding-inline: 1.75rem; font-size: .875rem; gap: 1.5rem; }
.search-button:hover { color: white; background: #1b4f83; }
.home-hero { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: 3rem; padding-block: 4rem; }
.hero-copy h1 { font-size: clamp(2.5rem, 4vw, 3.5rem); max-width: 10em; line-height: 1.35; letter-spacing: -.025em; margin-block: 1rem 1.5rem; }
.hero-copy .eyebrow { font-size: .75rem; letter-spacing: .13em; }
.hero-copy .lede { max-width: 28rem; line-height: 1.7; font-size: 1.0625rem; }
.hero-link { display: inline-flex; gap: 2rem; align-items: center; text-decoration: none; font-size: .875rem; margin-top: 1.5rem; padding-bottom: .5rem; border-bottom: 1px solid var(--ink); }
.hero-art { font-family: Arial, sans-serif; font-weight: 650; color: #181750; min-width: 0; transform: rotate(-3deg); font-size: clamp(1.25rem, 2.6vw, 2.5rem); }
.art-row { display: flex; align-items: center; gap: .5rem; margin-block: .625rem; }
.art-top, .art-bottom { justify-content: space-between; padding-inline: 1rem; }
.art-top { margin-bottom: 1.25rem; }
.art-spark { color: var(--blue); font-size: 1.6em; line-height: 1; }
.art-dot, .art-square { flex: 0 0 12%; aspect-ratio: 1; background: #3e52f5; }
.art-dot { border-radius: 50%; }
.art-square { border-radius: .125rem; }
.art-pill { display: block; padding: .35em .6em; text-align: center; line-height: 1.25; }
.knowledge { flex: 1; border-radius: 4rem; background: #5158f6; color: #101044; }
.build { flex: 1; background: #70b8f5; border-radius: .2rem; }
.share { flex: 1; background: #93d7d8; border-radius: 3rem; }
.grow { flex: 1; background: #be83f0; border-radius: .2rem; }
.art-bottom { margin-top: 1.25rem; font-size: .7em; }
.values-section { padding-block: 1rem 4rem; }
.values-section > h2 { font-size: 1.625rem; margin: 0 0 .5rem; }
.section-description { margin: .5rem 0 0; color: var(--muted); font-size: 1rem; }
.values-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 3rem; margin-top: 2rem; }
.values-grid article { display: flex; gap: 1rem; align-items: flex-start; }
.value-icon { display: grid; place-items: center; flex-shrink: 0; width: 2rem; height: 2rem; border-radius: 50%; background: var(--ink); color: white; font-size: .875rem; }
.values-grid h3 { margin: .25rem 0 .75rem; font-size: 1.125rem; }
.values-grid p { margin: 0; color: var(--muted); font-size: .9375rem; line-height: 1.8; }
.section { padding-block: 3rem; }
.section + .section { border: 0; padding-top: 3rem; }
.section-heading { align-items: center; margin-bottom: 2rem; }
.section-heading h2 { font-size: 2rem; }
.more-link { padding: .5rem 1rem; background: var(--surface); border-radius: .5rem; text-decoration: none; }
.post-grid { gap: 3.5rem 2rem; }
.card-image { border-radius: .5rem; margin-bottom: 1.25rem; }
.card-image img { aspect-ratio: 16 / 9; transition: transform .25s ease; }
.story-card:hover .card-image img { transform: scale(1.035); }
.card-cover { position: relative; aspect-ratio: 16 / 9; background: #e3f0fc; color: #194b78; text-decoration: none; padding: 1.25rem; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; }
.cover-brand { visibility: hidden; font-size: .6875rem; font-weight: 750; letter-spacing: -.03em; z-index: 1; }
.cover-symbol { align-self: center; font-size: 4rem; line-height: 1; font-weight: 700; z-index: 1; }
.cover-label { font-size: .875rem; font-weight: 650; z-index: 1; }
.story-card:nth-child(3n+2) .card-cover { background: #cfe5fa; color: #194b78; }
.story-card:nth-child(3n) .card-cover { background: #183b5b; color: #cfe5fa; }
.news-section .card-cover, .tag-news .card-cover { background: #edf5fc; color: #194b78; }
.card-meta .eyebrow { font-size: .875rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--accent); }
.card-meta time { color: var(--muted); }
.card-title { font-size: 1.25rem; font-weight: 700; line-height: 1.4; letter-spacing: -.015em; text-wrap: balance; margin-block: .5rem 0; }
.card-excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: .9375rem; color: #737e8e; line-height: 1.4; margin-block: .5rem 0; }
.card-byline { font-size: .875rem; color: #737e8e; line-height: 1.5; margin-block: .5rem 0; }
.card-byline a { text-decoration: none; }
.featured-strip { display: flex; justify-content: space-between; align-items: center; gap: 2rem; background: var(--blue-soft); padding: 2rem 2.5rem; border-radius: .75rem; margin-block: 1rem; }
.featured-strip h2 { font-size: 1.5rem; margin: .5rem 0 0; max-width: 40rem; line-height: 1.4; }
.featured-strip h2 a { text-decoration: none; }
.feature-spark { font-size: 4.5rem; line-height: 1; color: var(--accent); }
.page-heading { text-align: center; border: 0; padding-block: 3rem; margin-bottom: 0; }
.page-heading h1 { font-size: 3rem; margin-block: 0 1rem; }
.page-heading .lede { margin-inline: auto; }
.topics { margin-bottom: 2rem; }
.topics h2 { margin: 0 0 1rem; font-size: 1.5rem; }
.topics ul { list-style: none; display: flex; flex-wrap: wrap; gap: .75rem; padding: 0; margin: 0; }
.topics a { display: block; border: 1px solid var(--accent); border-radius: 2rem; padding: .375rem 1rem; color: var(--accent); text-decoration: none; font-size: .9375rem; }
.topics a:hover { background: var(--blue-soft); }
.article { padding-top: 3rem; }
.article-header { max-width: 52rem; text-align: center; margin-bottom: 3.5rem; }
.article-header h1 { font-size: clamp(2rem, 3vw, 2.75rem); line-height: 1.4; margin-block: 1rem 1.5rem; }
.article-header .lede { margin-inline: auto; font-size: 1rem; }
.article-meta { justify-content: center; margin-block: 1.25rem 0; }
.author-bios { margin-top: 3rem; padding-block: 1rem; padding-left: 8px; border-top: 1px solid var(--line); }
.author-bio-card { display: flex; align-items: flex-start; gap: .75rem; }
.author-bio-card + .author-bio-card { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #f2f4f7; }
.author-bio-avatar { flex: 0 0 3.5rem; width: 3.5rem; height: 3.5rem; border-radius: 50%; object-fit: cover; }
.author-bio-info { min-width: 0; flex: 1; }
.author-bio-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: .375rem .5rem; }
.author-bio-heading a { font-size: .875rem; font-weight: 600; overflow-wrap: anywhere; text-decoration: none; }
.author-bio-team { font-size: .8125rem; color: var(--muted); overflow-wrap: anywhere; }
.author-bio-text { margin: .25rem 0 0; font-size: .875rem; line-height: 1.6; color: var(--muted); word-break: keep-all; overflow-wrap: anywhere; }
.author-bio-team[hidden], .author-bio-text[hidden] { display: none; }
.article-news .article-header { border: 0; padding-left: 0; }
.article-layout { display: grid; grid-template-columns: 10rem minmax(0, 1fr) 10rem; align-items: start; gap: 2.5rem; margin-inline: auto; }
.article-main { min-width: 0; grid-column: 2; }
.toc-rail { grid-column: 3; }
.author-rail, .toc-rail { position: sticky; top: 2rem; font-size: .8125rem; color: var(--muted); }
.toc-rail { top: 6rem; }
.author-profile + .author-profile { margin-top: 2rem; }
.author-rail .avatar { width: 4rem; height: 4rem; margin-bottom: 1rem; }
.author-name { display: block; font-size: 1rem; font-weight: 700; color: var(--ink); text-decoration: none; }
.author-more { display: inline-block; margin-top: .5rem; padding: .375rem .75rem; background: var(--surface); border-radius: .25rem; text-decoration: none; }
.toc-rail > p { font-weight: 600; color: var(--ink); margin-top: 0; }
.toc-rail.is-stuck > p { display: none; }
.article-toc ul { list-style: none; margin: 0; padding: 0; }
.article-toc a { display: block; padding: .5rem .5rem; text-decoration: none; line-height: 1.5; letter-spacing: -.015em; word-break: keep-all; overflow-wrap: anywhere; }
.article-toc a:hover { color: var(--accent); }
.article-toc a[aria-current="location"] { background: var(--surface); border-radius: .5rem; color: var(--ink); font-weight: 600; }
.toc-subheading { margin-left: .75rem; }
.gh-content { font-size: 1.0625rem; line-height: 1.8; word-break: keep-all; }
.gh-content h2, .gh-content h3 { scroll-margin-top: 6rem; }
.gh-content h2 { margin-block: 2.5rem 1rem; line-height: 1.4; }
.gh-content h3 { margin-block: 2rem .75rem; line-height: 1.4; }
.gh-content p { margin-block: 0 1.25rem; }
.gh-content th, .gh-content td { word-break: keep-all; }
/* Syntax colors are scoped to code; editorial prose keeps its own palette. */
.gh-content pre { background: #f6f8fb; border: 1px solid var(--line); border-radius: .5rem; color: #243247; }
.gh-content pre code { background: transparent; padding: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: inherit; }
.gh-content code .token.comment, .gh-content code .token.prolog, .gh-content code .token.doctype { color: #667085; }
.gh-content code .token.keyword, .gh-content code .token.atrule { color: #6e40aa; }
.gh-content code .token.string, .gh-content code .token.attr-value { color: #176b48; }
.gh-content code .token.function, .gh-content code .token.class-name { color: #245eaa; }
.gh-content code .token.number, .gh-content code .token.boolean, .gh-content code .token.constant { color: #99551b; }
.gh-content code .token.tag, .gh-content code .token.property, .gh-content code .token.attr-name { color: #965035; }
.gh-content code .token.punctuation, .gh-content code .token.operator { color: #475569; }
.gh-content > :first-child { margin-top: 0; }
.article-footer > a:not(.back-link) { border-radius: 2rem; color: var(--accent); border-color: var(--accent); }
.article-footer .back-link { display: flex; align-items: center; justify-content: center; width: fit-content; max-width: 100%; min-height: 44px; margin: 2rem auto 0; padding: .75rem 1.25rem; border-radius: .375rem; background: var(--surface); color: var(--ink); text-align: center; text-decoration: none; }
.article-footer .back-link:hover { background: var(--line); }
.article-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.article-actions .back-link { display: inline-flex; gap: .5rem; margin: 0; padding: .5rem; min-height: 44px; background: transparent; color: var(--muted); font: inherit; }
.article-share { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .5rem; border: 0; background: transparent; color: var(--muted); font: inherit; cursor: pointer; }
.article-actions .back-link svg, .article-share svg { flex: 0 0 20px; width: 20px; height: 20px; color: #94a3b8; }
.article-actions .back-link:hover { background: var(--surface); color: var(--ink); }
.article-share:hover { color: var(--ink); }
.share-status { flex-basis: 100%; margin: 0; text-align: right; color: var(--muted); }
.share-status:empty { display: none; }
.share-url { width: 100%; min-width: 0; padding: .75rem; font: inherit; }
.author-heading .avatar { margin-inline: auto; }
.site-footer { display: grid; grid-template-columns: minmax(0, 1fr) 10rem 11rem; gap: 3rem; padding-block: 3rem 2rem; margin-top: 6rem; font-size: .875rem; }
.footer-intro p { margin-top: 1rem; color: var(--muted); }
.site-footer .footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; }
.footer-column strong { margin-bottom: .5rem; font-size: 1rem; }
.footer-column a { text-decoration: none; color: var(--muted); }
.footer-column a:hover { color: var(--accent); }
.footer-copyright { grid-column: 1 / -1; margin: 0; font-size: .75rem; color: var(--muted); }
.error-links { justify-content: center; }
/* Reference-led editorial details: clear archives and a quiet reading column. */
.content-tabs { display: flex; flex-wrap: wrap; gap: 2rem; border-bottom: 1px solid var(--line); margin-bottom: 2rem; }
.content-tabs a { display: flex; align-items: baseline; gap: .5rem; padding-block: .75rem; text-decoration: none; border-bottom: 2px solid transparent; font-weight: 600; }
.content-tabs a[aria-current] { color: var(--accent); border-color: currentColor; }
.content-tabs span { font-size: .8125rem; font-weight: 400; color: var(--muted); }
.post-grid .story-card { display: flex; flex-direction: column; }
.post-grid .card-byline { margin-top: .5rem; padding-top: 0; }
.post-grid .card-excerpt { margin-bottom: 0; }
.post-grid .card-image { flex-shrink: 0; }
.article-main { max-width: 46rem; width: 100%; margin-inline: auto; }
.gh-content a { color: var(--accent); text-decoration-thickness: 1px; }
.gh-content blockquote { margin-block: 2rem; padding: 1rem 1.5rem; background: var(--surface); }
.gh-content blockquote p:last-child { margin-bottom: 0; }
.read-next { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.read-next > h2 { font-size: 1.375rem; margin: 0 0 1.25rem; }
.read-next-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.read-next-link { display: flex; flex-direction: column; align-items: flex-start; background: var(--surface); border-radius: .5rem; padding: 1.25rem; text-decoration: none; }
.read-next-link time { font-size: .75rem; color: var(--muted); }
.read-next-link h3 { font-size: 1rem; line-height: 1.5; margin-block: .75rem 1.25rem; text-wrap: balance; }
.read-next-link > span { margin-top: auto; font-size: .8125rem; color: var(--accent); }
.footer-surface { background: #18181b; color: #e4e4e7; margin-top: 6rem; --muted: #b4b4bd; --accent: #fff; --focus: #93c5fd; }
.footer-surface .site-footer { margin-top: 0; border: 0; align-items: start; }
.footer-surface .footer-logo { width: 80px; height: auto; max-height: none; }
@media (max-width: 1100px) {
  .site-header { gap: 1.5rem; }
  .site-header .nav { gap: 1.5rem; }
  .home-hero { gap: 2rem; }
  .values-grid { gap: 1.5rem; }
  .article-layout { grid-template-columns: 8rem minmax(0, 1fr) 8rem; gap: 1.5rem; }
  .article-main { grid-column: 2; }
  .toc-rail { grid-column: 3; }
  .author-rail { grid-column: 1 / -1; position: static; display: flex; gap: 2rem; }
  .author-profile { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
  .author-profile p { flex-basis: 100%; margin: 0; }
  .author-rail .avatar { width: 2.5rem; height: 2.5rem; margin: 0; }
  .author-more { margin: 0; }
}
@media (max-width: 700px) {
  .site-header { column-gap: 1rem; }
  .company-link { font-size: .75rem; }
  .content-tabs { gap: 1.5rem; }
  .content-tabs span { display: none; }
  .read-next-grid { grid-template-columns: 1fr; }
  .shell { width: calc(100% - 2.5rem); }
  .home-hero { grid-template-columns: 1fr; padding-block: 3rem; gap: 3rem; }
  .hero-copy h1 { font-size: clamp(2rem, 8.5vw, 2.75rem); max-width: 10em; }
  .page-heading { padding-block: 2rem; }
  .article { padding-top: 2rem; }
  .section, .section + .section { padding-block: 2rem; }
  .hero-art { font-size: clamp(1.25rem, 6vw, 2.5rem); width: min(100% - 1rem, 30rem); margin-inline: auto; }
  .values-grid { grid-template-columns: 1fr; gap: 1.75rem; }
  .values-section { padding-block: 1rem 2rem; }
  .section-heading h2 { font-size: 1.75rem; }
  .section-description { font-size: .9375rem; }
  .page-heading h1 { font-size: 2.5rem; }
  .article-layout { display: flex; flex-direction: column; gap: 2rem; }
  .article-main, .author-rail, .toc-rail { width: 100%; }
  .toc-rail { order: -1; position: static; padding: 1rem; background: var(--surface); border-radius: .5rem; }
  .author-rail { order: 2; border-top: 1px solid var(--line); padding-top: 1.5rem; }
  .article-header { margin-bottom: 2rem; }
  .featured-strip { padding: 1.5rem; }
  .feature-spark { font-size: 3rem; }
  .site-footer { grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 3rem; }
  .footer-surface { margin-top: 3rem; }
  .footer-intro { grid-column: 1 / -1; }
}
@media (max-width: 600px) { .site-header > nav { order: 3; flex-basis: 100%; }.site-header .nav { gap: 1.5rem; }.site-header { gap: .75rem; }.brand { font-size: 1.375rem; }.search-button { padding-inline: 1.25rem; }.card-cover { padding: 1.5rem; }.cover-symbol { font-size: 4.5rem; } }
