/* =====================================================================
   연 매거진 엔진 — 공통 스타일 (mag.css)  [표준: 한 곳에서만 수정]
   ---------------------------------------------------------------------
   ※ :root 색 변수는 기본값(인디고). 각 잡지 config.js 가 런타임에
      --deep / --deep-d / --accent 등을 덮어써 잡지별 색을 입힙니다.
   ===================================================================== */
/* ===== 디자인 토큰 (연라이프 yp-tokens 계열 · 밝고 따뜻한 파스텔 + 수학 인디고) ===== */
:root{
  --ink:#2c2a30; --mut:#6f6a72; --faint:#9a94a0;
  --paper:#fbf8f3; --card:#ffffff; --line:#e9e3ec;
  --deep:#6357a6; --deep-d:#473d80; --accent:#c98a4b; --accent-d:#a96f36;
  /* 섹션 틴트 — 채도 낮춘 세련된 에디토리얼 톤(보라 제거). 따뜻한 뉴트럴 + 은은한 블루/세이지 */
  --apricot:#f3ece1; --mint:#eaeeea; --sky:#e9eef3; --lav:#efeae2; --cream:#f5f0e7;
  --maxw:1080px; --narrow:720px;
  --r:18px; --r-s:12px; --r-pill:999px;
  --sh:0 6px 24px rgba(50,40,70,.08); --sh-s:0 2px 10px rgba(50,40,70,.06);
  --serif:"Noto Serif KR",serif;
  --sans:"Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --mono:"Cascadia Code","SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); line-height:1.78; font-size:17px;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{font-family:var(--serif); line-height:1.35; margin:0; font-weight:600;}
p{margin:0 0 1.1em;}
a{color:inherit;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 22px;}
.narrow{max-width:var(--narrow); margin:0 auto;}
.eyebrow{font-size:.72rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent-d); font-weight:700; margin-bottom:.6em;}
.muted{color:var(--mut);} .center{text-align:center;}
.math{font-family:var(--mono); font-style:normal; background:rgba(99,87,166,.08);
  padding:1px 6px; border-radius:6px; font-size:.95em; color:var(--deep-d);}

/* ===== 상단 바 ===== */
.topbar{position:sticky; top:0; z-index:50; background:rgba(251,248,243,.92);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.topbar .wrap{display:flex; align-items:center; gap:14px; height:58px; position:relative;}
.iconbtn{display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; padding:0; background:none; border:none; cursor:pointer;
  color:var(--mut); border-radius:var(--r-pill); transition:.15s; overflow:hidden;}
.iconbtn:hover{color:var(--deep); background:rgba(99,87,166,.1);}
.iconbtn svg{width:22px; height:22px; stroke:currentColor; stroke-width:2;
  fill:none; stroke-linecap:round; stroke-linejoin:round;}
.iconbtn img{width:30px; height:30px; border-radius:50%; object-fit:cover;}
.iconbtn .ini{width:30px; height:30px; border-radius:50%; display:grid; place-items:center;
  font-family:var(--serif); font-weight:700; font-size:.9rem; color:#fff;
  background:linear-gradient(135deg,var(--deep),var(--accent));}
.brand-center{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  display:inline-flex; align-items:center; text-decoration:none;}
.brand-center .wm{display:flex; flex-direction:column; align-items:center; line-height:1;}
.wm-main{font-family:var(--serif); font-weight:700; font-size:1.02rem; color:var(--deep-d); letter-spacing:.02em;}
.wm-sub{font-size:.52rem; font-weight:700; letter-spacing:.42em; text-transform:uppercase;
  color:var(--accent-d); margin-top:4px; padding-left:.42em;}
.topbar .sp{flex:1;}
.topbar-right{display:inline-flex; align-items:center; gap:2px;}
.print-wrap{position:relative; display:inline-flex;}
.print-pop{position:absolute; top:46px; right:0; background:var(--card); border:1px solid var(--line);
  border-radius:var(--r-s); box-shadow:var(--sh); padding:6px; display:none;
  flex-direction:column; gap:2px; min-width:178px; z-index:70;}
.print-pop.open{display:flex;}
.print-pop button{font-family:var(--sans); font-size:.86rem; text-align:left; background:none;
  border:none; padding:10px 12px; border-radius:9px; cursor:pointer; color:var(--ink); white-space:nowrap;}
.print-pop button:hover{background:var(--cream); color:var(--deep);}
.print-pop button small{display:block; color:var(--faint); font-size:.72rem; margin-top:2px;}
.print-pop .pp-lab{font-size:.66rem; font-weight:700; letter-spacing:.1em; color:var(--accent-d); padding:6px 12px 3px; text-transform:uppercase;}
.print-pop .pp-div{height:1px; background:var(--line); margin:5px 6px;}

/* ===== 차림표 드로어 (목차) ===== */
[id]{scroll-margin-top:70px;}
.toc-overlay{position:fixed; inset:0; background:rgba(28,24,30,.42); opacity:0;
  visibility:hidden; transition:opacity .25s; z-index:90;}
.toc-overlay.open{opacity:1; visibility:visible;}
.toc-drawer{position:fixed; top:0; right:0; height:100%; width:min(340px,86vw);
  background:var(--paper); border-left:1px solid var(--line); z-index:100;
  transform:translateX(100%); transition:transform .3s cubic-bezier(.2,.8,.2,1);
  display:flex; flex-direction:column; box-shadow:-12px 0 40px rgba(28,24,30,.14);}
.toc-drawer.open{transform:translateX(0);}
.toc-drawer-head{display:flex; align-items:center; justify-content:space-between;
  padding:20px 22px; border-bottom:1px solid var(--line);}
.toc-drawer-head .ttl{font-family:var(--serif); font-weight:700; font-size:1.05rem; color:var(--ink);}
.toc-drawer-head .ttl small{display:block; font-family:var(--sans); font-weight:500;
  font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--mut); margin-top:4px;}
.toc-close{background:none; border:none; cursor:pointer; color:var(--mut);
  display:inline-flex; align-items:center; gap:5px; font-size:.8rem; font-family:var(--sans);}
.toc-close svg{width:17px; height:17px; stroke:currentColor; stroke-width:2;}
.toc-list{padding:6px 0; overflow-y:auto; flex:1;}
.toc-item{display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:15px 22px; text-decoration:none; color:var(--ink);
  border-bottom:1px solid rgba(40,32,40,.05);}
.toc-item:hover{background:var(--cream);}
.toc-item .txt{display:flex; flex-direction:column;}
.toc-item .nm{font-family:var(--serif); font-weight:700; font-size:1rem;}
.toc-item .ds{font-size:.75rem; color:var(--mut); margin-top:2px;}
.toc-item .ar{color:var(--accent-d); flex:0 0 auto;}
.toc-item .ar svg{width:16px; height:16px; stroke:currentColor; stroke-width:2; fill:none;}
.toc-foot{padding:16px 22px; border-top:1px solid var(--line);}
.toc-foot a{display:inline-flex; align-items:center; gap:7px; text-decoration:none;
  color:var(--mut); font-size:.82rem;}
.toc-foot a:hover{color:var(--deep);}
.toc-foot .yeon{color:var(--accent-d); font-family:var(--serif); font-weight:700; font-size:1rem;}
@media print{ .tocbtn,.brand-center,.toc-overlay,.toc-drawer{display:none !important;} }

/* ===== 표지 슬라이드쇼 (켄번즈 + 크로스페이드) ===== */
.cover{position:relative; height:clamp(420px,72vh,640px); overflow:hidden;
  border-bottom:1px solid var(--line);}
.slide{position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease;
  display:flex; align-items:flex-end;}
.slide.on{opacity:1;}
.slide .bg{position:absolute; inset:0; transform:scale(1.04);
  animation:ken 9s ease-out forwards;}
.slide.on .bg{animation:ken 9s ease-out forwards;}
@keyframes ken{from{transform:scale(1.04);} to{transform:scale(1.13);}}
@media(prefers-reduced-motion:reduce){
  .slide .bg{animation:none !important;}
  .slide{transition:opacity .2s linear;}
  html{scroll-behavior:auto;}
}
.slide .art{position:absolute; inset:0; opacity:.5;}
.slide .scrim{position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,0) 30%,rgba(40,36,40,.16) 100%);}
.cover-cap{position:relative; z-index:2; padding:0 22px 44px; max-width:var(--maxw);
  margin:0 auto; width:100%;}
