/*
Theme Name: Nocturne
Theme URI: https://example.com/nocturne
Author: Nocturne
Description: 어두운 블루그레이 바탕, 선과 빛으로만 쓰는 보라빛 강조색. 조용하고 촘촘한 다크 블로그 블록 테마.
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
Version: 1.9.0
License: GPL-2.0-or-later
Text Domain: nocturne
*/
body{margin:0;word-break:keep-all;text-wrap:pretty;background:radial-gradient(1200px 720px at 82% -160px,color-mix(in srgb,var(--wp--preset--color--accent-900) 75%,transparent),transparent 60%) no-repeat,var(--wp--preset--color--base)}
::selection{background:color-mix(in srgb,var(--wp--preset--color--accent) 30%,transparent)}
:focus-visible{outline:2px solid var(--wp--preset--color--accent);outline-offset:2px}
.wp-site-blocks{padding-inline:clamp(20px,5vw,72px)}
.nocturne-bar,.nocturne-main,.nocturne-foot{max-width:1200px;margin-inline:auto!important}
body .nocturne-bar>*,body .nocturne-hero>*,body .nocturne-featured>*,body .nocturne-featured-body>*,body .nocturne-layout>*,body .nocturne-row>*,body .nocturne-row-body>*,body .nocturne-aside>*,body .nocturne-foot>*,body .nocturne-head>*{margin-block:0}
/* header */
.nocturne-bar{display:flex;align-items:center;flex-wrap:wrap;gap:16px 22px;padding-block:22px}
.nocturne-bar .wp-block-site-logo img{width:28px;height:auto;border-radius:6px}
.nocturne-bar .wp-block-site-title{margin-right:auto!important;font-size:18px;font-weight:500}
.nocturne-bar .wp-block-site-title a{color:var(--wp--preset--color--contrast);text-decoration:none}
.nocturne-bar .wp-block-navigation{font-size:14px;gap:22px}
.nocturne-bar .wp-block-navigation a{color:var(--wp--preset--color--contrast);text-decoration:none}
.nocturne-bar .wp-block-navigation a:hover,.nocturne-bar .wp-block-navigation .current-menu-item>a{color:var(--wp--preset--color--accent)}
/* hero */
.nocturne-hero{max-width:720px;padding:84px 0 56px}
.nocturne-hero .wp-block-site-title,.nocturne-hero .wp-block-heading,.nocturne-hero .wp-block-query-title{font-size:clamp(40px,5.6vw,72px);line-height:1.1;letter-spacing:-.02em;font-weight:500}
.nocturne-hero .wp-block-site-title a{color:var(--wp--preset--color--contrast);text-decoration:none}
.nocturne-hero .wp-block-site-tagline,.nocturne-hero .wp-block-term-description{margin-top:20px!important;font-size:17px;line-height:28px;max-width:56ch;color:color-mix(in srgb,var(--wp--preset--color--contrast) 78%,transparent)}
/* featured */
.nocturne-featured{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:center;padding:28px 0 56px}
.nocturne-featured:not(:has(.wp-block-post-featured-image)){grid-template-columns:minmax(0,720px)}
.wp-block-post-featured-image{mix-blend-mode:lighten;margin:0}
.wp-block-post-featured-image img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.nocturne-featured .wp-block-post-featured-image{aspect-ratio:4/3;overflow:hidden;border-radius:8px}
.nocturne-kicker{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--wp--preset--color--accent)}
.nocturne-featured-body .nocturne-kicker{margin-bottom:14px!important}
.nocturne-featured .wp-block-post-title{font-size:clamp(26px,2.8vw,36px);line-height:1.2;margin-bottom:14px!important}
.nocturne-featured .wp-block-post-excerpt{margin-bottom:20px!important;font-size:15.5px}
.wp-block-post-title a{color:var(--wp--preset--color--contrast);text-decoration:none}
.wp-block-post-title a:hover{color:var(--wp--preset--color--accent-300)}
.wp-block-post-excerpt__excerpt{margin:0}
.wp-block-post-excerpt__more-text{display:none}
/* rules */
.wp-block-separator,hr{border:0!important;height:1px!important;background:linear-gradient(to right,transparent,var(--wp--preset--color--divider) 48px calc(100% - 48px),transparent)!important;opacity:1;margin:0!important;max-width:none!important;width:100%}
/* list + aside */
.nocturne-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:clamp(32px,5vw,80px);padding:56px 0 84px}
.nocturne-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px 24px;padding:24px 0;background:linear-gradient(to right,transparent,var(--wp--preset--color--neutral-800) 48px calc(100% - 48px),transparent) no-repeat bottom/100% 1px}
.nocturne-row .wp-block-post-date{line-height:28px;font-feature-settings:"tnum" 1}
.nocturne-row .wp-block-post-title{font-size:21px;line-height:28px;margin-bottom:6px!important}
.nocturne-row .wp-block-post-excerpt{font-size:14.5px;line-height:24px;margin-bottom:10px!important}
.wp-block-post-template{margin:0;padding:0;list-style:none}
.wp-block-query-pagination{margin-top:32px!important;gap:8px;font-size:14px}
.wp-block-query-pagination a{text-decoration:none}
.nocturne-aside{display:flex;flex-direction:column;gap:12px}
.nocturne-aside h6{margin-top:28px!important}.nocturne-aside h6:first-child{margin-top:0!important}
.wp-block-categories{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.wp-block-categories a,.wp-block-post-terms a,.wp-block-tag-cloud a{display:inline-flex;font-size:11px!important;line-height:1.4;padding:3px 10px;border-radius:6px;background:var(--wp--preset--color--neutral-800);color:var(--wp--preset--color--neutral-200);text-decoration:none}
.wp-block-post-terms a{background:var(--wp--preset--color--accent-800);color:var(--wp--preset--color--accent-100)}
.wp-block-categories a:hover,.wp-block-post-terms a:hover{background:var(--wp--preset--color--accent-700);color:var(--wp--preset--color--accent-100)}
.wp-block-post-terms.nocturne-kicker a{background:none;padding:0;color:var(--wp--preset--color--accent);font-size:12px!important}
.wp-block-post-terms{display:flex;flex-wrap:wrap;gap:8px}.wp-block-post-terms__separator{display:none}
/* forms + buttons */
input[type=email],input[type=text],input[type=search],input[type=url],textarea{background:var(--wp--preset--color--surface);color:var(--wp--preset--color--contrast);border:1px solid var(--wp--preset--color--divider);border-radius:8px;padding:6px 10px;font:inherit;font-size:14px;min-height:36px}
.wp-block-search__inside-wrapper{gap:8px;border:0!important;padding:0!important}
.wp-element-button,.wp-block-button__link,.wp-block-search__button{background:transparent!important;color:var(--wp--preset--color--accent)!important;border:1px solid var(--wp--preset--color--accent)!important;border-radius:8px;font-size:14px;cursor:pointer}
.wp-element-button:hover,.wp-block-button__link:hover,.wp-block-search__button:hover{background:color-mix(in srgb,var(--wp--preset--color--accent) 12%,transparent)!important}
/* single */
.nocturne-head{max-width:none;margin-inline:auto;padding:56px 0 40px;text-align:center}.nocturne-head .wp-block-post-terms,.nocturne-head .nocturne-meta{justify-content:center}
.nocturne-head .wp-block-post-title{font-size:clamp(34px,4.6vw,56px);line-height:1.15;letter-spacing:-.02em;margin:16px 0 20px!important}
.nocturne-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--wp--preset--color--muted)}
.nocturne-cover{max-height:640px;overflow:hidden;border-radius:8px;margin-inline:auto!important}
.nocturne-prose{max-width:none;margin-inline:auto!important;padding:56px 0 40px;font-size:17px;line-height:30px}
.nocturne-prose>*{max-width:100%}
.nocturne-prose h2{font-size:26px;line-height:34px;margin:48px 0 16px}
.nocturne-prose h3{font-size:21px;margin:36px 0 12px}
.nocturne-prose img{height:auto;border-radius:8px}
.nocturne-prose .wp-block-image,.nocturne-prose figure{mix-blend-mode:lighten}
.nocturne-prose blockquote{margin:40px 0;padding:0 0 0 24px;border-left:1px solid var(--wp--preset--color--accent);font-size:22px;line-height:34px;color:var(--wp--preset--color--accent-200)}
.nocturne-prose pre{background:var(--wp--preset--color--surface);border-radius:8px;padding:20px;font-size:13.5px;line-height:22px;overflow:auto;color:var(--wp--preset--color--neutral-200)}
.nocturne-prose :not(pre)>code{color:var(--wp--preset--color--accent-300);font-size:.9em}
.nocturne-prose table{border-collapse:collapse;width:100%;font-size:14px}.nocturne-prose td,.nocturne-prose th{padding:6px;border-bottom:1px solid var(--wp--preset--color--neutral-800);text-align:left}
.nocturne-tags{max-width:none;margin-inline:auto!important;padding-bottom:40px}
.nocturne-postnav{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:40px 0;font-size:18px}
.nocturne-postnav a{color:var(--wp--preset--color--contrast);text-decoration:none}.nocturne-postnav a:hover{color:var(--wp--preset--color--accent-300)}
.nocturne-comments{max-width:none;margin-inline:auto!important;padding-bottom:84px}
/* footer */
.nocturne-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:28px 0 40px;font-size:13px;color:var(--wp--preset--color--muted)}
.nocturne-foot .wp-block-site-title{font-size:13px;font-weight:400}
.nocturne-foot p{margin:0}
/* toc */
html{scroll-behavior:smooth}
.nocturne-prose h2,.nocturne-prose h3{scroll-margin-top:calc(24px + var(--wp-admin--admin-bar--height,0px))}
.nocturne-body{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(32px,4vw,64px);align-items:start}
.nocturne-toc{position:sticky;top:calc(32px + var(--wp-admin--admin-bar--height,0px));max-height:calc(100vh - 64px);overflow:auto;padding:56px 0 40px;font-size:15px;line-height:22px}
.nocturne-toc-title{margin:0 0 14px;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--wp--preset--color--muted)}
.nocturne-toc ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--wp--preset--color--divider)}
.nocturne-toc a{display:block;padding:7px 0 7px 16px;margin-left:-1px;border-left:1px solid transparent;color:var(--wp--preset--color--muted);text-decoration:none}
.nocturne-toc .lvl-3 a{padding-left:32px;font-size:14px}
.nocturne-toc a:hover{color:var(--wp--preset--color--contrast)}
.nocturne-toc a.is-active{color:var(--wp--preset--color--accent-300);border-left-color:var(--wp--preset--color--accent)}
@media (max-width:1000px){.nocturne-body{grid-template-columns:minmax(0,1fr)}.nocturne-toc{position:static;max-height:none;padding:24px 0 0}}
@media (max-width:880px){.nocturne-layout,.nocturne-featured{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.nocturne-row{grid-template-columns:minmax(0,1fr);gap:4px}}

/* v1.4 — readability fixes */
.wp-block-separator,hr{width:100%!important}
strong,b{font-weight:600}
.nocturne-prose{color:color-mix(in srgb,var(--wp--preset--color--contrast) 88%,transparent)}
.nocturne-prose strong,.nocturne-prose b{color:var(--wp--preset--color--contrast)}
.nocturne-prose li{margin-bottom:6px}
code,kbd,pre,samp{font-family:"JetBrains Mono","D2Coding",Consolas,monospace!important}
.nocturne-prose pre,.nocturne-prose .wp-block-code{background:#0d0e17!important;border:1px solid var(--wp--preset--color--neutral-800)!important;border-radius:8px!important;padding:20px 22px!important;margin:32px 0!important;font-size:13.5px!important;line-height:22px!important;color:#d6d8e6!important;overflow:auto}
.nocturne-prose pre code{background:none!important;padding:0!important;color:inherit!important;font-size:inherit!important}
.nocturne-prose :not(pre)>code{background:var(--wp--preset--color--accent-900);color:var(--wp--preset--color--accent-200);padding:2px 6px;border-radius:4px;font-size:.86em}
.nocturne-prose table,.nocturne-prose .wp-block-table table{border-collapse:collapse;width:100%;font-size:14.5px;line-height:22px;border:0!important}
.nocturne-prose .wp-block-table{margin:32px 0;overflow-x:auto}
.nocturne-prose th,.nocturne-prose td,.nocturne-prose thead{border:0!important}
.nocturne-prose th{text-align:left;font-weight:500;font-size:13px;color:var(--wp--preset--color--muted);background:var(--wp--preset--color--surface);padding:10px 14px}
.nocturne-prose td{padding:12px 14px;border-bottom:1px solid var(--wp--preset--color--neutral-800)!important;vertical-align:top}
.nocturne-prose td code,.nocturne-prose th code{white-space:normal;overflow-wrap:anywhere;word-break:break-all;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.wp-block-search__button{white-space:nowrap;flex-shrink:0;padding:6px 14px}
.wp-block-search__input{min-width:0}
/* v1.5 — row thumbnails */
.nocturne-row:has(.nocturne-thumb){grid-template-columns:96px minmax(0,1fr) 200px}
.nocturne-row .nocturne-thumb{aspect-ratio:4/3;overflow:hidden;border-radius:8px;align-self:center;margin:0!important}
.nocturne-row .nocturne-thumb img{transition:transform .3s ease}
.nocturne-row .nocturne-thumb:hover img{transform:scale(1.04)}
@media (max-width:880px){.nocturne-row:has(.nocturne-thumb){grid-template-columns:96px minmax(0,1fr) 140px}}
@media (max-width:560px){.nocturne-row:has(.nocturne-thumb){grid-template-columns:minmax(0,1fr)}.nocturne-row .nocturne-thumb{order:-1}}
/* v1.6 — tables on mobile */
.nocturne-prose .wp-block-table,.nocturne-prose figure:has(>table){mix-blend-mode:normal;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.nocturne-prose table{table-layout:auto}
.nocturne-prose td,.nocturne-prose th{word-break:keep-all;overflow-wrap:anywhere;min-width:96px}
.nocturne-prose .has-fixed-layout{table-layout:auto!important}
@media (max-width:640px){
.nocturne-prose table,.nocturne-prose tbody,.nocturne-prose tr,.nocturne-prose td{display:block;width:100%}
.nocturne-prose thead{display:none}
.nocturne-prose tr{padding:14px 0;border-bottom:1px solid var(--wp--preset--color--neutral-800)}
.nocturne-prose td{border:0!important;padding:3px 0!important;min-width:0}
.nocturne-prose td[data-label]::before{content:attr(data-label);display:block;font-size:12px;line-height:18px;color:var(--wp--preset--color--muted);margin-bottom:2px}
.nocturne-prose td:first-child{font-weight:500;color:var(--wp--preset--color--contrast);font-size:15.5px}
.nocturne-prose td:first-child::before{display:none}
.nocturne-prose td code{font-size:12.5px}
}
/* v1.7 — warm inline code */
.nocturne-prose :not(pre)>code{background:rgba(255,150,70,.14)!important;color:#ffb27a!important;box-shadow:inset 0 0 0 1px rgba(255,150,70,.22)}
/* v1.8 — TOC on the right */
.nocturne-body{grid-template-columns:minmax(0,1fr) 260px}
.nocturne-toc ol{border-left:1px solid var(--wp--preset--color--divider)}
@media (max-width:1000px){.nocturne-body{grid-template-columns:minmax(0,1fr)}.nocturne-toc{order:-1}}
/* v1.9 — heading bars */
.nocturne-prose h2{position:relative;padding-left:18px;margin:56px 0 18px!important}
.nocturne-prose h2::before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:4px;border-radius:2px;background:linear-gradient(to bottom,#ff9a4d,var(--wp--preset--color--accent))}
.nocturne-prose h3{position:relative;padding-left:14px;margin:40px 0 12px!important}
.nocturne-prose h3::before{content:"";position:absolute;left:0;top:.25em;bottom:.25em;width:2px;border-radius:1px;background:var(--wp--preset--color--accent)}
