:root{--accent-on-light:#9a280f;--accent-on-acid:#26321c}
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",Arial,sans-serif}
.signal-map .eyebrow,.signal-map-card>p:not(.map-card-copy),.editorial-post-grid .card-category,.editorial-empty>span,.article-header:after,.article-signal-strip p span,.article-signal-strip b{color:var(--accent-on-light)}
.menu a:hover{color:var(--accent-on-light)}
.header-search:hover{background:var(--accent-on-light);color:#fff}
.round-link{background:#b94832}
.signal-map-card:hover>p:not(.map-card-copy){color:var(--acid)}
.map-icon{position:relative;display:block;width:44px;height:44px;overflow:hidden;border:1px solid currentColor}
.map-icon img{position:absolute;width:300%;height:200%;max-width:none;object-fit:fill}
.map-icon-route img{left:0;top:0}.map-icon-control img{left:-100%;top:0}.map-icon-bag img{left:-200%;top:0}.map-icon-check img{left:-200%;top:-100%}
html.js-ready .decision-chain.is-visible li:after{content:"";position:absolute;left:-4px;bottom:-5px;width:8px;height:8px;border-radius:50%;background:var(--acid);animation:signal-route .72s cubic-bezier(.2,.75,.25,1) both}
html.js-ready .decision-chain.is-visible li:nth-child(2):after{animation-delay:.2s}html.js-ready .decision-chain.is-visible li:nth-child(3):after{animation-delay:.4s}
@keyframes signal-route{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){html.js-ready [data-reveal]{opacity:1;transform:none}html.js-ready .decision-chain.is-visible li:after{animation:none}}

/* JS 파일이 실패하면 이 마지막 규칙이 숨김 상태를 해제한다. */
[data-reveal]{opacity:1;transform:none}
html.js-ready [data-reveal]{opacity:0;transform:translateY(20px)}
html.js-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}

/*
 * 제목은 읽는 흐름을 우선한다. 넓은 형광 면으로 문장을 덮는 방식 대신
 * 단어의 색, 굵기, 얇은 밑줄만으로 중요도를 구분한다.
 */
.signal-home h1 .key-phrase,.signal-home h2 .key-phrase{
  display:inline;
  padding:0;
  background:transparent;
  color:var(--accent-on-light);
  font-family:inherit;
  font-style:normal;
  font-weight:900;
  letter-spacing:inherit;
  text-decoration-line:underline;
  text-decoration-color:currentColor;
  text-decoration-thickness:.065em;
  text-decoration-skip-ink:none;
  text-underline-offset:.16em;
  box-decoration-break:initial;
  -webkit-box-decoration-break:initial;
}
.signal-hero h1 .key-phrase{color:var(--acid);text-decoration-thickness:.045em;text-underline-offset:.14em}
.signal-system h2 .key-phrase{color:var(--acid);text-decoration-thickness:.045em;text-underline-offset:.16em}
.signal-notes h2 .key-phrase{color:var(--accent-on-light)}
.signal-closing h2 .key-phrase{color:#fffaf5;text-decoration-color:var(--acid);text-decoration-thickness:.055em}

/* 의도적인 큰 제목은 남기되, 어느 화면에서도 행과 자소가 맞물리지 않게 한다. */
.hero-copy-wrap h1{max-width:10.8ch;line-height:1.08;letter-spacing:-.072em;overflow-wrap:normal;word-break:keep-all}
.manifesto-grid h2,.system-intro h2,.notes-head h2,.closing-grid h2{max-width:12ch;line-height:1.16;letter-spacing:-.067em;overflow-wrap:normal;word-break:keep-all}
.manifesto-grid h2 .key-phrase,.system-intro h2 .key-phrase,.notes-head h2 .key-phrase,.closing-grid h2 .key-phrase{line-height:1.16}
.menu a,.footer-menu a,.header-search,.menu-toggle,.arrow-link,.signal-map-card a,.closing-button{min-height:44px}
.menu a,.footer-menu a{display:inline-flex;align-items:center;padding-inline:4px}
.header-search,.menu-toggle{justify-content:center}
.signal-hero,.signal-system{color:#f3f4ec}.hero-copy,.system-intro>p:last-child,.decision-chain p{color:#d5ddd4}
.signal-closing{background:#b94832}.signal-closing,.signal-closing h2{color:#fffaf5}
.editorial-empty{display:grid;align-content:start;gap:0}.editorial-empty h2{position:relative;z-index:1;margin:20px 0 10px;font-size:clamp(31px,4vw,55px);line-height:1.1;letter-spacing:-.07em}.empty-utility{position:relative;z-index:1;width:min(100%,440px);margin-top:26px}.empty-utility .arrow-link{margin-top:0}.empty-utility p{margin-top:14px;font-size:13px;line-height:1.65}

@media(max-width:860px){
  .hero-copy-wrap h1{max-width:11.5ch;line-height:1.1}
  .manifesto-grid h2,.system-intro h2,.notes-head h2,.closing-grid h2{max-width:14ch;line-height:1.18}
}

@media(max-width:560px){
  .hero-copy-wrap h1{max-width:100%;font-size:clamp(43px,12.5vw,54px);line-height:1.12;letter-spacing:-.067em}
  .manifesto-grid h2,.system-intro h2,.notes-head h2{max-width:100%;font-size:clamp(34px,10.3vw,40px);line-height:1.22;letter-spacing:-.06em}
  .closing-grid h2{max-width:100%;font-size:clamp(39px,11.5vw,48px);line-height:1.18;letter-spacing:-.065em}
  .signal-home h1 .key-phrase,.signal-home h2 .key-phrase{text-underline-offset:.13em;text-decoration-thickness:.055em}
}

/* 글 상세는 헤더와 같은 프레임을 공유하되, 실제 읽기 폭은 편안하게 제한한다. */
:root{--article-frame:1320px;--article-reading:72ch}
.single-shell{width:min(var(--article-frame),calc(100% - 64px));max-width:none}
.signal-article>.article-header,.signal-article>.partner-notice,.signal-article>.article-signal-strip,.signal-article>.article-content,.signal-article>.article-footer,.signal-article+.article-widget-area,.signal-article~.comments-area{max-width:var(--article-reading);margin-inline:auto}
.article-header h1{max-width:17ch;font-size:clamp(2.35rem,4.15vw,4.5rem);line-height:1.14;letter-spacing:-.06em;text-wrap:balance}
.article-intro{max-width:62ch;font-size:clamp(1rem,1.35vw,1.15rem);line-height:1.75}
.article-content{font-size:clamp(1rem,1.16vw,1.125rem);line-height:1.9}
.article-content h2{margin:3.25rem 0 1rem;padding-top:1.25rem;border-top:1px solid var(--line);font-size:clamp(1.62rem,2.3vw,2.3rem);line-height:1.3;letter-spacing:-.045em}
.article-content h3{margin:2.2rem 0 .7rem;font-size:clamp(1.2rem,1.65vw,1.5rem);line-height:1.45;letter-spacing:-.03em}
.article-content blockquote{margin:2rem 0;padding:1.25rem 0 1.25rem 1.35rem;border-inline-start:4px solid var(--signal);border-top:0;background:transparent;color:#202825;font-family:var(--serif);font-size:clamp(1.16rem,1.7vw,1.42rem);line-height:1.62}
.article-content blockquote p{margin:.25rem 0}.article-content blockquote cite{display:block;margin-top:.85rem;color:#56605c;font-family:inherit;font-size:.78rem;font-style:normal}
.article-content table{display:block;width:100%;max-width:100%;margin:1.65rem 0;overflow-x:auto;border:1px solid var(--line);border-collapse:separate;border-spacing:0;background:#fff;font-size:.92em;line-height:1.55;-webkit-overflow-scrolling:touch}
.article-content caption{padding:.8rem 0;border-bottom:1px solid var(--line);background:transparent;color:var(--accent-on-light);font-size:.86rem;font-weight:800;text-align:left;caption-side:top}
.article-content thead{background:#18211e;color:#fff}.article-content th,.article-content td{min-width:9.5rem;padding:.78rem .9rem;border-right:1px solid #d8dbd4;border-bottom:1px solid #d8dbd4;text-align:left;vertical-align:top}.article-content th:last-child,.article-content td:last-child{border-right:0}.article-content tbody tr:last-child td{border-bottom:0}.article-content tbody tr:nth-child(even){background:#f7f7f2}
.partner-notice{margin-top:1.1rem!important;margin-bottom:1.8rem!important;padding:0!important;border:0!important;background:transparent!important;color:#68716e!important;font-size:.78rem!important;line-height:1.65}.partner-notice p{margin:0!important;color:inherit!important}.partner-notice strong,.partner-notice>span{display:none!important}
@media(max-width:860px){.single-shell{width:min(var(--article-frame),calc(100% - 36px))}.article-header h1{font-size:clamp(2.2rem,7vw,3.6rem)}}
@media(max-width:560px){.single-shell{width:calc(100% - 36px)}.article-header{padding-bottom:2rem}.article-header h1{max-width:100%;font-size:clamp(2rem,10vw,2.75rem);line-height:1.18}.article-content h2{margin-top:2.65rem;font-size:clamp(1.48rem,7.2vw,1.85rem)}.article-content table{font-size:.88rem}.article-content th,.article-content td{min-width:8.2rem;padding:.7rem .75rem}}

/* 2.5 brand refinement: one visual language from the masthead to the footer. */
:root{--sage:#dfe6d8;--paper-strong:#faf8f2;--terracotta:#a83b27;--footer-muted:#bfc9c2}
.header-inner{height:92px}
.brand{gap:12px}
.brand-mark{
  display:block;
  flex:0 0 auto;
  width:42px;
  height:42px;
  overflow:hidden;
  background:transparent;
  color:inherit;
  transform:none;
}
.brand-mark img{display:block;width:100%;height:100%}
.brand b{font-size:1.27rem;font-weight:850;letter-spacing:-.065em;line-height:1}
.brand small{margin-top:6px;color:#59625e;font-size:.61rem;font-weight:600;letter-spacing:.055em;line-height:1.1}
.footer-brand .brand-mark{background:transparent}

/* Search examples type visually while the real input keeps a stable accessible label. */
.hero-search .search-field{position:relative;display:block;min-width:0;flex:1}
.hero-search .search-field input{display:block;width:100%;padding:0}
.search-typing{
  position:absolute;
  inset:50% 0 auto;
  overflow:hidden;
  color:#eef1e9;
  font-size:14px;
  line-height:1.5;
  white-space:nowrap;
  text-overflow:ellipsis;
  pointer-events:none;
  transform:translateY(-50%);
}
.search-typing::after{
  content:"";
  display:inline-block;
  width:1px;
  height:1.1em;
  margin-left:3px;
  background:var(--acid);
  vertical-align:-.12em;
  animation:search-caret .8s steps(1,end) infinite;
}
html:not(.js-ready) .search-typing{display:none}
html.js-ready .search-field input::placeholder{color:transparent}
html.js-ready .search-field.is-user-active .search-typing{display:none}
html.js-ready .search-field.is-user-active input::placeholder{color:#c6cbc2}
.search-field.is-static .search-typing::after{animation-duration:1.15s}
@keyframes search-caret{50%{opacity:0}}

/* Large statements use one restrained accent and soft marker color instead of italics. */
.signal-manifesto{background:var(--paper)}
.manifesto-grid{grid-template-columns:minmax(105px,.72fr) minmax(0,2.8fr) minmax(260px,1.1fr);gap:44px;align-items:start}
.manifesto-grid h2{
  max-width:none;
  font-size:clamp(3.35rem,5.35vw,5rem);
  font-weight:900;
  line-height:1.02;
  letter-spacing:-.075em;
}
.manifesto-grid h2 span{font-family:inherit;font-style:normal;letter-spacing:inherit}
.manifesto-line,.manifesto-proof{display:block}
.manifesto-line{white-space:nowrap}
.manifesto-proof{margin-top:.18em}
.manifesto-grid .accent-word{color:var(--terracotta);font:inherit}
.manifesto-grid .phrase-highlight{
  display:inline;
  padding:0 .06em;
  background:linear-gradient(transparent 61%,rgba(217,255,69,.46) 61%);
  color:var(--ink);
  font:inherit;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.manifesto-copy{align-self:center}
.manifesto-copy p{color:#38423f;font-size:1.02rem;line-height:1.85}
.manifesto-copy .brand-name{color:var(--terracotta);font-weight:900}
.quote-highlight{
  padding:.08em .24em;
  background:#e4ebd8;
  color:#25302c;
  font-weight:850;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}

/* The generated still life replaces the full neon field; cards keep editorial contrast. */
.signal-map{color:var(--ink)}
.signal-map-head h2{font-size:clamp(3.2rem,5vw,4.75rem);font-weight:900;line-height:1.02}
.map-title-accent{color:var(--terracotta)}
.signal-map-grid{border-color:rgba(10,16,22,.58);box-shadow:0 24px 70px rgba(23,34,28,.12)}
.signal-map-card{
  border-color:rgba(10,16,22,.32);
  background:rgba(250,248,242,.93);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  transition:background .25s ease,color .25s ease,transform .25s ease,box-shadow .25s ease;
}
.signal-map-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--terracotta);transform:scaleX(.22);transform-origin:left;transition:transform .28s ease}
.signal-map-card:first-child{background:rgba(10,16,22,.96);color:#f8f7f2}
.signal-map-card:first-child>p:not(.map-card-copy){color:var(--acid)}
.signal-map-card:first-child .map-card-copy{color:#d5ddd4}
.signal-map-card:first-child::before{background:var(--acid);transform:scaleX(.34)}
.signal-map-card:hover{background:var(--ink);color:#fff;transform:translateY(-6px);box-shadow:0 18px 35px rgba(10,16,22,.2)}
.signal-map-card:hover::before{transform:scaleX(1)}
.map-icon{width:40px;height:40px;background:rgba(244,241,234,.46)}
.map-icon img{filter:saturate(.48) contrast(.92);opacity:.82}
.signal-map-card:first-child .map-icon,.signal-map-card:hover .map-icon{background:rgba(255,255,255,.07)}
.signal-map-card:first-child .map-icon img,.signal-map-card:hover .map-icon img{filter:saturate(.62) brightness(1.08)}

/* Decision questions and closing statement expose one useful phrase at a time. */
.decision-chain li::before{width:28%;opacity:.92}
.decision-chain li:hover::before{width:100%}
.decision-chain .question-key{
  color:var(--acid);
  font:inherit;
  font-weight:900;
  text-decoration:underline;
  text-decoration-color:rgba(217,255,69,.72);
  text-decoration-thickness:.055em;
  text-underline-offset:.13em;
}
.signal-closing{background:#a63c2b}
.closing-grid h2{max-width:15ch;color:#fffaf5}
.closing-phrase{white-space:nowrap}
.closing-key{position:relative;display:inline-block;color:var(--acid);font:inherit;font-weight:900}
.closing-key::after{content:"";position:absolute;right:0;bottom:.04em;left:0;height:.055em;background:currentColor}

/* The footer is a useful sitemap, not an oversized three-column placeholder. */
.site-footer{padding:0 0 24px;background:#0b1313;color:#fff}
.footer-mast{display:flex;align-items:end;justify-content:space-between;gap:48px;padding:72px 0 48px;border-bottom:1px solid rgba(255,255,255,.22)}
.site-footer .footer-kicker{margin:0 0 12px;color:var(--acid);font-size:.68rem;font-weight:900;letter-spacing:.17em}
.site-footer .footer-mast h2{max-width:18ch;margin:0;color:#fff;font-size:clamp(2rem,3.5vw,3.6rem);font-weight:850;line-height:1.08;letter-spacing:-.065em}
.footer-search-link{display:flex;align-items:center;justify-content:space-between;gap:32px;min-width:250px;min-height:52px;padding:11px 0;border-top:1px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(255,255,255,.7);font-size:.82rem;font-weight:850}
.footer-search-link b{color:var(--acid);font-size:1.35rem;transition:transform .2s ease}
.footer-search-link:hover b{transform:translate(3px,-3px)}
.site-footer .footer-grid{grid-template-columns:1.35fr 1fr .9fr .75fr;gap:clamp(32px,4vw,72px);padding-top:50px}
.footer-brand-column{max-width:340px}
.footer-brand .brand-mark{width:46px;height:46px}
.footer-brand b{color:#fff;font-size:1.24rem}
.footer-brand small{display:block;color:#8f9c95}
.site-footer .footer-brand-column>p{max-width:32ch;margin-top:20px;color:var(--footer-muted)}
.site-footer .footer-grid h2{margin:2px 0 17px;color:var(--acid);font-size:.72rem;font-weight:900;letter-spacing:.11em}
.site-footer .footer-menu{display:grid;gap:3px}
.site-footer .footer-menu li+li{margin-top:0}
.site-footer .footer-menu a{width:max-content;max-width:100%;min-height:36px;padding:4px 0;color:#e6ebe6;font-size:.84rem;font-weight:650;transition:color .2s ease,transform .2s ease}
.site-footer .footer-menu a:hover{color:var(--acid);transform:translateX(3px)}
.site-footer .footer-bottom{display:flex;justify-content:space-between;gap:24px;margin-top:48px;padding-top:19px;color:#9da9a2;font-size:.68rem;letter-spacing:.055em}

/* Short archives keep a deliberate ending and enough breathing room before the footer. */
.archive-layout{min-height:calc(100svh - 92px);padding-top:72px;padding-bottom:clamp(130px,12vw,180px)}
.archive-header{max-width:1040px;margin-bottom:40px}
.archive-header .eyebrow{margin:0 0 24px}
.archive-header h1{margin:0;font-size:clamp(2.5rem,4.4vw,4.4rem);line-height:1.08;letter-spacing:-.065em;text-wrap:balance}
.archive-description,.archive-header>p:last-child{max-width:62ch;margin-top:24px;color:#39433f;font-size:1.05rem;line-height:1.75}
.archive-grid{gap:24px;padding-top:28px;border-top:1px solid var(--ink)}
.archive-grid .signal-card{border:1px solid var(--line);background:var(--paper-strong)}
.archive-grid .card-image{aspect-ratio:16/9}
.archive-grid .card-body{padding:22px 24px 27px}
.archive-layout>.editorial-empty{margin-top:34px}
.archive-layout .navigation.pagination{margin-top:48px}

@media(max-width:860px){
  .header-inner{height:72px}
  .primary-nav{top:72px}
  .brand-mark{width:36px;height:36px}
  .brand b{font-size:1.08rem}
  .manifesto-grid{grid-template-columns:1fr;gap:28px}
  .manifesto-grid h2{font-size:clamp(2.65rem,7.4vw,4rem)}
  .manifesto-copy{max-width:640px}
  .footer-mast{align-items:start;flex-direction:column;padding:58px 0 42px}
  .site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 48px}
  .footer-brand-column{max-width:none}
  .archive-layout{min-height:calc(100svh - 72px);padding-top:56px;padding-bottom:112px}
}

@media(max-width:560px){
  .manifesto-grid h2{font-size:clamp(2rem,8.5vw,2.38rem);line-height:1.08}
  .manifesto-line{white-space:nowrap}
  .manifesto-copy p{font-size:.98rem}
  .signal-map-head h2{font-size:clamp(2.5rem,11.5vw,3.15rem)}
  .signal-map-card{backdrop-filter:none;-webkit-backdrop-filter:none}
  .decision-chain li::before{width:34%}
  .footer-mast{padding:52px 0 38px}
  .footer-search-link{width:100%;min-width:0}
  .site-footer .footer-grid{grid-template-columns:1fr;gap:34px;padding-top:42px}
  .site-footer .footer-bottom{align-items:flex-start;flex-direction:column;margin-top:38px}
  .archive-layout{padding-top:44px;padding-bottom:92px}
  .archive-header{margin-bottom:30px}
  .archive-header h1{font-size:clamp(2.15rem,10vw,3rem)}
}

@media(prefers-reduced-motion:reduce){.search-typing::after{display:none}}