.cover-cap .kick{font-size:.78rem; letter-spacing:.2em; text-transform:uppercase;
  font-weight:700; color:var(--deep-d); margin-bottom:10px;}
.cover-cap h1{font-size:clamp(2.1rem,6vw,3.6rem); font-weight:700; color:#2c2a30;
  text-shadow:0 1px 18px rgba(255,255,255,.5); white-space:pre-line;}
.cover-dots{position:absolute; z-index:3; bottom:20px; right:24px; display:flex; gap:7px;}
.cover-dots b{width:8px; height:8px; border-radius:50%; background:rgba(60,50,70,.25);
  cursor:pointer; transition:.3s;} .cover-dots b.on{background:var(--accent); width:22px; border-radius:5px;}
.masthead{position:absolute; z-index:3; top:22px; left:0; right:0;}
.masthead .wrap{display:flex; align-items:baseline; gap:12px;}
.masthead .t{font-family:var(--serif); font-weight:700; font-size:clamp(1.3rem,3.4vw,2rem);
  color:var(--deep-d);}
.masthead .s{font-size:.8rem; color:var(--mut); letter-spacing:.04em;}

/* ===== 섹션 공통 ===== */
section{padding:54px 0;}
.sec-head{margin-bottom:30px;}
.sec-head h2{font-size:clamp(1.5rem,3.6vw,2.1rem);}
.sec-head .sub{color:var(--mut); margin-top:.5em; font-size:1rem;}
.tint-apricot{background:var(--apricot);} .tint-mint{background:var(--mint);}
.tint-sky{background:var(--sky);} .tint-lav{background:var(--lav);} .tint-cream{background:var(--cream);}
.divider{height:1px; background:var(--line); border:0; max-width:var(--maxw); margin:0 auto;}

/* ===== 창간사 ===== */
.letter{font-size:1.08rem;}
.letter p:first-of-type::first-letter{font-family:var(--serif); font-size:3.1em;
  float:left; line-height:.82; padding:6px 10px 0 0; color:var(--accent-d); font-weight:700;}
.sign{margin-top:1.4em; font-family:var(--serif); color:var(--mut);}

