/* Personal pages only: loaded by index.qmd and about.qmd, never _quarto.yml.
   Every selector is additionally gated by the cj-personal body class. */
body.cj-personal {
  --cj-ink:#172d29; --cj-muted:#556760; --cj-green:#215e4e;
  --cj-paper:#faf9f5; --cj-line:#d5dfd8; --cj-soft:#edf2ec; --cj-gold:#87663d;
  --bs-body-color:var(--cj-ink); --bs-body-bg:var(--cj-paper);
  background:var(--cj-paper); color:var(--cj-ink);
  font-family:system-ui,-apple-system,"Segoe UI","Noto Sans KR","Malgun Gothic",sans-serif;
  color-scheme:light;
}
body.cj-personal #quarto-content { display:block; padding-top:0; }
body.cj-personal #quarto-document-content { display:block; width:100%; max-width:none; margin:0; padding:0; }
body.cj-personal #title-block-header { display:none; }
body.cj-personal #quarto-document-content .cj-page {
  display:block; width:100%; max-width:1120px; margin:0 auto; padding:clamp(32px,5vw,72px) clamp(20px,4vw,48px) 24px;
  color:var(--cj-ink); font-size:16px; line-height:1.85; overflow-wrap:anywhere;
}
body.cj-personal #quarto-header .navbar {
  --bs-navbar-color:var(--cj-muted); --bs-navbar-hover-color:var(--cj-green);
  --bs-navbar-active-color:var(--cj-green); --bs-navbar-brand-color:var(--cj-ink);
  --bs-navbar-brand-hover-color:var(--cj-green); --bs-navbar-toggler-border-color:var(--cj-line);
  background:var(--cj-paper) !important; color:var(--cj-ink);
  border-bottom:1px solid var(--cj-line); box-shadow:none;
}
body.cj-personal #quarto-header .navbar-container { max-width:1180px; margin:auto; }
body.cj-personal #quarto-header .navbar-brand { color:var(--cj-ink); font-weight:650; letter-spacing:-.03em; }
body.cj-personal #quarto-header .nav-link { color:var(--cj-muted); font-size:14px; }
body.cj-personal #quarto-header .nav-link:hover,
body.cj-personal #quarto-header .nav-link.active { color:var(--cj-green); }
body.cj-personal #quarto-header .dropdown-menu {
  --bs-dropdown-bg:var(--cj-paper); --bs-dropdown-color:var(--cj-ink);
  --bs-dropdown-link-color:var(--cj-ink); --bs-dropdown-link-hover-bg:var(--cj-soft);
  --bs-dropdown-link-hover-color:var(--cj-green); --bs-dropdown-link-active-bg:var(--cj-green);
  --bs-dropdown-link-active-color:#fff; border-color:var(--cj-line);
}
body.cj-personal #quarto-header .navbar-toggler-icon {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23215e4e' stroke-linecap='round' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
body.cj-personal #quarto-header #quarto-search { color:var(--cj-green); }
body.cj-personal #quarto-header #quarto-search .aa-SubmitIcon { color:var(--cj-green); }
body.cj-personal .nav-footer { background:var(--cj-paper); color:var(--cj-muted); border-top:1px solid var(--cj-line); font-size:12px; }
body.cj-personal .nav-footer a { color:var(--cj-green); }
body.cj-personal a:focus-visible,
body.cj-personal button:focus-visible,
body.cj-personal summary:focus-visible { outline:3px solid var(--cj-gold); outline-offset:4px; }
body.cj-personal #quarto-document-content .cj-page * { box-sizing:border-box; }
body.cj-personal #quarto-document-content .cj-page a { color:var(--cj-green); text-underline-offset:4px; }
body.cj-personal #quarto-document-content .cj-page a:hover { color:#132f25; }
body.cj-personal #quarto-document-content .cj-page a:focus-visible, body.cj-personal #quarto-document-content .cj-page summary:focus-visible { outline:3px solid #927044; outline-offset:4px; border-radius:3px; }
body.cj-personal #quarto-document-content .cj-page h1,body.cj-personal #quarto-document-content .cj-page h2,body.cj-personal #quarto-document-content .cj-page h3,body.cj-personal #quarto-document-content .cj-page h4,body.cj-personal #quarto-document-content .cj-page h5 { color:var(--cj-ink); line-height:1.35; border:0; }
body.cj-personal #quarto-document-content .cj-page h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(43px,7vw,78px); letter-spacing:-.065em; font-weight:400; margin:.15em 0 .2em; }
body.cj-personal #quarto-document-content .cj-page h1 span { display:block; font-family:system-ui,"Malgun Gothic",sans-serif; font-size:22px; font-weight:500; letter-spacing:.12em; margin-top:12px; }
body.cj-personal #quarto-document-content .cj-page h2 { font-size:clamp(25px,3vw,32px); letter-spacing:-.025em; margin:2.6em 0 .85em; padding-top:24px; border-top:1px solid var(--cj-line); scroll-margin-top:90px; }
body.cj-personal #quarto-document-content .cj-page h3 { font-size:20px; margin:1.5em 0 .65em; }
body.cj-personal #quarto-document-content .cj-page h4 { font-size:18px; margin:1.5em 0 .6em; }
body.cj-personal #quarto-document-content .cj-page p { margin:0 0 1em; }
body.cj-personal #quarto-document-content .cj-page .cj-kicker { font-size:11px; color:var(--cj-green); text-transform:uppercase; letter-spacing:.2em; font-weight:750; margin:0 0 1.6em; }
body.cj-personal #quarto-document-content .cj-page .cj-hero { display:grid; grid-template-columns:1.6fr 1fr; gap:40px; align-items:center; padding-bottom:30px; }
body.cj-personal #quarto-document-content .cj-page .cj-tagline { font-size:clamp(21px,2.4vw,28px); font-weight:500; line-height:1.6; letter-spacing:-.045em; margin:25px 0 16px; max-width:680px; }
body.cj-personal #quarto-document-content .cj-page .cj-intro { max-width:660px; color:var(--cj-muted); font-size:16px; }
body.cj-personal #quarto-document-content .cj-page .cj-profile-note { padding:25px 0 25px 30px; border-left:1px solid var(--cj-line); font-size:14px; }
body.cj-personal #quarto-document-content .cj-page .cj-profile-note strong { font-size:18px; }
body.cj-personal #quarto-document-content .cj-page .cj-profile-note p { margin-bottom:18px; }
body.cj-personal #quarto-document-content .cj-page .cj-links { display:flex; flex-wrap:wrap; gap:9px; margin-top:23px; }
body.cj-personal #quarto-document-content .cj-page .cj-links a { display:inline-block; padding:7px 14px; border:1px solid var(--cj-line); border-radius:4px; font-size:13px; font-weight:650; text-decoration:none; background:#fff; }
body.cj-personal #quarto-document-content .cj-page .cj-links a:first-child { background:var(--cj-green); border-color:var(--cj-green); color:#fff; }
body.cj-personal #quarto-document-content .cj-page .cj-nav { display:flex; flex-wrap:wrap; gap:8px 24px; border-top:1px solid var(--cj-line); border-bottom:1px solid var(--cj-line); padding:15px 0; margin:0 0 32px; font-size:13px; }
body.cj-personal #quarto-document-content .cj-page .cj-nav a { text-decoration:none; font-weight:600; }
body.cj-personal #quarto-document-content .cj-page .cj-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
body.cj-personal #quarto-document-content .cj-page .cj-card { background:var(--cj-soft); padding:25px; border-radius:5px; min-width:0; }
body.cj-personal #quarto-document-content .cj-page .cj-card h3 { margin:8px 0 15px; font-size:21px; }
body.cj-personal #quarto-document-content .cj-page .cj-card .cj-num { font-family:Georgia,serif; color:var(--cj-gold); font-size:28px; }
body.cj-personal #quarto-document-content .cj-page .cj-card p { font-size:14px; margin-bottom:10px; }
body.cj-personal #quarto-document-content .cj-page .cj-card p:last-child { margin-bottom:0; }
body.cj-personal #quarto-document-content .cj-page .cj-meta { font-size:12px; color:var(--cj-muted); }
body.cj-personal #quarto-document-content .cj-page .cj-methods { font-size:13px; color:var(--cj-muted); margin:18px 0 0; }
body.cj-personal #quarto-document-content .cj-page .cj-news { border-top:1px solid var(--cj-line); }
body.cj-personal #quarto-document-content .cj-page .cj-news-row { display:grid; grid-template-columns:100px 1fr; gap:25px; padding:20px 0; border-bottom:1px solid var(--cj-line); }
body.cj-personal #quarto-document-content .cj-page .cj-date { font-size:13px; color:var(--cj-muted); font-variant-numeric:tabular-nums; padding-top:3px; }
body.cj-personal #quarto-document-content .cj-page .cj-news-row h3 { font-size:18px; margin:0 0 7px; }
body.cj-personal #quarto-document-content .cj-page .cj-news-row p { font-size:14px; margin-bottom:0; }
body.cj-personal #quarto-document-content .cj-page .cj-badge { font-size:11px; color:var(--cj-green); background:#e5eee5; padding:3px 7px; border-radius:3px; margin-left:7px; white-space:nowrap; font-weight:600; vertical-align:middle; }
body.cj-personal #quarto-document-content .cj-page .cj-badge.future { color:#725520; background:#f4ecd9; }
body.cj-personal #quarto-document-content .cj-page .cj-awards { list-style:none; padding:0; margin:0; }
body.cj-personal #quarto-document-content .cj-page .cj-awards li { display:grid; grid-template-columns:120px 1fr; gap:25px; padding:17px 0; border-bottom:1px solid var(--cj-line); }
body.cj-personal #quarto-document-content .cj-page .cj-awards time { color:var(--cj-gold); font-size:14px; font-weight:700; }
body.cj-personal #quarto-document-content .cj-page .cj-awards strong { font-weight:650; }
body.cj-personal #quarto-document-content .cj-page .cj-awards small { display:block; font-size:13px; color:var(--cj-muted); margin-top:3px; }
body.cj-personal #quarto-document-content .cj-page .cj-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
body.cj-personal #quarto-document-content .cj-page .cj-project { border:1px solid var(--cj-line); border-radius:5px; padding:25px; }
body.cj-personal #quarto-document-content .cj-page .cj-project h3 { margin:5px 0 12px; font-size:20px; }
body.cj-personal #quarto-document-content .cj-page .cj-project p { font-size:14px; }
body.cj-personal #quarto-document-content .cj-page details { margin:16px 0; border:1px solid var(--cj-line); border-radius:5px; padding:0 22px; background:#fff; }
body.cj-personal #quarto-document-content .cj-page summary { cursor:pointer; padding:17px 0; font-size:14px; font-weight:650; color:var(--cj-green); }
body.cj-personal #quarto-document-content .cj-page details[open] { padding-bottom:18px; }
body.cj-personal #quarto-document-content .cj-page details[open]>summary { border-bottom:1px solid var(--cj-line); margin-bottom:20px; }
body.cj-personal #quarto-document-content .cj-page details li { margin-bottom:12px; font-size:14px; }
body.cj-personal #quarto-document-content .cj-page details li>p { margin-bottom:8px; }
body.cj-personal #quarto-document-content .cj-page ul { padding-left:1.2em; }
body.cj-personal #quarto-document-content .cj-page ul.cj-awards { padding-left:0; }
body.cj-personal #quarto-document-content .cj-page .cj-compact li { margin-bottom:16px; }
body.cj-personal #quarto-document-content .cj-page .cj-compact { font-size:14px; }
body.cj-personal #quarto-document-content .cj-page .cj-footer { margin:45px 0 0; padding-top:22px; border-top:1px solid var(--cj-line); color:var(--cj-muted); font-size:12px; }
body.cj-personal #quarto-document-content .cj-page iframe { width:100%; border:1px solid var(--cj-line); border-radius:4px; }
body.cj-personal #quarto-document-content .cj-page .cj-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
@media(max-width:760px) { body.cj-personal #quarto-document-content .cj-page { padding:25px 20px; } body.cj-personal #quarto-document-content .cj-page .cj-hero,body.cj-personal #quarto-document-content .cj-page .cj-two { grid-template-columns:1fr; gap:15px; } body.cj-personal #quarto-document-content .cj-page .cj-profile-note { border-left:0; border-top:1px solid var(--cj-line); padding:20px 0 0; } body.cj-personal #quarto-document-content .cj-page .cj-grid { grid-template-columns:1fr; gap:12px; } body.cj-personal #quarto-document-content .cj-page .cj-card { padding:22px; } body.cj-personal #quarto-document-content .cj-page .cj-news-row { grid-template-columns:75px 1fr; gap:12px; } body.cj-personal #quarto-document-content .cj-page .cj-awards li { grid-template-columns:78px 1fr; gap:13px; } body.cj-personal #quarto-document-content .cj-page h2 { margin-top:2em; } }
@media print { body.cj-personal #quarto-document-content .cj-page { max-width:none; padding:0; font-size:10pt; background:#fff; } body.cj-personal #quarto-document-content .cj-page .cj-nav,body.cj-personal #quarto-document-content .cj-page .cj-links { display:none; } body.cj-personal #quarto-document-content .cj-page h2 { break-after:avoid; } body.cj-personal #quarto-document-content .cj-page .cj-card,body.cj-personal #quarto-document-content .cj-page .cj-project,body.cj-personal #quarto-document-content .cj-page .cj-news-row { break-inside:avoid; } }
/* Shared editorial rhythm */
body.cj-personal #quarto-document-content .cj-page h1 { letter-spacing:-.055em; font-size:clamp(46px,6.4vw,78px); }
body.cj-personal #quarto-document-content .cj-page h1 span { letter-spacing:.03em; font-size:18px; color:var(--cj-muted); }
body.cj-personal #quarto-document-content .cj-page h2 { font-weight:600; }
body.cj-personal #quarto-document-content .cj-page .cj-tagline { letter-spacing:-.035em; font-size:clamp(22px,2.2vw,27px); line-height:1.6; }
body.cj-personal #quarto-document-content .cj-page .cj-intro { font-size:16px; line-height:1.8; }
body.cj-personal #quarto-document-content .cj-page .cj-hero--home { grid-template-columns:minmax(0,1.6fr) minmax(220px,.85fr); gap:56px; align-items:center; padding-bottom:48px; }
body.cj-personal #quarto-document-content .cj-page .cj-hero--about { align-items:start; }
body.cj-personal #quarto-document-content .cj-page .cj-affiliation { margin:22px 0 0; font-size:13px; font-weight:600; color:var(--cj-muted); }
body.cj-personal #quarto-document-content .cj-page .cj-affiliation span { font-size:12px; font-weight:400; }
body.cj-personal #quarto-document-content .cj-page .cj-portrait { margin:0; width:100%; }
body.cj-personal #quarto-document-content .cj-page .cj-portrait img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:50% 44%; border-radius:3px; }
body.cj-personal #quarto-document-content .cj-page .cj-portrait figcaption { font-family:Georgia,"Times New Roman",serif; font-size:13px; font-style:italic; color:var(--cj-muted); margin-top:12px; text-align:right; }
body.cj-personal #quarto-document-content .cj-page .cj-links a { min-height:44px; display:inline-flex; align-items:center; border-radius:3px; padding:8px 16px; }
body.cj-personal #quarto-document-content .cj-page .cj-links a:hover { background:var(--cj-soft); border-color:var(--cj-green); }
body.cj-personal #quarto-document-content .cj-page .cj-links a:first-child:hover { background:#173f34; color:#fff; }
body.cj-personal #quarto-document-content .cj-page .cj-focus { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; border-block:1px solid var(--cj-line); padding:19px 0; margin:0 0 58px; }
body.cj-personal #quarto-document-content .cj-page .cj-focus a { display:flex; align-items:baseline; gap:11px; font-size:13px; text-decoration:none; font-weight:600; padding:7px 0; }
body.cj-personal #quarto-document-content .cj-page .cj-focus a:hover { text-decoration:underline; }
body.cj-personal #quarto-document-content .cj-page .cj-focus span { font-family:Georgia,serif; color:var(--cj-gold); font-size:18px; font-weight:400; }
body.cj-personal #quarto-document-content .cj-page .cj-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin:0 0 22px; }
body.cj-personal #quarto-document-content .cj-page .cj-section-heading h2 { border:0; padding:0; margin:0; font-family:Georgia,"Times New Roman",serif; font-size:36px; font-weight:400; }
body.cj-personal #quarto-document-content .cj-page .cj-section-heading h2 span { display:inline-block; font-family:system-ui,"Malgun Gothic",sans-serif; color:var(--cj-muted); font-size:13px; margin-left:15px; font-weight:400; }
body.cj-personal #quarto-document-content .cj-page .cj-text-link { font-size:13px; font-weight:600; text-decoration:none; padding:10px 0; display:inline-block; }
body.cj-personal #quarto-document-content .cj-page .cj-text-link:hover { text-decoration:underline; }
body.cj-personal #quarto-document-content .cj-page .cj-news-row { padding:22px 0; }
body.cj-personal #quarto-document-content .cj-page .cj-news-row h3 { line-height:1.65; font-size:17px; font-weight:600; }
body.cj-personal #quarto-document-content .cj-page .cj-badge { display:inline-block; line-height:1.6; }
body.cj-personal #quarto-document-content .cj-page .cj-home-paths { display:grid; grid-template-columns:1fr 1fr; gap:48px; padding:42px 32px 32px; margin-top:56px; background:var(--cj-soft); }
body.cj-personal #quarto-document-content .cj-page .cj-home-paths h2 { font-family:Georgia,"Times New Roman",serif; font-size:27px; font-weight:400; border:0; padding:0; margin:0 0 16px; letter-spacing:-.025em; }
body.cj-personal #quarto-document-content .cj-page .cj-home-paths p:not(.cj-kicker) { font-size:14px; }
body.cj-personal #quarto-document-content .cj-page .cj-personal-note { display:grid; grid-template-columns:165px 1fr; gap:32px; padding-top:40px; margin-top:10px; }
body.cj-personal #quarto-document-content .cj-page .cj-personal-note p { font-size:14px; color:var(--cj-muted); }
body.cj-personal #quarto-document-content .cj-page .cj-personal-note .cj-kicker { font-size:11px; padding-top:4px; }
body.cj-personal #quarto-document-content .cj-page .cj-socials { display:flex; flex-wrap:wrap; gap:8px 25px; margin-bottom:12px; }
body.cj-personal #quarto-document-content .cj-page .cj-socials a { padding:8px 0; text-decoration:none; font-size:12px; }
body.cj-personal #quarto-document-content .cj-page .cj-footer p { margin:0; }
body.cj-personal #quarto-document-content .cj-page .cj-card { border-radius:3px; }
body.cj-personal #quarto-document-content .cj-page .cj-card h3 { font-family:Georgia,"Times New Roman",serif; font-weight:400; font-size:25px; }
body.cj-personal #quarto-document-content .cj-page .cj-nav { gap:4px 22px; padding:10px 0; }
body.cj-personal #quarto-document-content .cj-page .cj-nav a { padding:8px 0; }
body.cj-personal #quarto-document-content .cj-page details { border-radius:3px; background:transparent; }
body.cj-personal #quarto-document-content .cj-page details[open] { background:#fff; }
@media(max-width:760px) {
  body.cj-personal #quarto-document-content .cj-page .cj-hero--home { grid-template-columns:1fr; gap:28px; }
  body.cj-personal #quarto-document-content .cj-page .cj-portrait { width:min(100%,290px); margin:0 auto; }
  body.cj-personal #quarto-document-content .cj-page .cj-focus { grid-template-columns:1fr; gap:0; margin-bottom:38px; }
  body.cj-personal #quarto-document-content .cj-page .cj-focus a { padding:8px 0; }
  body.cj-personal #quarto-document-content .cj-page .cj-home-paths { grid-template-columns:1fr; gap:32px; padding:28px 22px; margin-top:36px; }
  body.cj-personal #quarto-document-content .cj-page .cj-personal-note { grid-template-columns:1fr; gap:0; padding-top:30px; }
  body.cj-personal #quarto-document-content .cj-page .cj-section-heading { flex-wrap:wrap; gap:0 16px; margin-bottom:15px; }
  body.cj-personal #quarto-document-content .cj-page .cj-section-heading h2 { font-size:31px; }
  body.cj-personal #quarto-document-content .cj-page .cj-news-row { grid-template-columns:1fr; gap:4px; }
  body.cj-personal #quarto-document-content .cj-page .cj-awards li { grid-template-columns:75px 1fr; }
  body.cj-personal #quarto-document-content .cj-page .cj-badge { margin:4px 0 0 4px; }
}
@media(prefers-reduced-motion:reduce) {
  body.cj-personal *, body.cj-personal *::before, body.cj-personal *::after { animation:none !important; transition:none !important; }
}
@media print {
  body.cj-personal { background:#fff; }
  body.cj-personal #quarto-document-content .cj-page .cj-portrait { max-width:180px; }
  body.cj-personal #quarto-document-content .cj-page .cj-focus { display:none; }
}

/* Quarto assigns named grid lines to .page-columns children and treats
   <aside> as margin content. These personal components own their grid. */
body.cj-personal #quarto-document-content .cj-page .cj-hero > *,
body.cj-personal #quarto-document-content .cj-page .cj-grid > *,
body.cj-personal #quarto-document-content .cj-page .cj-two > *,
body.cj-personal #quarto-document-content .cj-page .cj-home-paths > *,
body.cj-personal #quarto-document-content .cj-page .cj-personal-note > * {
  grid-column:auto !important; grid-row:auto; min-width:0;
}
