:root{--ink: #12120e;--ink-soft: #2a2a24;--ink-mute: #4d4d45;--ink-faint: #55554d;--paper: #eceae4;--card: #fdfdfc;--card-warm: #f2efe6;--line: #dcdcd6;--line-soft: #e4e4de;--line-frame: #c9c9c4;--line-dark: #45453d;--on-dark: #f4f3ee;--on-dark-mute: #a4a49a;--meta: #8a8a80;--meta-soft: #6f6f66;--gold: oklch(.87 .195 93);--gold-dim: oklch(.78 .17 90);--hue-tech-note: 40;--chroma-tech-note: .11;--hue-paper: 255;--chroma-paper: .11;--hue-patent: 150;--chroma-patent: .1;--hue-issue: 315;--chroma-issue: .12;--font-serif: "Noto Serif KR", serif;--font-sans: "IBM Plex Sans KR", system-ui, sans-serif;--font-mono: "IBM Plex Mono", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);font-family:var(--font-sans);color:var(--ink)}a{color:inherit;text-decoration:none}a:hover{color:#000}input::placeholder{color:var(--on-dark-mute)}nav[data-nav]::-webkit-scrollbar,[data-scroll-x]::-webkit-scrollbar{display:none;height:0}nav[data-nav],[data-scroll-x]{scrollbar-width:none}.frame{width:min(1180px,100%);margin:0 auto;background:var(--paper);border-left:1px solid var(--line-frame);border-right:1px solid var(--line-frame);color:var(--ink);overflow-x:hidden}.site-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:nowrap;padding:8px clamp(12px,3vw,24px);min-height:56px;background:var(--ink);color:var(--on-dark);position:sticky;top:0;z-index:5}.site-header .wordmark{display:flex;align-items:center;gap:9px;font-family:var(--font-serif);font-size:clamp(22px,5.4vw,30px);font-weight:700;letter-spacing:-.025em;white-space:nowrap;color:var(--gold);flex:0 0 auto}.site-header .brand-mark{height:1.5em;width:auto;display:block;flex:0 0 auto}@media (max-width: 420px){.site-header .wordmark{gap:7px}.site-header .brand-mark{height:1.3em}}.site-header nav{display:flex;gap:8px;flex:1 1 auto;min-width:0;overflow-x:auto;font-family:var(--font-mono);font-size:14px;letter-spacing:.04em;white-space:nowrap}.site-header nav a.chip{color:var(--on-dark);padding:5px 10px;flex:0 0 auto}.site-header nav a.chip[aria-current=true]{outline:2px solid var(--on-dark);outline-offset:1px}.site-header nav a.archive-link{color:#c4c4bc;border:1px solid var(--line-dark);padding:4px 9px;flex:0 0 auto}.subscribe-btn{font-size:14.5px;font-weight:600;color:var(--ink);background:var(--on-dark);padding:9px 16px;flex:0 0 auto;border:none;cursor:pointer}.accent-strip{display:flex;height:3px}.accent-strip>span{flex:1}.site-footer{word-break:keep-all;padding:32px 24px 24px;background:var(--ink);color:var(--on-dark-mute);font-size:14px;line-height:1.7}.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover{color:var(--on-dark)}.site-footer .ft-top{display:flex;flex-wrap:wrap;gap:24px 48px;justify-content:space-between}.site-footer .ft-brand{flex:1 1 260px;max-width:420px}.site-footer .brand{font-family:var(--font-serif);font-size:18px;font-weight:700;color:var(--on-dark);letter-spacing:-.02em}.site-footer .blurb{margin:6px 0 0}.site-footer .ft-nav{display:grid;grid-template-columns:repeat(3,auto);gap:0 40px}.site-footer .ft-col{display:flex;flex-direction:column;gap:2px}.site-footer .ft-h{font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--meta-soft);margin-bottom:4px}.site-footer .ft-legal{margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);font-size:12.5px;line-height:1.75;color:var(--meta-soft)}.site-footer .copy{margin-top:6px}.site-footer .nw{white-space:nowrap}@media (max-width: 560px){.site-footer .ft-nav{width:100%;gap:0 16px;grid-template-columns:repeat(3,1fr)}}.newsletter-strip{margin:40px 0 0;max-width:880px;border:1px solid var(--ink);padding:22px 26px;display:flex;flex-wrap:wrap;gap:20px 32px;align-items:center;background:var(--card)}.newsletter-strip form{display:flex;flex:0 1 340px;min-width:0}.newsletter-strip input{flex:1;min-width:0;font-family:var(--font-sans);font-size:14px;padding:11px 12px;border:1.5px solid var(--ink);border-right:none;background:var(--card);outline:none}.newsletter-strip button{font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--card);background:var(--ink);border:1.5px solid var(--ink);padding:11px 18px;cursor:pointer}