/* ===== 편집회의 토론 ===== */
.rt-intro{font-size:1.04rem; color:var(--mut); margin-bottom:28px;}
.turn{display:flex; gap:14px; margin:0 0 18px; align-items:flex-start;}
.av{width:42px; height:42px; flex:0 0 auto; border-radius:50%; display:grid; place-items:center;
  font-family:var(--serif); font-weight:700; color:#fff; font-size:1.05rem; box-shadow:var(--sh-s);}
.bubble{background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  padding:13px 17px; box-shadow:var(--sh-s); flex:1;}
.bubble .who{font-weight:700; font-size:.9rem; margin-bottom:3px;}
.bubble .who span{font-weight:500; color:var(--faint); font-size:.78rem; margin-left:6px;}
.bubble p{margin:0; font-size:.99rem;}
.decision{margin-top:26px; background:var(--card); border:1px solid var(--line);
  border-left:4px solid var(--accent); border-radius:var(--r-s); padding:16px 20px;}
.decision b{color:var(--accent-d);}
/* 편집회의 — 한 카드로 묶어 클릭하면 펼쳐짐(접이식). 모든 잡지 공통 */
.rt-fold{background:var(--card); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; box-shadow:var(--sh-s);}
.rt-summary{list-style:none; cursor:pointer; display:flex; align-items:center; gap:10px; padding:16px 18px; font-family:var(--sans);}
.rt-summary::-webkit-details-marker{display:none;}
.rt-summary:hover{background:var(--paper);}
.rt-sum-t{font-weight:700; color:var(--deep-d); font-size:1rem;}
.rt-sum-n{font-size:.82rem; color:var(--faint);}
.rt-sum-ar{margin-left:auto; flex:0 0 auto; width:22px; height:22px; border-radius:50%; background:var(--mint); position:relative; transition:transform .25s;}
.rt-sum-ar::before{content:""; position:absolute; left:7px; top:7px; width:7px; height:7px; border-right:2px solid var(--deep); border-bottom:2px solid var(--deep); transform:rotate(45deg);}
.rt-fold[open] .rt-sum-ar{transform:rotate(180deg);}
.rt-fold[open] .rt-summary{border-bottom:1px solid var(--line);}
.rt-body{padding:18px 18px 6px; display:none;}
.rt-fold[open] .rt-body{display:block;}
/* 필진 — 접힌 카드에 아바타를 가로로 모아 표시(가로로 긴 카드) */
.rt-fold-writers .rt-summary{flex-wrap:wrap; gap:9px 12px;}
.rt-avs{display:flex; flex-wrap:wrap; gap:5px; align-items:center; flex:1 1 240px; min-width:0;}
.rt-avs .av, .rt-avs .pic, .rt-avs img{width:32px !important; height:32px !important; min-width:32px; font-size:.8rem !important; border-radius:50% !important; flex:0 0 auto; object-fit:cover;}
.rt-fold-writers .rt-sum-t{font-weight:700; color:var(--deep-d);}
/* 친구에게 풀어보게 하기 — 버튼 + 공유 모달 (모든 잡지 공통) */
.prob-acts{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px;}
.prob-share, .prob-make{display:inline-flex; align-items:center; gap:7px; padding:9px 16px; border:1px solid var(--line); background:var(--card); border-radius:999px; font-family:var(--sans); font-weight:700; font-size:.85rem; cursor:pointer;}
.prob-share{color:var(--deep);} .prob-make{color:var(--accent-d);}
.prob-share:hover{background:var(--mint); border-color:var(--deep);}
.prob-make:hover{background:var(--cream); border-color:var(--accent);}
.mk-group{margin:15px 0;}
.mk-lab{font-weight:700; font-size:.88rem; color:var(--deep-d); margin-bottom:8px;}
.mk-opt{font-weight:400; color:var(--faint); font-size:.8rem;}
.mk-chips{display:flex; flex-wrap:wrap; gap:7px;}
.mk-chip{padding:8px 14px; border:1px solid var(--line); background:var(--card); border-radius:999px; font-family:var(--sans); font-weight:600; font-size:.85rem; color:var(--mut); cursor:pointer;}
.mk-chip.on{background:var(--deep); color:#fff; border-color:var(--deep);}
.mk-note{width:100%; box-sizing:border-box; min-height:62px; padding:11px 13px; border:1px solid var(--line); border-radius:10px; font-family:var(--sans); font-size:.92rem; resize:vertical; background:var(--card);}
.mk-note:focus{outline:none; border-color:var(--deep);}
.mk-gate{background:var(--cream); border:1px solid var(--line); border-left:4px solid var(--accent); border-radius:10px; padding:13px 15px; font-size:.9rem; color:var(--ink); margin-bottom:10px; line-height:1.65;}
.mk-gate.ok{border-left-color:var(--deep);}
#mkSend, #mkSub{width:100%;}
.ch-overlay{position:fixed; inset:0; background:rgba(40,34,52,.55); display:none; align-items:center; justify-content:center; z-index:300; padding:18px;}
.ch-overlay.open{display:flex;}
.ch-box{background:var(--card); border-radius:18px; padding:22px 22px 20px; max-width:380px; width:100%; box-shadow:0 24px 70px rgba(0,0,0,.32); max-height:90vh; overflow:auto;}
.ch-qr{display:flex; align-items:center; justify-content:center; min-height:160px;}
.ch-qr img, .ch-qr canvas, .ch-qr table{border:1px solid var(--line); border-radius:12px; background:#fff; padding:8px;}
.ch-btns{display:flex; gap:8px; margin-top:8px;}
.ch-btns .ebtn, .ch-btns .gbtn{flex:1 1 0; width:auto;}
@media print{ .prob-acts, .ch-overlay{display:none !important;} }
@media print{ .rt-body{display:block !important;} .rt-sum-ar{display:none;} }

/* ===== 특집 기사 ===== */
.feature{padding:48px 0; border-top:1px solid var(--line);}
.feature:first-child{border-top:0;}
.feat-head{margin-bottom:22px;}
.feat-art{height:200px; border-radius:var(--r); overflow:hidden; margin-bottom:24px;
  position:relative; box-shadow:var(--sh-s);}
.feat-cat{font-size:.74rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--accent-d); font-weight:700;}
.feat-head h2{font-size:clamp(1.6rem,4vw,2.3rem); margin:.35em 0;}
.feat-dek{color:var(--mut); font-size:1.06rem; font-family:var(--serif);}
.byline{display:flex; align-items:center; gap:10px; margin:18px 0 4px;}
.byline .av{width:34px; height:34px; font-size:.85rem;}
.byline .n{font-weight:600; font-size:.92rem;}
.byline .r{color:var(--faint); font-size:.8rem;}
.ai-tag{margin-left:auto; font-size:.7rem; color:var(--faint); border:1px solid var(--line);
  padding:3px 9px; border-radius:var(--r-pill);}
.body{font-size:1.06rem;}
.pullquote{font-family:var(--serif); font-size:1.3rem; line-height:1.5; color:var(--deep-d);
  border-left:3px solid var(--accent); padding:6px 0 6px 22px; margin:26px 0; font-weight:500;}
.trustbar{display:inline-flex; align-items:center; gap:9px; margin-top:14px;
  font-size:.8rem; color:var(--mut); background:var(--cream); padding:7px 14px; border-radius:var(--r-pill);}
.trustbar .track{display:inline-block; width:96px; height:6px; background:#e3dccf; border-radius:3px; overflow:hidden; vertical-align:middle;}
.trustbar .fill{display:block; height:100%; background:linear-gradient(90deg,var(--deep),var(--accent));}

/* ===== 이주의 문제 ===== */
.prob{background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  padding:22px 24px; margin-bottom:18px; box-shadow:var(--sh-s);}
.prob-top{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px;}
.prob-lv{font-size:.72rem; font-weight:800; letter-spacing:.04em; padding:4px 12px; border-radius:var(--r-pill);}
.prob-lv.lv1{color:#3f8a6e; background:#e3efe6;}
.prob-lv.lv2{color:#4a6fa5; background:#e3ebf5;}
.prob-lv.lv3{color:#8a5fae; background:#efe6f5;}
.prob-q{font-family:var(--serif); font-size:1.12rem; line-height:1.6; color:var(--ink); font-weight:500;}
.prob-q .qm{color:var(--accent-d); font-weight:700; margin-right:6px;}
.fold{margin-top:14px; border:1px solid var(--line); border-radius:var(--r-s); overflow:hidden; background:var(--paper);}
.fold>summary{cursor:pointer; list-style:none; padding:12px 16px; font-size:.9rem; font-weight:700;
  color:var(--deep); display:flex; align-items:center; gap:8px; user-select:none;}
.fold>summary::-webkit-details-marker{display:none;}
.fold>summary::before{content:"▸"; color:var(--accent-d); transition:.2s; font-size:.8rem;}
.fold[open]>summary::before{transform:rotate(90deg);}
.fold>summary:hover{background:var(--cream);}
.fold .fold-body{padding:4px 18px 16px; font-size:.97rem;}
.fold.hint>summary{color:var(--accent-d);}
.prob-ans{background:var(--mint); border-radius:var(--r-s); padding:11px 14px; margin:10px 0 14px;
  font-size:.98rem; font-weight:600; color:var(--deep-d);}
.prob-ans b{color:var(--accent-d);}
.prob-sol{counter-reset:step; padding-left:0; list-style:none; margin:0;}
.prob-sol li{position:relative; padding:6px 0 6px 30px; font-size:.96rem;}
.prob-sol li::before{counter-increment:step; content:counter(step); position:absolute; left:0; top:6px;
  width:21px; height:21px; border-radius:50%; background:var(--deep); color:#fff;
  font-size:.72rem; font-weight:700; display:grid; place-items:center; font-family:var(--sans);}
.prob-by{margin-top:14px; font-size:.78rem; color:var(--faint);}

/* ===== 아름다운 증명 ===== */
.proof-claim{background:var(--card); border:1px solid var(--line); border-left:4px solid var(--deep);
  border-radius:var(--r-s); padding:16px 20px; margin-bottom:22px; font-family:var(--serif);
  font-size:1.1rem; color:var(--deep-d); line-height:1.6;}
.proof-claim b{color:var(--accent-d);}
.proof-step{font-size:1.04rem;}
.qed{display:inline-block; margin-left:6px; color:var(--deep); font-weight:700;}

/* ===== 오개념 ===== */
.myth-grid{display:grid; gap:16px;}
.myth-card{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line);
  border-radius:var(--r); overflow:hidden; box-shadow:var(--sh-s); background:var(--card);}
.myth-x,.myth-o{padding:18px 20px; font-size:.97rem; line-height:1.65;}
.myth-x{background:#fbeee9;}
.myth-o{background:var(--mint); border-left:1px solid var(--line);}
.myth-lab{display:inline-flex; align-items:center; gap:6px; font-size:.74rem; font-weight:800;
  letter-spacing:.04em; margin-bottom:8px; padding:3px 10px; border-radius:var(--r-pill);}
.myth-x .myth-lab{color:#b5482f; background:#f5d9d0;}
.myth-o .myth-lab{color:#2f7d5e; background:#cfe7da;}
.myth-proof{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-s);
  padding:16px 18px; margin-top:18px;}
.myth-proof .t{font-family:var(--serif); font-weight:700; color:var(--deep-d); margin-bottom:8px;}
.myth-proof p{font-size:.97rem; margin:0 0 .7em;} .myth-proof p:last-child{margin:0;}
@media(max-width:560px){ .myth-card{grid-template-columns:1fr;} .myth-o{border-left:0; border-top:1px solid var(--line);} }

/* ===== 내 진도면 (학년별) ===== */
.grade-bar{display:flex; gap:8px; flex-wrap:wrap; margin:4px 0 22px;}
.grade-pill{font-family:var(--sans); font-size:.92rem; font-weight:700; color:var(--mut);
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-pill);
  padding:9px 20px; cursor:pointer; transition:.15s;}
.grade-pill:hover{border-color:var(--deep); color:var(--deep);}
.grade-pill.on{background:var(--deep); border-color:var(--deep); color:#fff;}
.track-card{background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  padding:24px 26px; box-shadow:var(--sh-s);}
.track-top{display:flex; align-items:center; gap:10px; margin-bottom:6px;}
.track-grade{font-size:.78rem; font-weight:800; letter-spacing:.04em; color:var(--deep);
  background:var(--mint); padding:4px 12px; border-radius:var(--r-pill);}
.track-exam{font-size:.74rem; font-weight:800; color:#b5482f; background:#f5d9d0;
  padding:4px 11px; border-radius:var(--r-pill);}
.track-unit{font-family:var(--serif); font-size:1.5rem; color:var(--ink); margin:2px 0 10px;}
.track-bridge{font-size:.95rem; color:var(--deep-d); background:var(--lav);
  border-radius:var(--r-s); padding:12px 15px; margin-bottom:20px; line-height:1.65;}
.free-tag{font-size:.66rem; font-weight:800; color:#2f7d5e; background:#cfe7da;
  padding:2px 9px; border-radius:var(--r-pill); vertical-align:middle; margin-left:6px;}
.lock-tag{font-size:.7rem; font-weight:800; color:var(--accent-d); background:var(--cream);
  padding:3px 10px; border-radius:var(--r-pill);}
.concept{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-s); padding:16px 18px; margin-bottom:16px;}
.concept-t{font-family:var(--serif); font-weight:700; color:var(--deep-d); font-size:1.05rem; margin-bottom:10px;}
.concept ul,.trap ul{margin:0; padding-left:18px;}
.concept li{font-size:.96rem; line-height:1.7; margin-bottom:6px;}
.trap{background:#fbf3ee; border:1px solid #f0e0d6; border-radius:var(--r-s); padding:14px 18px; margin-bottom:18px;}
.trap-t{font-family:var(--serif); font-weight:700; color:#b5482f; font-size:.98rem; margin-bottom:8px;}
.trap li{font-size:.92rem; line-height:1.65; margin-bottom:5px; color:var(--ink);}
.tp-h{font-family:var(--serif); font-weight:700; font-size:1.1rem; color:var(--ink); margin:18px 0 12px;}
.prob.locked{background:linear-gradient(180deg,#fff, #faf6ef);}
.lock-bar{display:block; width:100%; margin-top:12px; background:var(--cream); border:1px dashed var(--accent);
  color:var(--accent-d); font-family:var(--sans); font-weight:700; font-size:.9rem;
  border-radius:var(--r-s); padding:12px; cursor:pointer; text-align:center;}
.lock-bar:hover{background:var(--accent); color:#fff; border-style:solid;}
.exam-set{margin-top:18px; border-radius:var(--r); padding:20px 22px;
  background:linear-gradient(135deg,var(--lav),var(--sky)); border:1px solid var(--line);}
.exam-set.locked{background:linear-gradient(135deg,var(--cream),var(--mint));}
.exam-set .es-t{font-family:var(--serif); font-weight:700; font-size:1.1rem; color:var(--deep-d); margin-bottom:6px;}
.exam-set .es-d{font-size:.9rem; color:var(--mut); margin-bottom:12px; line-height:1.6;}
@media print{ .grade-bar,.lock-bar{display:none !important;} .prob.locked{display:none !important;} .exam-set.locked{display:none !important;} }

/* ===== Q&A ===== */
.qa-item{background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  padding:20px 22px; margin-bottom:14px; box-shadow:var(--sh-s);}
.qa-q{font-family:var(--serif); font-weight:700; font-size:1.12rem; color:var(--deep-d);
  display:flex; gap:10px; align-items:flex-start;}
.qa-q .mk{flex:0 0 auto; width:24px; height:24px; border-radius:50%; background:var(--deep);
  color:#fff; display:grid; place-items:center; font-size:.8rem; margin-top:2px;}
.qa-a{margin:10px 0 0 34px; font-size:1rem;}
.qa-by{margin:8px 0 0 34px; font-size:.78rem; color:var(--faint);}

/* ===== 글로벌 수학 데스크 브리프 ===== */
.briefs{display:grid; gap:16px; grid-template-columns:repeat(auto-fill,minmax(240px,1fr));}
.brief{background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  padding:20px; box-shadow:var(--sh-s); transition:.2s;}
.brief:hover{transform:translateY(-2px); box-shadow:var(--sh);}
.brief .btag{display:inline-block; font-size:.7rem; font-weight:700; letter-spacing:.08em;
  color:#4a6076; background:#e6edf3; padding:3px 10px; border-radius:var(--r-pill); margin-bottom:11px;}
.brief h3{font-size:1.08rem; margin-bottom:8px; line-height:1.4;}
.brief p{font-size:.92rem; margin:0;}
.brief-by{margin-top:11px; font-size:.74rem; color:var(--faint);}

/* ===== 본문 인라인 도해 ===== */
.infig{margin:26px 0;}
.infig img{width:100%; display:block; border-radius:var(--r-s); box-shadow:var(--sh-s);}
.infig figcaption{font-size:.79rem; color:var(--mut); margin-top:9px; text-align:center;
  font-family:var(--sans); line-height:1.5;}
.rt-img{height:210px; background-size:cover; background-position:center;
  border-radius:var(--r); margin-bottom:26px; box-shadow:var(--sh-s);}

/* ===== 이주의 한 컷 ===== */
.photo-art{height:300px; border-radius:var(--r); overflow:hidden; box-shadow:var(--sh);}
.photo-cap{font-size:1.02rem; margin-top:20px;}
.photo-note{font-size:.8rem; color:var(--faint); margin-top:8px;}
/* 이미지 출처·저작권 표기 (표준: 모든 잡지 공통) */
.img-credit{font-size:.76rem; color:var(--faint); margin-top:10px; line-height:1.65; padding-top:8px; border-top:1px dashed var(--line,#e9e3ec);}
.img-credit .ic-lab{font-weight:700; color:var(--deep-d);}
.img-credit a{color:var(--deep); text-decoration:none; border-bottom:1px solid rgba(99,87,166,.35);}
.img-credit a:hover{border-bottom-color:var(--deep);}
/* 퍼가기(드래그·우클릭) 시 뜨는 저작권 안내 토스트 */
.rights-toast{position:fixed; left:50%; bottom:24px; transform:translateX(-50%) translateY(18px); background:rgba(40,34,52,.96); color:#fff; font-size:.82rem; font-weight:600; padding:11px 18px; border-radius:999px; box-shadow:0 10px 30px rgba(0,0,0,.28); opacity:0; pointer-events:none; transition:opacity .25s, transform .25s; z-index:9999; max-width:90vw; text-align:center;}
.rights-toast.on{opacity:1; transform:translateX(-50%) translateY(0);}
@media print{ .rights-toast{display:none !important;} }
.foot-imgpolicy{display:inline-block; margin-top:8px; font-size:.78rem; opacity:.85;}

/* ===== 다음 호 ===== */
.next-card{background:linear-gradient(135deg,var(--lav),var(--sky)); border-radius:var(--r);
  padding:34px; text-align:center;}
.next-card .th{font-family:var(--serif); font-size:1.5rem; font-weight:700; color:var(--deep-d); margin:.3em 0;}

/* ===== 검수 배지 + 팝업 ===== */
.rvw-flag{display:inline-flex; align-items:center; gap:4px; margin-left:10px; vertical-align:middle;
  border:none; cursor:pointer; font-family:var(--sans); font-size:.72rem; font-weight:800;
  color:var(--deep); background:var(--mint); border-radius:var(--r-pill); padding:3px 10px; letter-spacing:-.01em;}
.rvw-flag:hover{background:var(--deep); color:#fff;}
@media print{ .rvw-flag{background:none; color:var(--ink); padding:0;} }
.rvw{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:12px 0 2px; font-size:.82rem;}
.rvw .lab{font-weight:900; color:var(--ink); letter-spacing:-.01em;}
.rvw .rbtn{display:inline-flex; align-items:center; gap:6px; border:none; background:transparent;
  padding:2px 2px; cursor:pointer; font-family:var(--sans); font-size:.86rem; font-weight:800; color:var(--ink);}
.rvw .rbtn:hover{color:var(--deep); text-decoration:underline; text-underline-offset:3px;}
.ric{width:18px; height:18px; border-radius:50%; display:inline-flex; align-items:center;
  justify-content:center; font-weight:800; font-size:10px; color:#fff; overflow:hidden; flex:0 0 auto;}
.ric img{width:100%; height:100%; object-fit:cover;}
.rvw-ov{position:fixed; inset:0; background:rgba(28,24,30,.5); opacity:0; visibility:hidden; transition:.2s; z-index:200;}
.rvw-ov.open{opacity:1; visibility:visible;}
.rvw-modal{position:fixed; left:50%; top:50%; transform:translate(-50%,-47%); width:min(560px,92vw);
  max-height:84vh; overflow:auto; background:var(--paper); border-radius:18px; z-index:201;
  opacity:0; visibility:hidden; transition:.2s; box-shadow:0 24px 70px rgba(28,24,30,.3);}
.rvw-modal.open{opacity:1; visibility:visible; transform:translate(-50%,-50%);}
.rvw-modal .mh{display:flex; align-items:center; justify-content:space-between; padding:18px 22px; border-bottom:1px solid var(--line);}
.rvw-modal .mh b{font-family:var(--serif); font-size:1.05rem;}
.rvw-modal .mx{background:none; border:none; cursor:pointer; color:var(--mut); font-size:1.2rem; line-height:1;}
.rvw-modal .mb{padding:18px 22px;}
.rvw-why{background:var(--cream); border-radius:12px; padding:12px 14px; font-size:.86rem; color:var(--ink); margin-bottom:16px; line-height:1.6;}
.rvw-why b{color:var(--deep);}
.rvw-item{display:flex; gap:12px; padding:14px 0; border-top:1px solid rgba(40,32,40,.07);}
.rvw-item:first-child{border-top:none;}
.rvw-item .ric{width:34px; height:34px; font-size:13px;}
.rvw-item .nm{font-weight:700; font-size:.92rem;}
.rvw-item .role{font-size:.82rem; color:var(--mut); line-height:1.6; margin-top:3px;}
.rvw-item .brief{font-size:.84rem; color:var(--ink); line-height:1.65; margin-top:8px;
  background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px 12px;}
.rvw-item .brief b{color:var(--deep);}
@media print{ .rvw .rbtn{cursor:default;} .rvw-ov,.rvw-modal{display:none !important;} }

/* ===== AI 공동 출제 & 검산 배지 ===== */
.ai-collab-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 10px;
  vertical-align: middle;
  border: 1px solid rgba(71, 61, 128, 0.15);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(71, 61, 128, 0.03));
  border-radius: 999px;
  padding: 3px 10px 3px 6px;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--deep);
  text-decoration: none;
}

.ai-collab-badge:hover {
  transform: translateY(-1px);
  border-color: var(--deep);
  box-shadow: 0 4px 12px rgba(71, 61, 128, 0.12);
  background: linear-gradient(135deg, var(--deep), #5c4fa3);
  color: #fff;
}

.ai-icons-stack {
  display: inline-flex;
  align-items: center;
  margin-right: 2px;
}

.ai-icon-mini {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 800;
  color: #fff;
  margin-right: -5px; /* 음수 마진으로 겹침 효과 */
  border: 1.5px solid var(--paper);
  transition: transform 0.2s, z-index 0.2s;
  box-sizing: content-box;
}

.ai-collab-badge:hover .ai-icon-mini {
  border-color: #5c4fa3;
}

.ai-icon-mini:hover {
  transform: translateY(-3px) scale(1.25);
  z-index: 10;
}

/* 아이콘별 개별 배경색 */
.ai-icon-gemini { background: #1a73e8; }
.ai-icon-claude { background: #d97736; }
.ai-icon-critic_algebra { background: #2e7d32; }
.ai-icon-critic_geometry { background: #a96f36; }
.ai-icon-deepseek { background: #1f4bd8; }
.ai-icon-grok { background: #111111; }

.ai-info-chk {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.ai-q-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 13px;
  height: 13px;
  background: rgba(71, 61, 128, 0.08);
  color: var(--deep);
  border-radius: 50%;
  font-size: 8px;
  font-weight: 900;
  transition: all 0.2s;
}

.ai-collab-badge:hover .ai-q-mark {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}

@media print {
  .ai-collab-badge {
    border: none;
    background: none !important;
    color: var(--ink) !important;
    padding: 0;
    box-shadow: none;
  }
  .ai-icon-mini {
    border: none;
  }
}

/* ===== 필진 카드 ===== */
.writers{display:grid; gap:18px; grid-template-columns:repeat(auto-fill,minmax(250px,1fr));}
.wcard{background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  padding:22px; box-shadow:var(--sh-s); transition:.2s;}
.wcard:hover{transform:translateY(-3px); box-shadow:var(--sh);}
.wcard .top{display:flex; gap:13px; align-items:center; margin-bottom:12px;}
.wcard .av{width:48px; height:48px; font-size:1.2rem;}
.wcard .nm{font-family:var(--serif); font-weight:700; font-size:1.12rem;}
.wcard .nm small{font-weight:400; color:var(--faint); font-size:.72rem; margin-left:5px;}
.wcard .ro{font-size:.82rem; color:var(--mut);}
.wcard .tl{font-family:var(--serif); color:var(--deep-d); font-size:.96rem; margin:10px 0 12px;}
.wcard .bio{font-size:.86rem; color:var(--mut); margin-bottom:14px;}
.gauge{margin-bottom:10px;}
.gauge .lab{display:flex; justify-content:space-between; font-size:.74rem; color:var(--mut); margin-bottom:4px;}
.gauge .track{height:7px; background:var(--cream); border-radius:4px; position:relative;}
.gauge .dot{position:absolute; top:50%; width:13px; height:13px; border-radius:50%;
  background:var(--accent); border:2px solid #fff; box-shadow:var(--sh-s); transform:translate(-50%,-50%);}
.wcard .aff{display:inline-block; margin-top:6px; font-size:.7rem; font-weight:700; letter-spacing:.06em;
  color:var(--deep); background:var(--mint); padding:3px 9px; border-radius:var(--r-pill);}

/* ===== 푸터 ===== */
footer{background:var(--deep-d); color:#e9e6f2; padding:44px 0 30px; margin-top:20px;}
footer .wrap{display:grid; gap:22px;}
.foot-brand{font-family:var(--serif); font-size:1.3rem; font-weight:700; color:#fff;}
.foot-label{background:rgba(255,255,255,.08); border-radius:var(--r-s); padding:14px 18px;
  font-size:.86rem; line-height:1.7;}
.foot-label b{color:#fff;}
.foot-meta{font-size:.78rem; color:rgba(255,255,255,.62); line-height:1.8;}
.foot-axes{font-size:.76rem; color:rgba(255,255,255,.5);}
.foot-share{display:flex; gap:18px; align-items:center; background:rgba(255,255,255,.06);
  border-radius:var(--r); padding:18px 20px;}
.foot-share .qr{width:108px; height:108px; border-radius:12px; background:#fff; padding:8px; flex:0 0 auto;}
.fs-t{font-family:var(--serif); font-weight:700; font-size:1.1rem; color:#fff; margin-bottom:4px;}
.fs-d{font-size:.85rem; color:rgba(255,255,255,.72); margin-bottom:11px;}
.fs-url{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.fs-url .u{font-size:.85rem; color:#fff; background:rgba(255,255,255,.12); padding:6px 12px; border-radius:999px;}
.fs-url button{font-size:.8rem; background:var(--accent); color:#fff; border:none; border-radius:999px;
  padding:7px 15px; cursor:pointer; font-family:inherit; font-weight:600;}
.fs-url button:hover{background:var(--accent-d);}
@media(max-width:520px){ .foot-share{flex-direction:column; text-align:center;} .fs-url{justify-content:center;} }

/* ===== 살아있는 토론(댓글) ===== */
.cmts{margin-top:30px; padding-top:22px; border-top:1px dashed var(--line);}
.cmts-head{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px;}
.cmts-head .t{font-family:var(--serif); font-weight:700; font-size:1.05rem; color:var(--deep-d);}
.cmts-head .t small{font-family:var(--sans); font-weight:500; color:var(--faint); font-size:.78rem; margin-left:7px;}
.ask-btn{font-family:var(--sans); font-size:.78rem; font-weight:600; color:var(--deep);
  background:var(--mint); border:none; border-radius:var(--r-pill); padding:7px 13px; cursor:pointer;
  display:inline-flex; align-items:center; gap:6px;}
.ask-btn:hover{background:#d6cfe8;}
.ask-btn svg{width:14px; height:14px; stroke:currentColor; stroke-width:2; fill:none;}
.cmt-compose{display:flex; gap:10px; margin-bottom:18px;}
.cmt-compose .av{width:34px; height:34px; flex:0 0 auto;}
.cmt-compose .grow{flex:1;}
.cmt-ta{width:100%; min-height:46px; border:1px solid var(--line); border-radius:var(--r-s);
  padding:10px 12px; font-family:var(--sans); font-size:.92rem; resize:vertical; background:var(--card); color:var(--ink);}
.cmt-ta:focus{outline:none; border-color:var(--deep);}
.cmt-actions{display:flex; align-items:center; justify-content:space-between; margin-top:8px;}
.cmt-actions .hint{font-size:.74rem; color:var(--faint);}
.cmt-post{background:var(--deep); color:#fff; border:none; border-radius:var(--r-pill);
  padding:8px 17px; font-family:var(--sans); font-weight:600; font-size:.84rem; cursor:pointer;}
.cmt-post:hover{background:var(--deep-d);} .cmt-post:disabled{opacity:.5; cursor:default;}
.cmt-login{font-size:.86rem; color:var(--mut); background:var(--cream); border:1px dashed var(--line);
  border-radius:var(--r-s); padding:13px 15px; margin-bottom:16px; cursor:pointer;}
.cmt-login b{color:var(--deep);}
.cmt-list{display:flex; flex-direction:column; gap:14px;}
.cmt{display:flex; gap:11px;}
.cmt .av{width:34px; height:34px; flex:0 0 auto;}
.cmt .pic{width:34px; height:34px; border-radius:50%; object-fit:cover; flex:0 0 auto;}
.cmt-main{flex:1; min-width:0;}
.cmt-by{display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-bottom:3px;}
.cmt-by .nm{font-weight:700; font-size:.88rem;}
.cmt-by .badge{font-size:.64rem; font-weight:700; letter-spacing:.05em; padding:2px 7px; border-radius:var(--r-pill);}
.cmt-by .badge.ai{color:#7a5ea8; background:#ece3f3;}
.cmt-by .badge.hu{color:var(--deep); background:var(--mint);}
.cmt-by .tm{font-size:.72rem; color:var(--faint);}
.cmt-text{font-size:.93rem; white-space:pre-wrap; line-height:1.7;}
.cmt-foot{display:flex; gap:14px; margin-top:5px;}
.cmt-foot button{background:none; border:none; color:var(--faint); font-size:.74rem; cursor:pointer; padding:0;}
.cmt-foot button:hover{color:var(--accent-d);}
.cmt-empty{color:var(--faint); font-size:.86rem; padding:8px 0 4px;}
.ask-pop{background:var(--card); border:1px solid var(--line); border-radius:var(--r-s);
  box-shadow:var(--sh); padding:6px; margin:0 0 14px; display:none; flex-wrap:wrap; gap:4px;}
.ask-pop.open{display:flex;}
.ask-pop button{font-size:.8rem; background:var(--cream); border:none; border-radius:var(--r-pill);
  padding:7px 12px; cursor:pointer; color:var(--ink);}
.ask-pop button:hover{background:var(--mint); color:var(--deep);}

/* ===== 로그인 / 내 생각 모달 ===== */
.modal-overlay{position:fixed; inset:0; background:rgba(28,24,30,.46); opacity:0;
  visibility:hidden; transition:opacity .22s; z-index:200; display:grid; place-items:center; padding:20px;}
.modal-overlay.open{opacity:1; visibility:visible;}
.modal{background:var(--paper); border-radius:var(--r); width:min(440px,100%); max-height:88vh;
  overflow-y:auto; box-shadow:0 24px 70px rgba(28,24,30,.3); transform:translateY(10px);
  transition:transform .22s; padding:28px 26px;}
.modal-overlay.open .modal{transform:translateY(0);}
.modal .mhead{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:6px;}
.modal h3{font-family:var(--serif); font-size:1.35rem; color:var(--deep-d);}
.modal .mx{background:none; border:none; cursor:pointer; color:var(--faint); padding:4px; line-height:0;}
.modal .mx svg{width:20px; height:20px; stroke:currentColor; stroke-width:2; fill:none;}
.modal .msub{color:var(--mut); font-size:.92rem; margin:4px 0 20px;}
.gbtn{display:flex; align-items:center; justify-content:center; gap:10px; width:100%;
  padding:13px; border:1px solid var(--line); border-radius:var(--r-pill); background:var(--card);
  font-family:var(--sans); font-size:.95rem; font-weight:600; color:var(--ink); cursor:pointer;}
.gbtn:hover{border-color:var(--deep); box-shadow:var(--sh-s);}
.gbtn svg{width:19px; height:19px;}
/* 이메일 직접 가입/로그인 폼 */
.auth-tabs{display:flex; gap:6px; margin:2px 0 14px;}
.at-tab{flex:1; padding:9px; border:1px solid var(--line); background:var(--card); border-radius:10px; font-family:var(--sans); font-weight:700; font-size:.9rem; color:var(--mut); cursor:pointer;}
.at-tab.on{background:var(--deep); color:#fff; border-color:var(--deep);}
.auth-field{margin-bottom:9px;}
.auth-field input{width:100%; box-sizing:border-box; padding:12px 13px; border:1px solid var(--line); border-radius:10px; font-family:var(--sans); font-size:.95rem; background:var(--card); color:var(--ink);}
.auth-field input:focus{outline:none; border-color:var(--deep); box-shadow:var(--sh-s);}
.auth-msg{min-height:17px; font-size:.82rem; margin:1px 2px 8px; color:var(--mut);}
.auth-msg.err{color:#c0564a;}
.auth-msg.ok{color:#3f8f6a;}
.ebtn{width:100%; padding:13px; border:none; border-radius:var(--r-pill); background:var(--deep); color:#fff; font-family:var(--sans); font-weight:800; font-size:1rem; cursor:pointer;}
.ebtn:hover{background:var(--deep-d);}
.auth-or{display:flex; align-items:center; text-align:center; color:var(--faint); font-size:.8rem; margin:14px 0 10px;}
.auth-or::before,.auth-or::after{content:""; flex:1; height:1px; background:var(--line);}
.auth-or span{padding:0 12px;}
.me-row{display:flex; align-items:center; gap:12px; margin-bottom:18px;}
.me-row .pic{width:46px; height:46px; border-radius:50%; object-fit:cover;}
.me-row .pic-ini{width:46px; height:46px; border-radius:50%; display:grid; place-items:center;
  font-family:var(--serif); font-weight:700; color:#fff; background:linear-gradient(135deg,var(--deep),var(--accent));}
.me-row .nm{font-weight:700;} .me-row .em{font-size:.8rem; color:var(--faint);}
.me-row .out{margin-left:auto; font-size:.8rem; color:var(--mut); background:none;
  border:1px solid var(--line); border-radius:var(--r-pill); padding:6px 12px; cursor:pointer;}
.me-row .out:hover{border-color:var(--accent-d); color:var(--accent-d);}
.think-lab{font-family:var(--serif); font-weight:700; color:var(--ink); margin-bottom:8px; font-size:1rem;}
.think-ta{width:100%; min-height:84px; border:1px solid var(--line); border-radius:var(--r-s);
  padding:12px 14px; font-family:var(--sans); font-size:.95rem; resize:vertical; background:var(--card); color:var(--ink);}
.think-ta:focus{outline:none; border-color:var(--deep);}
.think-save{margin-top:10px; background:var(--deep); color:#fff; border:none; border-radius:var(--r-pill);
  padding:10px 20px; font-family:var(--sans); font-weight:600; font-size:.9rem; cursor:pointer;}
.think-save:hover{background:var(--deep-d);}
.think-list{margin-top:20px; display:flex; flex-direction:column; gap:10px;}
.think-card{background:var(--card); border:1px solid var(--line); border-radius:var(--r-s); padding:12px 14px;}
.think-card .t{font-size:.93rem; white-space:pre-wrap;}
.think-card .d{font-size:.72rem; color:var(--faint); margin-top:6px; display:flex; justify-content:space-between;}
.think-card .del{background:none; border:none; color:var(--faint); cursor:pointer; font-size:.72rem;}
.think-card .del:hover{color:var(--accent-d);}
.think-empty{color:var(--faint); font-size:.88rem; text-align:center; padding:16px 0;}
.think-note{font-size:.74rem; color:var(--faint); margin-top:14px; text-align:center;}
.pay-price{font-family:var(--serif); font-weight:700; font-size:1.5rem; color:var(--deep-d); margin:6px 0 16px;}
.pay-price small{font-family:var(--sans); font-weight:500; font-size:.78rem; color:var(--mut); display:block; margin-top:4px;}
.pay-acc{background:var(--cream); border-radius:var(--r-s); padding:14px 16px; margin-bottom:16px;}
.pay-acc .r{display:flex; justify-content:space-between; gap:12px; padding:4px 0; font-size:.92rem;}
.pay-acc .r span{color:var(--mut);} .pay-acc .r b{color:var(--ink);}
.pay-lab{display:block; font-size:.82rem; color:var(--mut); margin-bottom:6px; font-weight:600;}
.share-qr{display:flex; flex-direction:column; align-items:center; gap:8px; margin:6px 0 18px;}
.share-qr img{border:1px solid var(--line); border-radius:14px; background:#fff; padding:8px;}
.share-cap{font-size:.8rem; color:var(--mut);}
.share-url{display:flex; align-items:center; gap:8px; justify-content:center; flex-wrap:wrap; margin-bottom:16px;}
.share-url .u{font-size:.9rem; color:var(--ink); background:var(--cream); padding:7px 13px; border-radius:999px;}
.share-url button{font-size:.84rem; background:var(--accent); color:#fff; border:none; border-radius:999px; padding:8px 16px; cursor:pointer; font-family:inherit; font-weight:600;}
.share-url button:hover{background:var(--accent-d);}
.share-install{width:100%; background:var(--deep); color:#fff; border:none; border-radius:var(--r-pill); padding:13px; font-family:inherit; font-size:.96rem; font-weight:700; cursor:pointer;}
.share-install:hover{background:var(--deep-d);}
.share-ios{background:var(--cream); border:1px dashed var(--line); border-radius:var(--r-s); padding:13px 15px; font-size:.88rem; color:var(--mut); text-align:center;}
.share-ios b{color:var(--deep-d);}
.gate{background:linear-gradient(135deg,var(--cream),var(--mint)); border:1px solid var(--line);
  border-radius:var(--r-s); padding:15px 17px; margin-bottom:16px; cursor:pointer;}
.gate b{color:var(--deep-d);} .gate .arrow{color:var(--accent-d); font-weight:700;}
.gate:hover{border-color:var(--deep);}

/* ===== 인쇄 2모드 ===== */
@media print{
  .topbar,.cover-dots,.printbtns,.toc-link,.masthead{display:none !important;}
  body{background:#fff; font-size:11.5pt; line-height:1.55;}
  .cover{height:240px; page-break-after:avoid;}
  section{padding:18px 0; page-break-inside:avoid;}
  .feature{page-break-inside:auto;}
  .wcard,.qa-item,.bubble,.decision,.prob,.myth-card{box-shadow:none;}
  a{text-decoration:none; color:inherit;}
  .feat-art,.photo-art{box-shadow:none;}
  .fold{border-color:#ccc;} .fold>summary::before{display:none;}
  .fold .fold-body{display:block !important;}
}
@media print{
  body.print-eco{font-size:10pt; line-height:1.42; filter:grayscale(1);}
  body.print-eco .cover{height:150px;}
  body.print-eco .feat-art,body.print-eco .photo-art{height:120px;}
  body.print-eco .body,body.print-eco .letter,body.print-eco .rt-intro{
    column-count:2; column-gap:18px;}
  body.print-eco .pullquote{break-inside:avoid;}
  body.print-eco section{padding:10px 0;}
  body.print-eco .writers{grid-template-columns:repeat(2,1fr); gap:8px;}
  body.print-eco .wcard{padding:10px;}
  @page{margin:10mm;}
}

/* =====================================================================
   내 노트 (복습 + 생각) — 모든 잡지·모든 글에 항상 따라다니는 노트
   ※ mag-notes.js 와 한 쌍. 색은 --deep/--accent 토큰을 따라 잡지색에 맞춤.
   ===================================================================== */
.note-fab{position:fixed; right:18px; bottom:18px; z-index:120; display:inline-flex; align-items:center; gap:8px;
  background:var(--deep); color:#fff; border:none; border-radius:999px; padding:13px 18px; cursor:pointer;
  box-shadow:0 8px 24px rgba(50,40,70,.28); font-family:var(--sans); font-weight:700; font-size:.9rem;}
.note-fab:hover{background:var(--deep-d);}
.note-fab svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none;}
.note-fab .nbadge{background:var(--accent); color:#fff; border-radius:999px; font-size:.72rem; padding:1px 7px; min-width:18px; text-align:center; line-height:1.5;}
.note-ov{position:fixed; inset:0; background:rgba(28,24,30,.45); opacity:0; visibility:hidden; transition:.2s; z-index:130;}
.note-ov.open{opacity:1; visibility:visible;}
.note-sheet{position:fixed; right:0; top:0; height:100%; width:min(420px,92vw); background:var(--paper);
  border-left:1px solid var(--line); z-index:131; transform:translateX(100%); transition:transform .3s cubic-bezier(.2,.8,.2,1);
  display:flex; flex-direction:column; box-shadow:-12px 0 40px rgba(28,24,30,.18);}
.note-sheet.open{transform:translateX(0);}
.note-head{display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--line);}
.note-head .t{font-family:var(--serif); font-weight:700; font-size:1.12rem; color:var(--deep-d);}
.note-head .t small{display:block; font-family:var(--sans); font-weight:500; font-size:.7rem; color:var(--mut); margin-top:3px;}
.note-head .x{background:none;border:none;cursor:pointer;color:var(--mut);font-size:1.3rem;line-height:1;}
.note-tabs{display:flex; gap:6px; padding:14px 20px 0;}
.note-tab{flex:1; text-align:center; padding:10px; background:var(--card); border:1px solid var(--line);
  border-radius:11px 11px 0 0; cursor:pointer; font-family:var(--sans); font-weight:700; font-size:.92rem; color:var(--mut);}
.note-tab.on{background:var(--deep); color:#fff; border-color:var(--deep);}
.note-body{flex:1; overflow-y:auto; padding:16px 20px;}
.note-compose{background:var(--card); border:1px solid var(--line); border-radius:var(--r-s); padding:13px 15px; margin-bottom:14px;}
.note-src{font-size:.74rem; color:var(--accent-d); font-weight:700; margin-bottom:7px;}
.note-ta{width:100%; min-height:64px; border:1px solid var(--line); border-radius:10px; padding:11px 13px;
  font-family:var(--sans); font-size:.93rem; resize:vertical; background:var(--paper); color:var(--ink);}
.note-ta:focus{outline:none;border-color:var(--deep);}
.note-save{margin-top:9px; background:var(--deep); color:#fff; border:none; border-radius:999px; padding:9px 20px; font-weight:700; cursor:pointer; font-size:.86rem; font-family:var(--sans);}
.note-save:hover{background:var(--deep-d);}
.note-card{background:var(--card); border:1px solid var(--line); border-radius:var(--r-s); padding:13px 15px; margin-bottom:10px; box-shadow:var(--sh-s);}
.note-card .txt{font-size:.93rem; white-space:pre-wrap; line-height:1.6; color:var(--ink);}
.note-card .meta{display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:.72rem; color:var(--faint); margin-top:8px;}
.note-card .meta .mag{color:var(--deep); font-weight:700;}
.note-card .del{background:none;border:none;color:var(--faint);cursor:pointer;font-size:.72rem;padding:0;}
.note-card .del:hover{color:var(--accent-d);}
.note-empty{color:var(--faint); font-size:.88rem; text-align:center; padding:26px 10px; line-height:1.6;}
.note-dots{display:flex; gap:9px; align-items:center; margin-top:11px; flex-wrap:wrap;}
.note-dot{display:inline-flex; align-items:center; gap:5px; font-size:.75rem; color:var(--mut); cursor:pointer; user-select:none;}
.note-dot b{width:15px;height:15px;border-radius:50%;border:2px solid #d8d2dd; display:inline-block; transition:.15s;}
.note-dot.done b{background:var(--deep); border-color:var(--deep);}
.note-dot.done{color:var(--deep-d); font-weight:700;}
.note-ebb{font-size:.72rem; color:var(--faint); margin-top:9px; cursor:help; border-top:1px dashed var(--line); padding-top:8px; line-height:1.5;}
.note-ebb b{color:var(--accent-d);}
.note-login{font-size:.82rem; color:var(--mut); background:var(--cream); border:1px dashed var(--line); border-radius:var(--r-s); padding:11px 13px; margin-bottom:14px; cursor:pointer; line-height:1.5;}
.note-login b{color:var(--deep);}
.note-sync{font-size:.72rem; color:var(--faint); text-align:center; padding:10px 0 2px;}
/* 콘텐츠 옆 노트 액션 바 (글·문제·증명마다) */
.note-actions{display:flex; gap:8px; margin:14px 0 2px; flex-wrap:wrap;}
.note-actions button{font-size:.78rem; font-weight:700; border:1px solid var(--line); background:var(--card); color:var(--deep);
  border-radius:999px; padding:7px 14px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; font-family:var(--sans);}
.note-actions button:hover{background:var(--mint); border-color:var(--deep);}
.note-actions button.added{background:var(--mint); color:var(--deep-d); border-color:var(--deep);}
.note-actions svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none;}
@media print{ .note-fab,.note-ov,.note-sheet,.note-actions{display:none !important;} }

/* AI 작성·검수 표기 띠 — 모든 글 위에 반드시(잡지 공통 표준) */
.ai-disclosure{display:flex; align-items:center; gap:11px; flex-wrap:wrap; max-width:var(--maxw);
  margin:0 auto; padding:11px 22px; background:var(--cream); border-bottom:1px solid var(--line);
  font-size:.82rem; color:var(--mut); line-height:1.5;}
.aid-badge{flex:0 0 auto; font-weight:800; font-size:.72rem; letter-spacing:.02em; color:#fff;
  background:linear-gradient(135deg,var(--deep),var(--accent)); padding:4px 11px; border-radius:var(--r-pill);}
.aid-text{flex:1; min-width:200px;}
@media print{ .ai-disclosure{background:none; border-bottom:1px solid #ccc; color:#333;} .aid-badge{background:none; color:#000; border:1px solid #000;} }

/* 대문 브랜드 멘트 (cover masthead tagline) */
.mh-tagline{font-family:var(--serif); font-weight:700; font-size:clamp(1.15rem,2.8vw,1.85rem);
  color:var(--deep-d); margin-top:8px; line-height:1.3; letter-spacing:.01em;
  text-shadow:0 1px 16px rgba(255,255,255,.65);}
@media print{ .mh-tagline{display:none;} }

/* 목차 '모든 호' 보관함 */
.toc-arch-h{padding:16px 22px 7px; font-family:var(--serif); font-weight:700; font-size:.82rem;
  color:var(--accent-d); letter-spacing:.04em; border-top:1px solid var(--line); margin-top:6px;}
.toc-arch-adm{font-size:.72rem;}
.toc-item.on{background:var(--mint);}
.toc-item.on .nm{color:var(--deep-d);}

/* 이주의 문제 — 교차검증 안내 + C/D 풀이 라벨 */
.verify-note{margin-top:14px; font-size:.9rem; color:var(--deep-d); background:var(--mint);
  border-radius:var(--r-pill); padding:9px 18px; display:inline-block;}
.verify-note b{color:var(--accent-d);}
.sol-label{font-family:var(--serif); font-weight:700; font-size:.92rem; color:var(--deep);
  margin:14px 0 6px; padding-left:2px; border-left:3px solid var(--deep); padding-left:9px;}
.sol-label.sol-d{color:#1f4bd8; border-left-color:#1f4bd8; margin-top:18px;}

/* 연라이프의 다른 잡지 (마지막 안내) */
.sib-grid{display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.sib-card{display:flex; flex-direction:column; gap:4px; text-decoration:none; color:#fff;
  border-radius:var(--r); padding:24px; box-shadow:var(--sh-s); transition:.2s;}
.sib-card:hover{transform:translateY(-3px); box-shadow:var(--sh);}
.sib-t{font-family:var(--serif); font-weight:700; font-size:1.35rem; color:#fff;}
.sib-sub{font-size:.74rem; letter-spacing:.14em; color:rgba(255,255,255,.8); font-weight:700; text-transform:uppercase;}
.sib-desc{font-size:.92rem; color:rgba(255,255,255,.9); line-height:1.6; margin-top:8px; flex:1;}
.sib-go{margin-top:14px; font-family:var(--serif); font-weight:700; font-size:.95rem; color:#fff;}
.sib-foot{text-align:center; font-size:.84rem; color:var(--mut); margin-top:18px;}
.sib-foot a{color:var(--deep); font-weight:700;}
@media print{ .sib-card{box-shadow:none;} }

/* 필진 AI 명시 — 카드 배지 + 섹션 안내 (실존 인물 오해 방지) */
.kindbadge{display:inline-flex; align-items:center; gap:4px; border-radius:6px; padding:2px 9px;
  font-size:11px; font-weight:800; vertical-align:middle; margin-left:5px;}
.kb-ai{background:#ece3f3; color:#7a5ea8;}
.ai-note{max-width:var(--narrow); margin:0 auto 24px; text-align:center; font-size:.86rem;
  color:var(--mut); background:var(--cream); border:1px solid var(--line); border-radius:var(--r-s);
  padding:12px 16px; line-height:1.65;}
.ai-note b{color:var(--deep);}
@media print{ .ai-note{background:none;} }

/* =====================================================================
   선생님 검수 모드 (mag-review.js) — 컴맹·스마트폰 약한 분 기준 큰 UI
   ===================================================================== */
.trv-ov{position:fixed; inset:0; z-index:300; background:var(--paper); overflow-y:auto;
  display:flex; flex-direction:column; -webkit-overflow-scrolling:touch;}
.trv-top{position:sticky; top:0; display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px; background:var(--deep); color:#fff;}
.trv-prog{font-weight:800; font-size:1.05rem;}
.trv-exit{background:rgba(255,255,255,.16); color:#fff; border:none; border-radius:999px;
  padding:10px 16px; font-size:.95rem; font-weight:700; cursor:pointer; font-family:var(--sans);}
.trv-card{background:var(--card); margin:16px; border:1px solid var(--line); border-radius:var(--r);
  padding:22px 20px; box-shadow:var(--sh-s);}
.trv-kind{display:inline-block; font-size:.86rem; font-weight:800; color:var(--deep);
  background:var(--mint); border-radius:999px; padding:5px 14px; margin-bottom:12px;}
.trv-title{font-family:var(--serif); font-weight:700; font-size:1.5rem; color:var(--ink); line-height:1.35; margin-bottom:14px;}
.trv-body{font-size:1.12rem; line-height:1.9; color:var(--ink); white-space:normal;}
.trv-actions{margin:4px 16px 40px; background:var(--cream); border-radius:var(--r); padding:22px 18px; text-align:center;}
.trv-q{font-family:var(--serif); font-weight:700; font-size:1.2rem; color:var(--deep-d); margin-bottom:16px;}
.trv-thumb{font-size:2.4rem; line-height:1; background:#fff; border:3px solid var(--line); border-radius:22px;
  padding:16px 30px; cursor:pointer; display:inline-flex; flex-direction:column; align-items:center; gap:6px;}
.trv-thumb span{font-size:.95rem; font-weight:800; color:var(--mut);}
.trv-thumb.on{background:var(--mint); border-color:var(--deep);}
.trv-thumb.on span{color:var(--deep-d);}
.trv-stars-label{font-weight:800; color:var(--mut); margin:22px 0 8px; font-size:1rem;}
.trv-stars{display:flex; justify-content:center; gap:6px;}
.trv-star{font-size:2.7rem; line-height:1; background:none; border:none; cursor:pointer; color:#dcd5c5; padding:2px 4px;}
.trv-star.on{color:#f4b740;}
.trv-next{display:block; width:100%; margin-top:26px; background:var(--deep); color:#fff; border:none;
  border-radius:16px; padding:20px; font-size:1.25rem; font-weight:800; cursor:pointer; font-family:var(--sans);}
.trv-next:active{background:var(--deep-d);}
.trv-toast{position:fixed; left:50%; bottom:28px; transform:translateX(-50%) translateY(20px); opacity:0;
  background:var(--deep-d); color:#fff; padding:14px 26px; border-radius:999px; font-size:1.05rem; font-weight:700;
  transition:.2s; pointer-events:none; z-index:310;}
.trv-toast.on{opacity:1; transform:translateX(-50%) translateY(0);}
.trv-donecard{text-align:center; margin-top:40px;}
.trv-done{font-family:var(--serif); font-size:1.4rem; line-height:1.7; color:var(--deep-d); margin-bottom:22px;}
.trv-again{display:block; width:100%; background:var(--accent); color:#fff; border:none; border-radius:14px;
  padding:16px; font-size:1.05rem; font-weight:700; cursor:pointer; margin-bottom:12px; font-family:var(--sans);}
@media print{ .trv-ov{display:none !important;} }

/* masthead 작은 머리말 (살아있는 교과서 등) */
.mh-pre{font-family:var(--sans); font-weight:800; font-size:.78rem; letter-spacing:.06em; color:var(--accent-d);}
.mh-pre:empty{display:none;}

/* 검수 선생님 모집 */
.recruit-perks{display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin:14px 0 18px;}
.recruit-perks span{font-size:.86rem; font-weight:700; color:var(--deep); background:var(--mint); border-radius:999px; padding:7px 15px;}
.recruit-btn{display:inline-block; background:var(--deep); color:#fff; text-decoration:none; font-weight:800;
  border-radius:999px; padding:14px 28px; font-size:1rem;}
.recruit-btn:hover{background:var(--deep-d);}
