@font-face{font-family:'Paperlogy';src:url(../fonts/Paperlogy-500.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Paperlogy';src:url(../fonts/Paperlogy-700.woff2) format('woff2');font-weight:600 700;font-display:swap}
@font-face{font-family:'Paperlogy';src:url(../fonts/Paperlogy-800.woff2) format('woff2');font-weight:800 900;font-display:swap}
/* Paperlogy에 없는 글자(낱말 입력에 나오는 드문 한글 등)만 이 글꼴이 대신함 — 필요할 때만 내려받음 */
@font-face{font-family:'KRFallback';src:url(../fonts/NotoSansKR-fallback.woff2) format('woff2');font-weight:500 800;font-display:swap}
:root{
  --paper:#f4eee2;--card:#fffdf8;--ink:#1d1b17;--ink2:#4a443a;--muted:#675f50;--line:#e4d9c3;
  --acc:#d6452a;--acc2:#b53720;--hi:#ffd54a;--ok:#2f8a63;--okl:#dcf1e6;--no:#c0392b;--nol:#fbe2dd;
  --navy:#1f2a44;--teal:#1f7a78;--blue:#4b5f96;--plum:#8a4fb0;--pink:#ff7aa8;--gold:#e8a800;
  --sh:0 30px 50px -30px rgba(70,45,10,.45),0 2px 0 rgba(255,255,255,.9) inset;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;background:var(--paper)}
body{font-family:'Paperlogy','KRFallback','Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic',sans-serif;font-weight:500;color:var(--ink);
  word-break:keep-all;overflow-wrap:break-word;line-break:strict;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4,p{text-wrap:pretty}h1,h2,h3{text-wrap:balance;font-weight:800;line-height:1.25}
button,input,textarea,select{font:inherit;color:inherit;word-break:keep-all;overflow-wrap:break-word}
button{border:0;background:none;cursor:pointer}
a{color:inherit;text-decoration:none}
img{display:block}
:focus-visible{outline:4px solid var(--acc);outline-offset:3px;border-radius:12px}

/* 무대 1920x1080 */
#stage{position:absolute;left:50%;top:50%;width:1920px;height:1080px;transform-origin:center;overflow:hidden;background:var(--paper) url(../images/bg.webp) center/cover no-repeat}
#rotate{position:fixed;inset:0;z-index:99;background:var(--ink);color:#fff;display:grid;place-items:center;text-align:center;font-size:22px;font-weight:700;line-height:1.7}
#rotate[hidden],[hidden]{display:none!important}
#top{position:absolute;left:0;right:0;top:0;height:84px;padding:0 24px;background:#fffaf0;border-bottom:3px solid #d9cdb2;box-shadow:0 8px 18px -10px rgba(60,40,10,.35);box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;z-index:30;gap:14px}
#app{position:absolute;inset:0}
.scr{position:absolute;inset:0;padding:112px 64px 56px;display:flex;gap:36px;}
.scr>*{min-width:0}

/* 상단 바 */
.brand{display:flex;align-items:center;gap:12px;flex:none}
.mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#ee5a39,#b53720);box-shadow:0 8px 16px -6px rgba(200,60,30,.7);position:relative;flex:none}
.mark::before{content:"";position:absolute;left:8px;top:8px;width:22px;height:22px;background:#fff;border-radius:3px;
  background-image:linear-gradient(#d6452a 0 0),linear-gradient(#8a8272 0 0),linear-gradient(#8a8272 0 0);background-size:14px 5px,14px 2px,9px 2px;background-position:4px 3px,4px 11px,4px 15px;background-repeat:no-repeat}
.wordmark{font-size:28px;font-weight:800;letter-spacing:-.02em;white-space:nowrap}
.top-r{display:flex;align-items:center;gap:10px;flex:none}
.tbtn{height:46px;padding:0 18px;border-radius:99px;background:rgba(255,253,248,.85);border:1.5px solid var(--line);font-weight:700;font-size:21px;display:inline-flex;align-items:center;gap:8px;transition:transform .15s,box-shadow .2s,border-color .2s;white-space:nowrap}
.tbtn:hover{transform:translateY(-2px);box-shadow:0 10px 18px -12px rgba(60,40,10,.6);border-color:var(--ink)}
.tbtn.ic[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.logoLink{display:block;margin-left:6px;padding-left:16px;border-left:1.5px solid var(--line)}
.brandlogo{height:46px;width:auto}
.in-title #top>.brand,.in-title #top .tbtn:not(#fsBtn),.in-title .logoLink,.in-title #steps,.in-title #hud{display:none}
.ico{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex:none}
#steps{display:flex;gap:6px;align-items:center}
.sg{height:42px;padding:0 16px 0 7px;border-radius:99px;background:rgba(255,253,248,.85);border:1.5px solid var(--line);font-size:21px;font-weight:800;color:var(--muted);display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.sg i{width:28px;height:28px;border-radius:50%;background:#ddd2b8;color:#fff;display:grid;place-items:center;font-style:normal;font-size:21px}
.sg.on{background:var(--ink);color:#fff;border-color:var(--ink)}.sg.on i{background:var(--hi);color:var(--ink)}
.sg.dn{color:var(--ink2)}.sg.dn i{background:var(--ok)}
/* 구독자 HUD (Dribbble 교육 게임 앱의 코인·레벨 표시를 참고) */
#hud{display:flex;align-items:center;gap:10px;height:48px;padding:0 18px 0 6px;border-radius:99px;background:#fff;border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);flex:none}
#hud .coin{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#ffe27a,#e8a800);border:2.5px solid var(--ink);display:grid;place-items:center;color:var(--acc)}
#hud .coin svg{width:18px;height:18px}
#hud b{font-size:26px;font-weight:800;min-width:30px;text-align:right;line-height:1}
#hud small{font-size:21px;font-weight:800;color:var(--muted)}
#hud .hb{width:120px;height:14px;border-radius:99px;background:#eadfca;border:2px solid var(--ink);overflow:hidden}
#hud .hb u{display:block;height:100%;width:10%;background:linear-gradient(90deg,#ee5a39,#ffb020);transition:width .8s cubic-bezier(.2,.8,.2,1)}
#hud{position:relative}
#hud.bump{animation:hudbump .6s both}
@keyframes hudbump{0%{transform:scale(1)}30%{transform:scale(1.14)}60%{transform:scale(.97)}100%{transform:scale(1)}}
#hud.bump .coin{animation:coinspin .7s both}
@keyframes coinspin{0%{transform:rotateY(0)}100%{transform:rotateY(720deg)}}
#hud.bump b{color:var(--acc)}
#hud.goal{box-shadow:0 4px 0 var(--ink),0 0 0 6px var(--hi),0 0 28px 8px rgba(255,213,74,.8)}
.hplus{position:absolute;left:50%;top:-6px;transform:translateX(-50%);font-style:normal;font-size:30px;font-weight:800;color:#fff;background:var(--ok);border:3px solid var(--ink);border-radius:99px;padding:0 14px;animation:hplus 1.3s ease-out both;pointer-events:none;white-space:nowrap;z-index:5}
.hplus.neg{background:var(--no)}
@keyframes hplus{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}20%{opacity:1;transform:translate(-50%,44px) scale(1.1)}100%{opacity:0;transform:translate(-50%,86px) scale(1)}}
.fly{position:absolute;z-index:85;font-style:normal;font-size:46px;font-weight:800;color:#fff;background:var(--ok);border:4px solid var(--ink);border-radius:99px;padding:2px 24px;box-shadow:0 6px 0 var(--ink);transform:translate(-50%,-50%) scale(.3);opacity:0;pointer-events:none;white-space:nowrap;transition:transform .4s cubic-bezier(.2,.9,.3,1.3),opacity .2s}
.fly.neg{background:var(--no)}
.fly.fly-in{opacity:1;transform:translate(-50%,-50%) scale(1.15)}
.fly.fly-go{opacity:1;transition:transform .8s cubic-bezier(.55,0,.25,1)}
.pulse{animation:pulse .7s both}
@keyframes pulse{0%,100%{transform:scale(1)}40%{transform:scale(1.5)}}

/* 버튼 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:64px;padding:0 38px;border-radius:99px;font-size:24px;font-weight:800;color:#fff;
  background:linear-gradient(180deg,#ee5a39,#cf3d20);box-shadow:0 7px 0 #a82e15,0 18px 26px -12px rgba(190,50,20,.65);
  transition:transform .12s,box-shadow .12s,filter .2s;position:relative;overflow:hidden;white-space:nowrap}
.btn::after{content:"";position:absolute;top:0;bottom:0;width:60px;left:-90px;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-18deg);animation:glint 4.2s ease-in-out infinite}
@keyframes glint{0%,60%{left:-90px}100%{left:130%}}
.btn:hover{filter:brightness(1.06)}
.btn:active{transform:translateY(5px);box-shadow:0 2px 0 #a82e15,0 8px 12px -8px rgba(190,50,20,.6)}
.btn[disabled]{background:#d3c9b4;box-shadow:0 7px 0 #b7ab92;cursor:not-allowed;filter:none}.btn[disabled]::after{display:none}
.btn.line{background:var(--card);color:var(--ink);box-shadow:0 0 0 2.5px var(--ink),0 7px 0 var(--ink)}.btn.line::after{display:none}
.btn.sm{height:52px;font-size:22px;padding:0 28px}
.btn.green{background:linear-gradient(180deg,#3da577,#25805a);box-shadow:0 7px 0 #1a6445,0 18px 26px -12px rgba(30,120,80,.6)}
.btn.navy{background:linear-gradient(180deg,#3a4a75,#1f2a44);box-shadow:0 7px 0 #121a2e,0 18px 26px -12px rgba(30,40,80,.6)}
.btn.big{height:84px;font-size:32px;padding:0 64px}

/* 카드·알약·라벨 */
.card{background:rgba(255,253,248,.9);border:1px solid rgba(255,255,255,.9);border-radius:28px;box-shadow:var(--sh);backdrop-filter:blur(8px)}
.pill{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 16px;border-radius:99px;font-size:21px;font-weight:800;background:var(--ink);color:#fff;white-space:nowrap}
.pill.acc{background:var(--acc)}.pill.teal{background:var(--teal)}.pill.blue{background:var(--blue)}.pill.navy{background:var(--navy)}.pill.plum{background:var(--plum)}.pill.gold{background:var(--hi);color:var(--ink)}.pill.gray{background:#8a8272}.pill.green{background:var(--ok)}
.lbl{font-size:21px;font-weight:700;color:var(--muted);letter-spacing:.04em}
/* 굵은 윤곽 타일 */
.tile{background:#fff;border:3px solid var(--ink);border-radius:26px;box-shadow:0 7px 0 var(--ink);transition:transform .15s,box-shadow .15s}

/* 표지 */
.cover{position:absolute;inset:0;background:#2a1636;overflow:hidden}
.cover .cvb{display:none}
.cover .cvm{position:absolute;inset:0;background:url(../images/cover.webp) 50% 33%/cover no-repeat}
.cover .cta{position:absolute;left:0;right:0;bottom:78px;display:flex;flex-direction:column;align-items:center;gap:16px}
.cover .cta small{font-size:22px;font-weight:700;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.7)}

/* 이름 */
.midbox{margin:auto;display:flex;gap:56px;align-items:center}
.nm{width:980px;padding:40px 52px;display:flex;flex-direction:column;gap:16px}
.nmrow{display:flex;align-items:center;gap:18px}
.nmrow .in{width:auto;flex:0 1 420px;height:56px;font-size:26px;padding:0 24px}
.nmrow .btn{height:56px;font-size:23px;padding:0 32px;white-space:nowrap}
.nm h2{font-size:42px}
.nm p{font-size:23px;line-height:1.55;color:var(--ink2)}
.in{height:68px;border-radius:99px;border:3px solid var(--ink);background:#fff;padding:0 28px;font-size:30px;font-weight:700;width:100%}
.in:focus,.tx:focus,.sm-in:focus,.f-in:focus,.f-tx:focus{outline:none;box-shadow:0 0 0 6px rgba(255,213,74,.7)}
.mascot{height:560px;width:auto;animation:bob 3.2s ease-in-out infinite}
.avs{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.av{padding:10px 8px 12px;border-radius:24px;background:#fff;border:3px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:4px;transition:.15s}
.av img{height:128px;width:auto}
.av b{font-size:22px;font-weight:800}
.av:hover{transform:translateY(-3px);border-color:var(--ink)}
.av.on{border-color:var(--ink);background:#fff2b8;box-shadow:0 6px 0 var(--ink)}

/* 프롤로그 */
.prol{position:absolute;inset:0;background:#2a1f16 url(../images/s4.webp) center/cover no-repeat}
.prol .pin{position:absolute;left:50%;top:50%;width:1920px;height:1080px;margin:-540px 0 0 -960px}
.prol::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,14,8,.35),rgba(20,14,8,.7))}
.prol .ed{position:absolute;left:90px;bottom:0;height:760px;width:auto;animation:bob 3s ease-in-out infinite;filter:drop-shadow(0 20px 20px rgba(0,0,0,.4))}
.prol .dlg{position:absolute;left:760px;right:90px;top:230px;padding:36px 46px;display:flex;flex-direction:column;gap:14px;animation:pop .45s both}
.prol .dlg small{font-size:22px;font-weight:800;color:#fff;background:var(--acc);border-radius:99px;padding:4px 18px;align-self:flex-start}
.prol .dlg p{font-size:40px;font-weight:800;line-height:1.5}
.prol .dlg p b{color:var(--acc)}
.prol .goal{display:flex;align-items:center;gap:18px;font-size:30px;font-weight:800}
.prol .goal .big{font-size:64px;color:var(--acc);line-height:1}
.prol .nx{position:absolute;right:90px;bottom:80px}
.prol .pd{position:absolute;left:760px;bottom:96px;display:flex;gap:10px}
.prol .pd i{width:14px;height:14px;border-radius:50%;background:rgba(255,255,255,.4)}.prol .pd i.on{width:44px;border-radius:99px;background:var(--hi)}

/* 공통 두 칸 */
.L{width:1000px;flex:none;display:flex;flex-direction:column;gap:14px;height:100%}
.R{flex:1;display:flex;flex-direction:column;padding:26px 32px;gap:12px;overflow:hidden;height:100%}
.rhead{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rhead h2{font-size:32px;flex:1}
.R .ft{margin-top:auto;display:flex;gap:14px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.R .body{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}
.q{font-size:23px;font-weight:700;line-height:1.45}
.q small{font-size:21px;font-weight:600;color:var(--ink2)}
.dots{display:flex;gap:10px}.dots i{width:14px;height:14px;border-radius:50%;background:#e3d7bd}.dots i.on{width:44px;border-radius:99px;background:var(--acc)}
.guide{display:flex;align-items:center;gap:18px}
.guide img{height:150px;width:auto;flex:none}
.say{position:relative;background:#fff;border:2.5px solid #e8dcc2;border-radius:24px;padding:14px 22px;font-size:22px;font-weight:700;line-height:1.55;box-shadow:0 10px 18px -12px rgba(60,40,10,.45);flex:1}
.say::before{content:"";position:absolute;left:-13px;top:50%;margin-top:-11px;border:11px solid transparent;border-left:0;border-right:13px solid #e8dcc2}
.say::after{content:"";position:absolute;left:-9px;top:50%;margin-top:-9px;border:9px solid transparent;border-left:0;border-right:11px solid #fff}
.say small{display:block;font-size:21px;font-weight:800;margin-bottom:4px;letter-spacing:.04em;color:var(--acc)}
.fb{border-radius:22px;padding:14px 20px;font-size:22px;font-weight:700;line-height:1.5;animation:up .35s both}
.fb.ok{background:var(--okl);color:#17583e}.fb.no{background:var(--nol);color:#8f2a1f}.fb.info{background:#e8eefb;color:#2f3f75}.fb.warn{background:#fff6d6;color:#6b5200}
.fb small{display:block;font-size:21px;font-weight:800;letter-spacing:.04em;margin-bottom:3px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{padding:11px 20px;border-radius:99px;background:#f6f0e3;border:3px solid transparent;font-size:22px;font-weight:700;display:inline-flex;align-items:center;gap:10px;transition:.15s}
.chip:hover{background:#fbf3df;transform:translateY(-2px)}
.chip.sel{background:#fff2b8;border-color:#e8b800}
.chip.good{background:var(--okl);border-color:var(--ok)}
.chip.dim{opacity:.4;pointer-events:none}

/* 기사 종이(기사 해부·신문) */
.paperc{background:#fffaf0;border:2px solid #e0d3b8;border-radius:22px;padding:26px 34px 28px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--sh);position:relative}
.mast{display:flex;align-items:center;justify-content:space-between;border-top:5px solid var(--ink);border-bottom:2px solid var(--ink);padding:8px 2px 7px;font-size:21px;font-weight:700;color:var(--ink2)}
.mast b{font-size:40px;font-weight:800;letter-spacing:.14em;color:var(--ink);line-height:1;margin-right:-.14em}
.mast span{min-width:150px}.mast span:last-child{text-align:right}
.blk{border:3px solid #cdbf9f;border-radius:16px;padding:10px 16px;position:relative;transition:.15s;text-align:left;width:100%;background:rgba(255,255,255,.4)}
.blk.tg:hover{background:#fff2b8;border-color:#e8b800;cursor:pointer}
.blk.act{background:#fff2b8;border-color:#e8b800}
.blk.done{border:3px solid var(--ok);background:var(--okl)}
.blk .tag{position:absolute;left:12px;top:-15px;background:var(--ok);color:#fff;border-radius:99px;padding:2px 14px;font-size:21px;font-weight:800;animation:pop .35s both}
.blk .qm{position:absolute;right:12px;top:8px;width:30px;height:30px;border-radius:50%;background:#e3d7bd;color:var(--ink2);display:grid;place-items:center;font-weight:800;font-size:21px}
.h1p{font-size:36px;font-weight:800;line-height:1.3}
.h2p{font-size:23px;font-weight:700;color:var(--ink2);line-height:1.4}
.leadp{font-size:24px;line-height:1.75;font-weight:600}
.leadp .sp{border-radius:8px;padding:2px 5px;border-bottom:4px solid #cdbf9f;background:#f1e8d3;cursor:pointer;transition:.15s}
.leadp .sp:hover{background:#fff2b8;border-color:#e8b800}
.leadp .sp.act{background:#fff2b8;border-color:#e8b800}
.leadp .sp.done{background:var(--okl);border-color:var(--ok);cursor:default}
.leadp .sp em{font-style:normal;font-size:21px;font-weight:800;color:#fff;background:var(--ok);border-radius:99px;padding:1px 9px;margin-left:5px;vertical-align:middle}
.bodyp{display:flex;flex-direction:column;gap:6px;font-size:23px;line-height:1.6;font-weight:600}
.bodyp .st{display:grid;grid-template-columns:34px 1fr;gap:8px;padding:6px 10px;border-radius:12px;text-align:left;transition:.15s;align-items:start}
.bodyp .st i{font-style:normal;width:30px;height:30px;border-radius:50%;background:#e3d7bd;display:grid;place-items:center;font-size:21px;font-weight:800;margin-top:3px}
.bodyp button.st:hover{background:#fff2b8}
.bodyp .st.cut{background:#fbe2dd;text-decoration:line-through;text-decoration-color:var(--acc);text-decoration-thickness:3px;color:#8f2a1f}
.bodyp .st.cut i{background:var(--acc);color:#fff}
.bodyp .st.ok{background:var(--okl)}
.dim{opacity:.4}
.labs{display:flex;flex-direction:column;gap:10px}
.lab{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;text-align:left;padding:12px 18px;border-radius:20px;background:#f6f0e3;border:3px solid transparent;transition:.15s}
.lab b{font-size:25px;font-weight:800;grid-row:span 2;background:var(--navy);color:#fff;border-radius:99px;padding:4px 20px}
.lab span{font-size:21px;font-weight:600;color:var(--ink2)}
.lab:hover{background:#fbf3df;transform:translateY(-2px)}
.lab.on{background:#fff2b8;border-color:#e8b800}
.lab.used{opacity:.4;pointer-events:none}
.blank{display:inline-flex;min-width:120px;height:44px;border:3px solid #cdbf9f;border-radius:12px;align-items:center;justify-content:center;font-weight:800;background:#fff;padding:0 12px;transition:.15s;vertical-align:middle}
button.blank:hover{background:#fff2b8;border-color:#e8b800}
.blank.act{background:#fff2b8;border-color:#e8b800}
.blank.done{border:3px solid var(--ok);background:var(--okl);color:#17583e}
.bl{font-size:25px;font-weight:700;line-height:2.1;padding:6px 14px;background:#f6f0e3;border-radius:18px}
.stamps{display:flex;gap:10px;align-items:center;font-size:22px;font-weight:800}
.stamps i{width:46px;height:46px;border-radius:50%;border:3px solid #cdbf9f;display:grid;place-items:center;color:var(--acc);font-style:normal;font-weight:800;font-size:21px}
.stamps i.on{border:3px solid var(--acc);background:#fff;animation:pop .4s both}

/* 기자증 */
.idc{width:640px;border:4px solid var(--ink);border-radius:30px;background:linear-gradient(180deg,#fff8d8,#ffe9a0);box-shadow:0 10px 0 var(--ink);padding:0 0 22px;overflow:hidden;animation:pop .5s both}
.idc .ih{background:var(--navy);color:#fff;padding:12px 26px;font-size:24px;font-weight:800;letter-spacing:.16em;display:flex;justify-content:space-between;align-items:center}
.idc .ib{display:grid;grid-template-columns:200px 1fr;gap:22px;padding:22px 26px 0;align-items:center}
.idc .ib img{width:200px;height:auto;background:#fff;border:3px solid var(--ink);border-radius:20px;padding:6px}
.idc .ib b{font-size:40px;font-weight:800;display:block;line-height:1.2}
.idc .ib span{font-size:22px;font-weight:700;color:var(--ink2);display:block;margin-top:6px}
.idc .st2{margin:18px 26px 0;display:flex;align-items:center;justify-content:center;gap:12px;background:var(--acc);color:#fff;border:3px solid var(--ink);border-radius:99px;padding:8px 18px;font-size:28px;font-weight:800;box-shadow:0 5px 0 var(--ink)}
.idc .st2 svg{width:30px;height:30px}

/* 독자·사건 고르기 */
.pick{flex:1;display:flex;flex-direction:column;gap:18px;min-width:0}
.pk3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;flex:1;min-height:0}
.rt{padding:20px 22px 22px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;position:relative;cursor:pointer}
.rt:hover{transform:translateY(-4px);box-shadow:0 11px 0 var(--ink)}
.rt.on{box-shadow:0 7px 0 var(--ink),0 0 0 7px var(--hi)}
.rt img{height:270px;width:auto;max-width:100%;object-fit:contain}
.rt h3{font-size:34px}
.rt .rl{font-size:21px;font-weight:800;color:#fff;border-radius:99px;padding:3px 16px}
.rt .pf{width:100%;display:flex;flex-direction:column;gap:6px;margin-top:6px;text-align:left}
.rt .pf div{background:rgba(255,255,255,.7);border-radius:14px;padding:7px 14px;font-size:21px;font-weight:700;line-height:1.35}
.rt .pf small{display:block;font-size:21px;font-weight:800;color:var(--acc)}
.rt .gp{position:absolute;right:16px;top:14px;background:var(--ink);color:#fff;border-radius:99px;padding:4px 14px;font-size:21px;font-weight:800}
.ic3{padding:0 0 18px;display:flex;flex-direction:column;overflow:hidden;cursor:pointer}
.ic3:hover{transform:translateY(-4px);box-shadow:0 11px 0 var(--ink)}
.ic3.on{box-shadow:0 7px 0 var(--ink),0 0 0 7px var(--hi)}
.ic3 .im{height:300px;background:#ddd center/cover no-repeat;border-bottom:3px solid var(--ink);position:relative}
.ic3 .im .nm2{position:absolute;left:14px;bottom:-1px;background:var(--ink);color:#fff;border-radius:14px 14px 0 0;padding:6px 18px;font-size:21px;font-weight:800}
.ic3 h3{font-size:30px;padding:16px 22px 4px}
.ic3 p{font-size:22px;font-weight:600;line-height:1.5;color:var(--ink2);padding:0 22px}
.radar{padding:16px 24px;display:grid;grid-template-columns:260px repeat(3,1fr);gap:16px;align-items:center}
.radar b{font-size:24px;font-weight:800}
.hr{display:flex;align-items:center;gap:12px;background:#f6f0e3;border-radius:18px;padding:8px 16px;font-size:22px;font-weight:800}
.hr img{height:64px;width:auto}
.hr.me{outline:4px solid var(--hi)}
.hr .hst{display:flex;gap:2px;margin-left:auto}.hr .hst svg{width:30px;height:30px}

/* 취재 */
.scn{position:relative;height:650px;border:3px solid var(--ink);border-radius:26px;box-shadow:0 7px 0 var(--ink);background:#ddd center/cover no-repeat;overflow:hidden}
.scn::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(0,0,0,.35))}
.hs{position:absolute;z-index:2;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;transition:.15s}
.hs .ph{width:112px;height:112px;border-radius:50%;background:#fff;border:4px solid var(--ink);box-shadow:0 5px 0 var(--ink);display:grid;place-items:center;overflow:hidden}
.hs .ph img{height:100px;width:auto;max-width:96px;object-fit:contain}
.hs .ph.ic img{height:76px}
.hs .nb{background:var(--ink);color:#fff;border-radius:99px;padding:3px 14px;font-size:21px;font-weight:800;white-space:nowrap}
.hs:hover{transform:translate(-50%,-54%)}
.hs.on .ph{background:#fff2b8;box-shadow:0 5px 0 var(--ink),0 0 0 7px var(--hi)}
.hs.dn .nb{background:var(--ok)}
.hs.dn .ph::after{content:"";position:absolute}
.hs .ck2{position:absolute;right:-4px;top:-4px;width:34px;height:34px;border-radius:50%;background:var(--ok);border:3px solid #fff;display:grid;place-items:center;color:#fff}
.hs .ck2 svg{width:18px;height:18px}
.book{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.bs{padding:8px 4px 8px;border-radius:16px;background:#f0e8d6;border:3px solid #cdbf9f;text-align:center;font-size:21px;font-weight:800;color:var(--muted);line-height:1.2;transition:.2s}
.bs small{display:block;font-size:21px;font-weight:700;margin-top:2px;min-height:20px}
.bs.on{background:var(--okl);border:3px solid var(--ok);color:#17583e;animation:pop .4s both}
.stopn{display:flex;gap:8px;flex-wrap:wrap}
.stopn .tab{height:46px;padding:0 16px;border-radius:99px;background:#f0e8d6;font-size:21px;font-weight:800;color:var(--ink2);display:inline-flex;align-items:center;gap:8px;transition:.15s}
.stopn .tab:hover{background:#fbf3df}
.stopn .tab.on{background:var(--ink);color:#fff}
.stopn .tab.dn::after{content:"";width:11px;height:11px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 2px #fff}
.npc{display:flex;align-items:center;gap:16px}
.npc img{height:110px;width:auto}
.npc b{font-size:26px;font-weight:800;display:block}.npc span{font-size:21px;font-weight:700;color:var(--ink2)}
.clue{background:#f6f0e3;border-radius:22px;padding:14px 18px;display:flex;flex-direction:column;gap:10px;border:3px solid transparent;animation:up .3s both}
.clue .qt{font-size:22px;font-weight:700;line-height:1.5}
.clue .acts2{display:flex;gap:10px;flex-wrap:wrap}
.clue.w{background:var(--okl);border-color:var(--ok)}
.clue.s{background:#ece6d6;opacity:.75}
.clue .res{font-size:21px;font-weight:800;display:flex;align-items:center;gap:8px}
.clue.w .res{color:#17583e}.clue.s .res{color:var(--ink2)}

/* 이벤트 */
.evx{display:grid;grid-template-columns:420px 1fr;gap:28px;flex:1;min-height:0}
.evl{display:flex;flex-direction:column;align-items:center;gap:10px;justify-content:center}
.evl img{max-height:520px;max-width:100%;width:auto;height:auto;animation:bob 3s ease-in-out infinite}
.evo{display:flex;flex-direction:column;gap:16px;justify-content:center}
.ev-opt{text-align:left;padding:20px 26px;border-radius:24px;background:#fff;border:3px solid var(--ink);box-shadow:0 6px 0 var(--ink);font-size:30px;font-weight:800;line-height:1.35;transition:.15s;display:grid;grid-template-columns:48px 1fr;gap:16px;align-items:center}
.ev-opt .n{width:48px;height:48px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:800}
.ev-opt:hover{transform:translateY(-3px);box-shadow:0 9px 0 var(--ink)}
.ev-opt.sel{background:#fff2b8}
.meter{display:grid;grid-template-columns:230px 1fr 70px;gap:12px;align-items:center;font-size:22px;font-weight:800}
.meter .bar{height:26px;border-radius:99px;background:#eadfca;overflow:hidden}
.meter .bar i{display:block;height:100%;width:0;border-radius:99px;transition:width 1s cubic-bezier(.2,.8,.2,1)}
.meter em{font-style:normal;font-size:26px;text-align:right}

/* 기사 쓰기 */
.wr{width:1090px;flex:none;padding:22px 32px 20px;display:flex;flex-direction:column;gap:9px;height:100%;overflow:hidden;background:#fffaf0}
.wr .mast b{font-size:34px}
.f-lab{font-size:21px;font-weight:800;color:var(--acc);display:flex;align-items:center;gap:8px;margin-top:2px}
.f-lab small{font-size:21px;font-weight:700;color:var(--muted)}
.f-lab .cn{margin-left:auto;font-size:21px;font-weight:700;color:var(--muted)}
.f-in{height:60px;border-radius:16px;border:3px solid var(--ink);background:#fff;padding:0 18px;font-size:32px;font-weight:800;width:100%}
.f-in.sub{height:46px;font-size:22px;font-weight:700}
.f-tx{border-radius:16px;border:3px solid var(--ink);background:#fff;padding:10px 18px;font-size:23px;font-weight:600;line-height:1.55;width:100%;resize:none}
.mats{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.mats .chip{padding:7px 16px;font-size:21px}
.mats .chip svg{width:26px;height:26px}
.mats .chip.sel{background:#e2efff;border-color:var(--blue)}
.mats .srcs{display:inline-flex;align-items:center;gap:8px;font-size:21px;font-weight:700;color:var(--ink2)}
.wfoot{display:flex;align-items:center;gap:12px;margin-top:auto}
.wfoot .hint{font-size:21px;font-weight:700;color:var(--muted);flex:1}
.hp{flex:1;display:flex;flex-direction:column;gap:12px;height:100%;min-width:0}
.hpc{padding:16px 22px;display:flex;flex-direction:column;gap:10px;overflow:hidden}
.hpc h3{font-size:24px}
.cov6{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.cv{padding:8px 2px;border-radius:14px;background:#f0e8d6;border:3px solid #cdbf9f;text-align:center;font-size:21px;font-weight:800;color:var(--muted);transition:.2s}
.cv.on{background:var(--okl);border:3px solid var(--ok);color:#17583e}
.fcs{display:flex;flex-direction:column;gap:7px;overflow-y:auto;min-height:0;scrollbar-width:thin}
.fc{background:#f6f0e3;border-radius:16px;padding:9px 12px;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center}
.fc b{background:var(--navy);color:#fff;border-radius:99px;padding:1px 12px;font-size:21px;font-weight:800;grid-row:span 2}
.fc p{font-size:21px;font-weight:600;line-height:1.4}
.fc .ac{display:flex;gap:6px;margin-top:3px}
.fc .ac button{height:34px;padding:0 13px;border-radius:99px;background:#fff;border:2px solid var(--ink);font-size:21px;font-weight:800;transition:.12s}
.fc .ac button:hover{background:#fff2b8}
.ptip{display:flex;align-items:flex-end;gap:10px}
.ptip img{height:112px;width:auto;flex:none}
.ptip .say{font-size:21px;padding:10px 16px}

/* 점검 */
.srow{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;background:#f6f0e3;border-radius:22px;padding:14px 22px}
.srow p{font-size:24px;font-weight:700;line-height:1.4}
.rate{display:flex;gap:8px}
.rate button{width:64px;height:64px;border-radius:50%;background:#fff;border:3px solid #cdbf9f;display:grid;place-items:center;color:#cdbf9f;transition:.15s}
.rate button svg{width:34px;height:34px}
.rate button:hover{border-color:var(--ink)}
.rate button.on{background:#fff2b8;border-color:#e8b800;color:#e8a800}
.rlab{display:flex;justify-content:flex-end;gap:8px;font-size:21px;font-weight:700;color:var(--muted)}

/* 시사회 */
.thr{position:absolute;inset:0;background:#2a1636 center/cover no-repeat}
.thr::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,10,20,.55),rgba(20,10,20,.82))}
.shw{flex:1;display:flex;flex-direction:column;gap:16px;position:relative;z-index:1;min-width:0}
.rc3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;flex:1;min-height:0}
.rcd{padding:16px 20px 18px;display:grid;grid-template-columns:150px 1fr;grid-template-rows:auto auto auto 1fr;gap:8px 16px;align-items:center;overflow:hidden;min-height:0}
.rcd .pic{grid-row:span 2;display:flex;justify-content:center;align-items:flex-end}
.rcd .pic img{height:190px;width:auto;max-width:150px;object-fit:contain;animation:pop .45s both}
.rcd h3{font-size:26px;line-height:1.15}
.rcd h3 small{display:block;font-size:21px;font-weight:700;color:var(--muted);margin-top:2px}
.rcd .sub{display:flex;align-items:center;gap:8px;font-size:22px;font-weight:800;margin-top:4px}
.rcd .sub em{font-style:normal;font-size:30px;color:var(--acc)}
.gb{height:16px;border-radius:99px;background:#eadfca;overflow:hidden;margin-top:6px}
.gb i{display:block;height:100%;width:0;border-radius:99px;background:var(--acc);transition:width 1s cubic-bezier(.2,.8,.2,1)}
.rcd .ck4{grid-column:1/3;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.k4{border-radius:12px;padding:5px 4px;text-align:center;font-size:21px;font-weight:800;display:flex;flex-direction:column;align-items:center;gap:0;line-height:1.2}
.k4 svg{width:22px;height:22px}
.k4.good{background:var(--okl);color:#17583e}.k4.warn{background:#fff6d6;color:#6b5200}.k4.bad{background:var(--nol);color:#8f2a1f}
.rcd .chat{grid-column:1/3;display:flex;flex-direction:column;gap:6px;overflow:hidden;min-height:0;align-self:start}
.cb{background:#fff;border-radius:16px 16px 16px 6px;padding:7px 14px;font-size:21px;font-weight:700;line-height:1.38;box-shadow:0 8px 14px -10px rgba(60,40,10,.5);animation:up .35s both;border:2px solid #eadfc6}
.cb.bad{background:#fbe2dd;color:#8f2a1f;border-color:#f3c5bc}.cb.good{background:#dcf1e6;color:#17583e;border-color:#b9e0cc}.cb.sys{background:#e8eefb;color:#2f3f75}
.rcd .stp{position:absolute;right:16px;top:12px;border:3px solid var(--acc);color:var(--acc);border-radius:50%;width:66px;height:66px;display:grid;place-items:center;font-weight:800;font-size:21px;line-height:1.1;text-align:center;background:rgba(255,255,255,.92);animation:pop .4s both}
.rcd{position:relative}
.cmpc{padding:16px 24px;display:grid;grid-template-columns:1fr 440px;gap:22px;align-items:stretch}
.cmpt{display:grid;grid-template-columns:200px 1fr 1fr 1.3fr;gap:6px 12px;align-items:center;font-size:22px;font-weight:700}
.cmpt .h{font-size:21px;font-weight:800;color:var(--muted)}
.dd{display:inline-flex;gap:3px}.dd svg{width:26px;height:26px}
.dif{font-size:21px;font-weight:800;background:#fff6d6;color:#6b5200;border-radius:99px;padding:2px 12px;white-space:nowrap}
.dif.same{background:var(--okl);color:#17583e}
.tot{display:flex;flex-direction:column;gap:8px;justify-content:center;background:linear-gradient(160deg,#fff8d8,#ffe9a0);border:3px solid var(--ink);border-radius:24px;padding:14px 22px;box-shadow:0 6px 0 var(--ink)}
.tot .nn{font-size:60px;font-weight:800;line-height:1;color:var(--acc)}
.tot .nn small{font-size:24px;color:var(--ink)}
.tot .tb{height:20px;border-radius:99px;background:#fff;border:3px solid var(--ink);overflow:hidden;position:relative}
.tot .tb i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ee5a39,#ffb020);transition:width 1.1s cubic-bezier(.2,.8,.2,1)}
.tot .tb u{position:absolute;top:-4px;bottom:-4px;width:4px;background:var(--ink)}
.tot p{font-size:21px;font-weight:700;color:var(--ink2);line-height:1.4}

/* 교열 */
.peer2{display:grid;grid-template-columns:1fr 1fr;gap:26px;flex:1;min-height:0}
.pm{padding:28px 30px;display:flex;flex-direction:column;gap:14px;align-items:center;text-align:center;cursor:pointer}
.pm:hover{transform:translateY(-4px);box-shadow:0 11px 0 var(--ink)}
.pm img{height:300px;width:auto}
.pm h3{font-size:34px}.pm p{font-size:22px;font-weight:600;color:var(--ink2);line-height:1.5}
.gate{margin:auto;width:900px;padding:44px 52px;display:flex;flex-direction:column;gap:18px;align-items:center;text-align:center}
.gate img{height:300px;width:auto;animation:bob 3s ease-in-out infinite}
.gate h2{font-size:42px}.gate p{font-size:24px;line-height:1.55;color:var(--ink2)}
.prt{width:1000px;flex:none}
.pfm{flex:1;display:flex;flex-direction:column;gap:12px;padding:26px 32px;overflow:hidden;height:100%;background:#eaf6ee}
.pfm h2{font-size:32px}
.pfm .chips .chip{font-size:22px;padding:9px 18px;background:#fff}
.pfm .chips .chip.sel{background:#fff2b8}
.sm-in{height:52px;border-radius:16px;border:3px solid var(--ink);background:#fff;padding:0 16px;font-size:22px;font-weight:600;width:100%}
.note{background:#fff8d8;border:3px solid #e8b800;border-radius:6px 22px 22px 22px;padding:14px 20px;display:flex;flex-direction:column;gap:6px;position:relative;box-shadow:0 8px 14px -10px rgba(60,40,10,.5)}
.note b{font-size:22px;font-weight:800;color:var(--acc)}
.note p{font-size:22px;font-weight:600;line-height:1.5}
.note .pr{display:flex;gap:6px;flex-wrap:wrap}.note .pr span{background:var(--okl);color:#17583e;border-radius:99px;padding:3px 12px;font-size:21px;font-weight:800}
.note .fx{background:var(--nol);color:#8f2a1f;border-radius:99px;padding:3px 12px;font-size:21px;font-weight:800;align-self:flex-start}
.plan{display:flex;flex-direction:column;gap:7px}
.plan .chip{font-size:21px;padding:8px 16px;justify-content:flex-start;text-align:left}

/* 발행 */
.np{background:#fffaf0;border:2px solid #d9ccb0;border-radius:6px;padding:22px 34px 22px;display:flex;flex-direction:column;gap:9px;box-shadow:var(--sh);height:100%;overflow:hidden;position:relative;
  background-image:repeating-linear-gradient(transparent 0 31px,rgba(180,160,120,.06) 31px 32px)}
.np .mast b{font-size:50px}
.np .dl{display:flex;justify-content:space-between;font-size:21px;font-weight:700;color:var(--ink2);border-bottom:1px solid var(--ink);padding-bottom:5px}
.np h1{font-size:44px;line-height:1.22;letter-spacing:-.02em;margin-top:4px}
.np h2.s{font-size:23px;font-weight:700;color:var(--ink2);line-height:1.4}
.np .ld{font-size:22px;font-weight:700;line-height:1.6;background:#f1e8d3;border-left:7px solid var(--acc);padding:10px 16px;border-radius:0 12px 12px 0}
.np .cols{column-count:2;column-gap:30px;column-rule:1px solid #cfc3a8;font-size:21px;line-height:1.65;font-weight:500;flex:1;min-height:0;overflow:hidden}
.np .cols p{margin-bottom:8px;text-align:justify;word-break:keep-all}
.np figure{break-inside:avoid;margin:0 0 12px;border:1px solid #cfc3a8;background:#fff;padding:6px;border-radius:6px}
.np figure img{width:100%;height:auto;border-radius:3px}
.np figure svg{width:100%;height:auto;display:block}
.np figcaption{font-size:21px;font-weight:700;color:var(--ink2);padding:5px 4px 2px;line-height:1.35}
.np figcaption em{font-style:normal;color:var(--acc)}
.np blockquote{break-inside:avoid;margin:0 0 12px;border-top:3px solid var(--ink);border-bottom:1px solid var(--ink);padding:8px 4px;font-size:22px;font-weight:800;line-height:1.5}
.np blockquote small{display:block;font-size:21px;font-weight:700;color:var(--ink2);margin-top:3px}
.np .by{font-size:21px;font-weight:800;text-align:right;border-top:1px solid var(--ink);padding-top:6px}
.np.sm{padding:14px 20px}.np.sm .mast b{font-size:26px}.np.sm h1{font-size:28px}.np.sm .cols{font-size:21px}.np.sm .ld{font-size:21px}.np.sm h2.s{font-size:21px}
.pres{flex:1;display:flex;flex-direction:column;gap:14px;min-width:0}
.rsc{padding:20px 26px;display:flex;align-items:center;gap:20px}
.rsc img{height:230px;width:auto}
.rsc h2{font-size:36px}.rsc p{font-size:22px;font-weight:600;line-height:1.5;color:var(--ink2);margin-top:6px}
.fin3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.fr{background:#f6f0e3;border-radius:20px;padding:10px 12px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.fr img{height:104px;width:auto}.fr b{font-size:22px;font-weight:800}.fr span{font-size:22px;font-weight:800;color:var(--acc)}
.endc{padding:16px 24px;font-size:22px;font-weight:600;line-height:1.55;background:#e8eefb;border-radius:22px;color:#2f3f75}
.endc b{display:block;font-size:21px;font-weight:800;margin-bottom:4px}
.badge{display:inline-flex;align-items:center;gap:10px;font-size:26px;font-weight:800;background:var(--hi);border:3px solid var(--ink);border-radius:99px;padding:6px 24px;box-shadow:0 4px 0 var(--ink)}

/* 모달 */
#modal{position:absolute;inset:0;z-index:60;background:rgba(29,24,16,.55);backdrop-filter:blur(6px);display:grid;place-items:center;animation:fade .25s both}
.box{background:var(--card);border-radius:36px;box-shadow:0 50px 90px -30px rgba(0,0,0,.7);padding:34px 40px;max-width:1760px;max-height:1010px;overflow:hidden;animation:pop .45s cubic-bezier(.2,.9,.3,1.1) both;position:relative;display:flex;flex-direction:column;gap:6px}
.box.w-s{width:720px}.box.w-m{width:1000px}.box.w-l{width:1360px}.box.w-xl{width:1560px}
.box h3{font-size:36px}
.box .acts{display:flex;gap:14px;justify-content:flex-end;align-items:center;margin-top:16px}
.cbody{font-size:23px;font-weight:600;line-height:1.6;margin-top:8px}
.mhead{display:flex;align-items:center;gap:16px;margin:-34px -40px 18px;padding:18px 40px;background:var(--navy);color:#fff;border-radius:36px 36px 0 0}
.mhead h3{font-size:30px;flex:1}
.helpg{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.hc{background:#f6f0e3;border-radius:22px;padding:18px 22px;display:grid;grid-template-columns:44px 1fr;gap:4px 14px;align-items:center}
.hn{width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:800;font-size:22px;grid-row:span 2}
.hc b{font-size:22px}.hc p{font-size:21px;line-height:1.45;color:var(--ink2)}
#toast{position:absolute;left:50%;bottom:54px;transform:translate(-50%,30px);background:var(--ink);color:#fff;padding:14px 28px;border-radius:99px;opacity:0;pointer-events:none;transition:.3s;z-index:90;font-size:22px;font-weight:700;max-width:1500px;text-align:center}
#toast.on{opacity:1;transform:translate(-50%,0)}

/* 효과 */
@keyframes up{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.86);opacity:0}60%{transform:scale(1.04)}100%{transform:scale(1);opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes shake{0%,100%{transform:none}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
.shake{animation:shake .4s}
.cf{position:absolute;width:14px;height:14px;border-radius:3px;z-index:80;pointer-events:none;animation:cf 1.3s cubic-bezier(.2,.7,.3,1) both}
@keyframes cf{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--dx),var(--dy)) rotate(var(--r));opacity:0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* 인쇄 */
#printroot{display:none}
@media print{
  @page{size:A4;margin:12mm}
  html,body{height:auto;overflow:visible;background:#fff}
  #stage,#rotate{display:none!important}
  #printroot{display:block;color:#000;font-size:11pt;line-height:1.6}
  #printroot .pm1{border-top:5px solid #000;border-bottom:2px solid #000;text-align:center;font-size:30pt;font-weight:800;letter-spacing:.2em;padding:2mm 0}
  #printroot .pdl{display:flex;justify-content:space-between;font-size:10pt;border-bottom:1px solid #000;padding:1mm 0 2mm}
  #printroot h1{font-size:23pt;margin:4mm 0 1mm;line-height:1.25}
  #printroot h2.s{font-size:12pt;font-weight:700;color:#444;margin-bottom:3mm}
  #printroot .ld{font-size:11.5pt;font-weight:700;background:#eee;border-left:2mm solid #000;padding:2mm 3mm;margin-bottom:3mm}
  #printroot .cols{column-count:2;column-gap:8mm;column-rule:1px solid #999;font-size:10.5pt}
  #printroot .cols p{margin-bottom:2mm;text-align:justify}
  #printroot figure{break-inside:avoid;margin:0 0 3mm;border:1px solid #999;padding:1.5mm}
  #printroot figure img{width:100%;height:auto}#printroot figure svg{width:100%;height:auto}
  #printroot figcaption{font-size:9pt;color:#333}
  #printroot blockquote{break-inside:avoid;margin:0 0 3mm;border-top:2px solid #000;border-bottom:1px solid #000;padding:1.5mm 0;font-weight:700}
  #printroot .by{text-align:right;font-weight:700;border-top:1px solid #000;margin-top:3mm;padding-top:1mm}
  #printroot .stat{margin-top:5mm;border:1px solid #888;padding:3mm;font-size:10.5pt;break-inside:avoid}
}

/* ===== 블록 디자인 보강: 색깔 이름표·보기·붙은 자리 ===== */
.lab{background:#fff;border:3px solid var(--ink);border-radius:22px;box-shadow:0 5px 0 var(--ink);padding:12px 20px;gap:2px 16px}
.lab b{background:var(--lc,var(--navy));font-size:27px;padding:5px 24px;box-shadow:0 3px 0 rgba(0,0,0,.25) inset}
.lab span{font-size:22px;color:var(--ink2);font-weight:700}
.lab:hover{background:#fffaf0;transform:translateY(-3px);box-shadow:0 8px 0 var(--ink)}
.lab:active{transform:translateY(3px);box-shadow:0 2px 0 var(--ink)}
.lab.on{background:#fff2b8;box-shadow:0 5px 0 var(--ink),0 0 0 6px var(--hi);transform:translateY(-3px)}
.lab.used{opacity:1;pointer-events:none;background:#eef6f0;border-color:var(--lc,#9bc8b0);box-shadow:0 0 0 0 transparent;transform:translateY(5px)}
.lab.used b{opacity:.85}
.okb{font-style:normal;font-size:21px;font-weight:800;color:#fff;background:var(--ok);border-radius:99px;padding:2px 12px;margin-right:6px}
.chip.tl{border:3px solid var(--ink);background:#fff;box-shadow:0 5px 0 var(--ink);font-size:26px;font-weight:800;padding:10px 30px;border-radius:20px}
.chip.tl:hover{background:#fffaf0;transform:translateY(-3px);box-shadow:0 8px 0 var(--ink)}
.chip.tl.sel{background:#fff2b8;border-color:var(--ink);box-shadow:0 5px 0 var(--ink),0 0 0 6px var(--hi)}
.chip.tl.dim{opacity:1;background:#eef6f0;border-color:#9bc8b0;color:#6f9480;box-shadow:none;transform:translateY(5px);pointer-events:none;text-decoration:line-through}
.blk{border-width:3px;background:rgba(255,255,255,.55)}
.blk.done{border-color:var(--lc,var(--ok));background:#fff}
.blk .tag{background:var(--lc,var(--ok));box-shadow:0 3px 0 rgba(0,0,0,.2)}
.leadp .sp.done{border-color:var(--lc,var(--ok));background:#fff}
.leadp .sp em{background:var(--lc,var(--ok))}
.blank{border:3px solid var(--ink);background:#fff;min-width:140px;box-shadow:0 4px 0 rgba(0,0,0,.12)}
.blank.done{border:3px solid var(--ok);background:var(--okl)}

/* 기자 수첩 카드: 번호 색 블록 */
.ncs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ncs.one{grid-template-columns:1fr;gap:16px;flex:1;align-content:start}
.nc{display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:center;background:#fff;border:3px solid var(--ink);border-radius:24px;box-shadow:0 6px 0 var(--ink);padding:16px 22px}
.nc i{width:64px;height:64px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;font-style:normal;font-size:32px;font-weight:800;box-shadow:0 4px 0 rgba(0,0,0,.25) inset}
.nc b{display:block;font-size:27px;font-weight:800;color:var(--c);margin-bottom:3px}
.nc p{font-size:22px;font-weight:600;line-height:1.5;color:var(--ink2)}
.ncs.one .nc{padding:20px 26px}.ncs.one .nc b{font-size:30px}.ncs.one .nc p{font-size:23px}

/* 사진·그래프 단서: 비율 고정 액자 */
.clue .ph2{align-self:flex-start;margin:0;width:350px;background:#fff;border:3px solid var(--ink);border-radius:14px;padding:8px 8px 6px;box-shadow:0 6px 0 var(--ink);position:relative}
.clue .ph2 img{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;border-radius:8px}
.clue .ph2 figcaption{font-size:21px;font-weight:700;line-height:1.4;padding:6px 4px 2px;color:var(--ink2)}
.clue .ph2 .pt{position:absolute;left:14px;top:14px;background:var(--ink);color:#fff;border-radius:99px;padding:2px 12px;font-size:21px;font-weight:800}
.clue .gx{align-self:flex-start;width:340px;background:#fffaf0;border:3px solid var(--ink);border-radius:14px;padding:6px 8px;box-shadow:0 6px 0 var(--ink)}
.clue .gx svg{width:100%;height:auto;display:block}

.clue .gx{width:100%;max-width:520px;background:none;border:0;padding:0;box-shadow:0 6px 0 var(--ink);border-radius:16px}
.clue .gx svg{border-radius:16px;border:3px solid var(--ink)}

/* 낚시냥 이벤트: 화면을 알차게 */
.evx{align-items:stretch;gap:44px;grid-template-columns:520px 1fr}
.evl{gap:18px}
.evl img{max-height:640px}
.evl .pill{height:44px;font-size:22px;padding:0 24px}
.evo{justify-content:center;gap:18px}
.evo .q{font-size:32px;line-height:1.5}.evo .q small{display:block;margin-top:8px;font-size:22px}
.evo .ev-opt{flex:1;max-height:170px;min-height:116px;font-size:36px;padding:20px 34px;grid-template-columns:60px 1fr;gap:22px;border-radius:28px}
.evo .ev-opt .n{width:60px;height:60px;font-size:30px}
.evo.done .ev-opt{flex:none;min-height:0;max-height:none;font-size:27px;padding:12px 26px}
.evo.done .ev-opt .n{width:46px;height:46px;font-size:23px}
.evo .meter{font-size:23px}

/* 기사 쓰기 화면의 편집장 한마디 카드 */
.hpc.ptip{flex-direction:row;align-items:center;gap:16px;padding:12px 22px}
.hpc.ptip img{height:120px;width:auto;flex:none}
.hpc.ptip .say{font-size:22px;padding:12px 18px}

/* 기자증(Codex 그림) 위에 사진·이름을 얹기 */
.idl{width:900px;flex:none;display:flex;flex-direction:column;gap:20px;align-items:center;justify-content:center}
.idc2{position:relative;width:880px;animation:pop .5s both}
.idc2 .bg{width:100%;height:auto;filter:drop-shadow(0 18px 16px rgba(0,0,0,.28))}
.idc2 .idp{position:absolute;left:6.4%;top:47.5%;width:25%;height:33.3%;display:grid;place-items:center;overflow:hidden;border-radius:14px}
.idc2 .idp img{height:90%;width:auto;max-width:96%;object-fit:contain}
.idc2 .idt{position:absolute;left:36%;top:49.5%;width:38%;height:29.5%;display:flex;flex-direction:column;justify-content:center;gap:5px}
.idt b{font-weight:800;line-height:1.1;color:#1f2a44;letter-spacing:-.01em;white-space:nowrap}
.idt span{font-size:25px;font-weight:700;color:#4a443a;line-height:1.25}.idt .s2{font-size:22px}
.idt em{font-style:normal;font-size:22px;font-weight:800;color:var(--acc)}
.idc2 .seal{position:absolute;right:3.5%;top:46%;width:22%;height:auto;animation:stampin .55s .55s cubic-bezier(.2,1.4,.4,1) both}
@keyframes stampin{0%{opacity:0;transform:scale(2.6)}60%{opacity:1;transform:scale(.92)}100%{opacity:1;transform:scale(1)}}
/* 구독 확정·발행 완료 도장 이미지 */
.rcd img.stp{position:absolute;right:12px;top:10px;width:98px;height:auto;border:0;border-radius:0;background:none;display:block;opacity:0;animation:stampin .5s .9s cubic-bezier(.2,1.4,.4,1) both;transform:none}
.rsc img.sealp{height:190px;width:auto;margin-left:auto;animation:stampin .6s .9s cubic-bezier(.2,1.4,.4,1) both;opacity:0}

/* 시사회 독자 카드: 그림을 키워 빈 공간 줄이기 */
.rcd{grid-template-columns:190px 1fr}
.rcd .pic img{height:240px;max-width:190px}
.rcd .cb{font-size:21px}

/* ===== 검토 보완 1: 기자증 시험 화면 글자·여백 키우기, 교열 선택 화면 ===== */
.paperc{padding:36px 44px 40px;gap:16px}
.paperc .mast b{font-size:46px}.paperc .mast{font-size:21px}
.paperc .h1p{font-size:44px}.paperc .h2p{font-size:27px}
.paperc .leadp{font-size:29px;line-height:1.85}
.paperc .bodyp{font-size:28px;gap:10px}.paperc .bodyp .st{padding:12px 16px}
.paperc .bl{font-size:31px;line-height:2.2;padding:12px 22px}
.paperc .blank{height:54px;min-width:170px;font-size:29px}
.paperc .blk{padding:14px 20px}
.R .q{font-size:27px}.R .q small{font-size:22px}
.lab b{font-size:32px;padding:6px 26px}.lab span{font-size:23px}
.fb{font-size:23px}
.pm{justify-content:center;gap:18px}
.pm img{height:340px}
.pm h3{font-size:40px}.pm p{font-size:25px;max-width:640px}
/* 그래프 단서: 카드 폭을 꽉 채우기 */
.clue .gx{max-width:none;width:100%}

/* ===== 가운데 블록 트레이 ===== */
.scr[data-k=t1] .L,.scr[data-k=t2] .L,.scr[data-k=t3] .L,.scr[data-k=t4] .L{justify-content:center;gap:22px}
.tray{background:rgba(255,255,255,.62);border:3px solid #cdbf9f;border-radius:28px;padding:18px 24px 24px;display:flex;flex-direction:column;gap:14px}
.tray .tt{font-size:22px;font-weight:800;color:var(--muted);letter-spacing:.06em}
.tg3{display:grid;gap:18px}
.blockt{display:flex;flex-direction:column;align-items:stretch;background:#fff;border:4px solid var(--ink);border-radius:24px;box-shadow:0 8px 0 var(--ink);overflow:hidden;text-align:center;transition:.15s;min-height:128px}
.blockt b{background:var(--lc);color:#fff;font-size:36px;font-weight:800;padding:14px 8px;display:block;border-bottom:4px solid var(--ink);letter-spacing:.02em}
.blockt span{font-size:22px;font-weight:700;color:var(--ink2);padding:10px 14px 14px;line-height:1.35;flex:1;display:grid;place-items:center}
button.blockt:hover{transform:translateY(-4px);box-shadow:0 12px 0 var(--ink)}
button.blockt:active{transform:translateY(5px);box-shadow:0 3px 0 var(--ink)}
.blockt.on{box-shadow:0 8px 0 var(--ink),0 0 0 7px var(--hi);transform:translateY(-4px)}
.blockt.used{pointer-events:none;background:#eef6f0;box-shadow:none;transform:translateY(6px);border-color:#9bc8b0}
.blockt.used b{opacity:.5;border-color:#9bc8b0}
.blockt.word{min-height:0}.blockt.word b{border-bottom:0;padding:30px 6px;font-size:40px}
.blockt.stampb{min-height:120px}.blockt.stampb.used{background:#fbe2dd;border-color:var(--acc);transform:none}.blockt.stampb.used b{opacity:1;border-color:var(--acc)}

/* 쓰기 화면 아래 진행 블록 */
.wfoot .hint{display:flex;gap:10px;flex-wrap:wrap;flex:1;align-items:center}
.rq{display:inline-flex;align-items:center;gap:8px;background:#fff;border:3px solid var(--ink);border-radius:14px;box-shadow:0 4px 0 var(--ink);padding:4px 14px;font-size:21px;white-space:nowrap}
.rq b{font-weight:800}.rq i{font-style:normal;font-weight:800;color:var(--acc)}
.rq.ok{background:var(--okl);border-color:var(--ok);box-shadow:0 4px 0 var(--ok)}.rq.ok i{color:#17583e}

/* 현장 사진 2장 나란히 */
.clue .phs{display:flex;gap:16px;align-self:stretch}
.clue .phs .ph2{width:auto;flex:1;min-width:0}
.np figure .two{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.np figure .two img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto}
#printroot figure .two{display:grid;grid-template-columns:1fr 1fr;gap:2mm}

/* 내 평가 vs 독자 평가: 줄별 구분 블록 */
.cmpc{grid-template-columns:1fr 440px;gap:26px;padding:18px 24px}
.cmprows{display:flex;flex-direction:column;gap:10px;justify-content:center}
.cmprow{display:grid;grid-template-columns:150px 1fr 1fr 250px;align-items:center;gap:14px;background:#fff;border:3px solid var(--ink);border-radius:18px;box-shadow:0 4px 0 var(--ink);padding:8px 16px}
.cmprow.same{border-color:var(--ok);box-shadow:0 4px 0 var(--ok);background:#f2faf5}
.cmprow.diff{border-color:#e8b800;box-shadow:0 4px 0 #e8b800;background:#fffbea}
.cmprow .ci{font-size:25px;font-weight:800}
.cmprow .cb2{display:flex;align-items:center;gap:10px;background:rgba(29,27,23,.05);border-radius:12px;padding:4px 12px}
.cmprow .cb2 small{font-size:21px;font-weight:800;color:var(--muted);white-space:nowrap}
.cmprow .dif{font-size:21px;text-align:center;padding:5px 10px}

/* 도움 기자 고르기 카드: 순서 블록으로 빈 공간 채우기 */
.pm{justify-content:flex-start;padding:26px 30px 28px}
.pm img{height:300px}
.stp3{display:grid;gap:12px;width:100%;margin-top:auto;padding:0}
.stp3 li{list-style:none;display:grid;grid-template-columns:48px 1fr;gap:16px;align-items:center;background:#fff;border:3px solid var(--ink);border-radius:18px;box-shadow:0 5px 0 var(--ink);padding:10px 18px;text-align:left;font-size:24px;font-weight:700}
.stp3 i{width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:23px}

/* 기자증 시험 1·3번: 화면 높이에 맞추기 */
.scr[data-k=t1] .paperc,.scr[data-k=t3] .paperc{padding:24px 34px 26px;gap:10px}
.scr[data-k=t1] .paperc .mast b,.scr[data-k=t3] .paperc .mast b{font-size:38px}
.scr[data-k=t1] .paperc .h1p{font-size:36px}.scr[data-k=t1] .paperc .h2p{font-size:23px}
.scr[data-k=t1] .paperc .leadp{font-size:24px;line-height:1.7}
.scr[data-k=t1] .paperc .blk{padding:10px 16px}
.scr[data-k=t3] .paperc .h1p{font-size:36px}
.scr[data-k=t3] .paperc .bodyp{font-size:25px;gap:6px}.scr[data-k=t3] .paperc .bodyp .st{padding:8px 14px}
.scr[data-k=t1] .tray,.scr[data-k=t3] .tray{padding:14px 20px 18px;gap:10px}
.scr[data-k=t1] .blockt{min-height:0}.scr[data-k=t1] .blockt b{font-size:32px;padding:10px 6px}.scr[data-k=t1] .blockt span{font-size:21px;padding:8px 10px 10px}
.scr[data-k=t3] .blockt.stampb{min-height:0}.scr[data-k=t3] .blockt b{font-size:30px;padding:10px 6px}
.scr[data-k=t2] .paperc{padding:28px 38px 30px}
/* 시사회 카드 미세 넘침 */
.rcd .pic img{height:215px}
.rcd .cb{padding:6px 14px}
.idc2 .idp img{height:84%}
.ncs.one{gap:12px}.ncs.one .nc{padding:15px 24px}
.rcd .chat{gap:5px}.rcd .cb{font-size:21px}
/* 표지 버튼: 나란히, 같은 크기 */
.cover .cta{flex-direction:row;justify-content:center;align-items:center;gap:28px}
.cover .cta .btn{min-width:360px;padding:0 40px}

/* ===== 가독성·규격 통일 (같은 종류의 블록은 높이·너비를 같게) ===== */
body{line-height:1.45}
/* 블록 트레이: 모든 블록 같은 높이·너비 */
.tg3{grid-auto-rows:1fr;align-items:stretch}
.blockt{height:100%}
.blockt b{display:grid;place-items:center;min-height:68px}
.blockt span{min-height:76px}
.blockt.word b{min-height:104px}
/* 목록형 카드는 줄마다 같은 높이 */
.ncs{grid-auto-rows:1fr}.helpg{grid-auto-rows:1fr}
.fcs{display:grid;grid-auto-rows:1fr;gap:8px}
.fc{align-items:center}
.cmprow{min-height:72px}
.srow{min-height:96px}
.stp3 li{min-height:68px}
.ev-opt{min-height:96px}.evo.done .ev-opt{min-height:84px}
/* 단계 이름표·탭·칩: 같은 너비 */
.sg{min-width:132px;justify-content:center}
.stopn{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.stopn .tab{height:auto;min-height:54px;justify-content:center;text-align:center;line-height:1.2;padding:6px 8px}
.mats .chip{min-width:132px;justify-content:center}
.pfm .chips{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pfm .chips .chip{justify-content:center;text-align:center;min-height:56px;line-height:1.25}
.chips.eq{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
/* 진행 블록·육하원칙 칸: 같은 너비 */
.wfoot .hint{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.rq{justify-content:space-between}
.cov6,.book{grid-auto-rows:1fr}
/* 한 줄에 놓이는 버튼은 같은 크기 */
.shw .btn,.pres .btn{min-width:250px}
.R .ft .btn{min-width:230px}

/* ===== 가독성 2차 조정: 상단 바·시사회·수첩·쓰기 아래 블록 ===== */
#top{gap:10px}
.brand{gap:10px}.wordmark{font-size:27px}
#steps{gap:5px}
.sg{min-width:0;height:44px;padding:0 13px 0 6px;font-size:20px;gap:6px}
.sg i{width:28px;height:28px;font-size:18px}
.tbtn{height:46px;padding:0 15px;font-size:20px;gap:6px}
.logoLink{margin-left:2px;padding-left:12px}.brandlogo{height:42px}
#hud{gap:8px;padding:0 14px 0 6px}
#hud .lbl{font-size:20px}#hud small{font-size:20px}#hud b{font-size:28px}#hud .hb{width:96px}
/* 시사회 독자 카드: 그림은 줄이고 글은 키움 */
.rcd{grid-template-columns:170px 1fr;gap:6px 14px;padding:12px 18px 14px}
.rcd .pic img{height:150px;max-width:170px}
.rcd h3{font-size:26px}
.rcd .sub{font-size:24px;margin-top:2px}
.rcd .ck4{gap:6px}.k4{padding:3px 4px;font-size:20px}
.rcd .chat{gap:5px}.rcd .cb{padding:5px 12px;line-height:1.3}
.cmprow{min-height:60px;padding:5px 14px}
.cmprow .ci{font-size:24px}.cmprow .dif{font-size:20px}
.cmpc{padding:12px 20px}
.tot .nn{font-size:54px}
/* 기자 수첩 카드 목록: 5장이 한 화면에 */
.ncs.one{gap:10px}
.ncs.one .nc{padding:11px 22px;grid-template-columns:56px 1fr;gap:16px}
.ncs.one .nc i{width:56px;height:56px;font-size:28px}
.ncs.one .nc b{font-size:28px;margin-bottom:1px}.ncs.one .nc p{font-size:22px;line-height:1.4}
/* 쓰기 화면 아래: 진행 블록 2열 + 버튼 */
.wfoot{align-items:flex-end}
.wfoot .hint{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;flex:0 0 430px;width:430px}
.rq{padding:3px 10px;font-size:21px}
#fB{height:190px}

/* 독자 카드 가독성 + 가운데 안내 블록 */
.rt{padding:16px 22px 22px;gap:10px}
.rt img{height:240px}
.rt h3{font-size:40px}
.rt .rl{font-size:23px;padding:5px 20px}
.rt .gp{font-size:22px;padding:5px 16px}
.rt .pf{gap:8px}
.rt .pf div{font-size:25px;font-weight:700;line-height:1.35;padding:9px 16px;background:#fff;border:2px solid var(--ink);border-radius:14px;min-height:76px}
.rt .pf small{font-size:21px;margin-bottom:1px}
.pickbar{display:flex;flex-direction:column;align-items:center;gap:12px}
.hintblk{min-width:640px;text-align:center;background:#fff;border:3px solid var(--ink);border-radius:18px;box-shadow:0 5px 0 var(--ink);padding:10px 34px;font-size:27px;font-weight:800;color:var(--ink2)}
.hintblk.ok{background:#fff2b8;color:var(--ink)}
.ic3 p{font-size:23px}.ic3 h3{font-size:32px}

/* 점선 없음: 빈 칸은 연한 실선 + 옅은 바탕 */
.bs,.cv,.blank,.tray,.blk,.stamps i,.goalbar .sl i{border-style:solid!important;border-color:#d9cdb2}
.blank{border-color:var(--ink)!important}
.blk.done{border-color:var(--lc,var(--ok))!important}
/* 블록 안 글자 가운데 */
.bs,.cv,.blockt,.blockt b,.blockt span,.lab,.chip,.tab,.rq,.k4,.dif,.cmprow .ci,.srow p,.ev-opt,.stp3 li,.op,.fc b{text-align:center}
.bs,.cv{display:flex;flex-direction:column;align-items:center;justify-content:center}
.chip,.tab,.rq{justify-content:center}
.lab{justify-items:center;align-items:center;grid-template-columns:1fr}.lab b{grid-row:auto;justify-self:center}
.pfm .chips .chip,.plan .chip{justify-content:center}
.ev-opt{grid-template-columns:60px 1fr;text-align:center}
.srow{grid-template-columns:1fr auto}.srow p{text-align:left}
.stp3 li span{text-align:left}
/* 현장 사진·그래프 카드: 설명은 한 줄, 높이 통일 */
.clue .phs{align-items:stretch}
.clue .ph2 figcaption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font-size:21px}
.clue .ph2{display:flex;flex-direction:column}
/* 독자 고르기 화면: 버튼이 카드를 가리지 않게 */
.pick{min-height:0}
.pk3{min-height:0}
.rt img{height:200px}
.rt .pf div{min-height:68px;font-size:24px}
.hintblk{min-width:560px}

/* 취재 수첩: 사진·그래프도 스크롤 없이 한눈에 */
.R .body.media{overflow:visible}
.body.media .npc{display:none}
.body.media .clue{padding:12px 16px;gap:8px}
.clue .phs{gap:12px}
.clue .ph2{padding:6px 6px 4px}
.clue .ph2 img{aspect-ratio:16/9}
.clue .ph2 figcaption{font-size:20px;padding:4px 2px 0}
.clue .ph2 .pt{font-size:19px;left:12px;top:12px}
.clue .gx{max-width:470px;margin:0 auto;box-shadow:none}
.clue .gx svg{max-height:290px;width:100%;height:auto}
.R .ft .lbl.fin{font-size:22px;font-weight:800;color:#17583e;background:var(--okl);border-radius:99px;padding:6px 18px}

.clue .ph2 img{aspect-ratio:4/3}

/* 신문: 자료(사진·그래프·인터뷰)는 본문 위 한 줄에 같은 높이로 */
.np .media{display:grid;gap:12px;align-items:stretch;grid-auto-rows:210px}
.np .media.m1{grid-template-columns:1fr}.np .media.m2{grid-template-columns:1fr 1fr}.np .media.m3{grid-template-columns:1.1fr 1fr 1fr}
.np .media figure,.np .media blockquote{margin:0;height:100%;display:flex;flex-direction:column;overflow:hidden;border:1px solid #cfc3a8;background:#fff;border-radius:6px;padding:6px}
.np .media figure .two{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.np .media figure .two img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.np .media figure>svg{flex:1;min-height:0;width:100%}
.np .media figcaption{font-size:15px;padding:4px 2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.np .media blockquote{justify-content:center;border:1px solid #cfc3a8;border-top:4px solid var(--ink);font-size:21px;padding:10px 14px;text-align:center}
.np .media blockquote small{margin-top:6px}
.np.sm .media{grid-auto-rows:120px;gap:8px}.np.sm .media blockquote{font-size:15px;padding:6px 8px}.np.sm .media figcaption{font-size:12px}
.np .cols{font-size:19px}
@media print{
  #printroot .media{display:grid;gap:3mm;grid-auto-rows:42mm;margin:2mm 0 3mm}
  #printroot .media.m1{grid-template-columns:1fr}#printroot .media.m2{grid-template-columns:1fr 1fr}#printroot .media.m3{grid-template-columns:1.1fr 1fr 1fr}
  #printroot .media figure,#printroot .media blockquote{margin:0;height:100%;display:flex;flex-direction:column;overflow:hidden;border:1px solid #999;padding:1.5mm;break-inside:avoid}
  #printroot .media figure .two{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:1.5mm}
  #printroot .media figure .two img{width:100%;height:100%;object-fit:cover}
  #printroot .media figure>svg{flex:1;min-height:0;width:100%}
  #printroot .media blockquote{justify-content:center;text-align:center;font-size:10pt;border-top:2px solid #000}
}

.scr.still{animation:none}
.prol .dlg p .mean{display:block;margin-top:8px;font-size:26px;font-weight:700;color:var(--ink2);background:none;padding:0;align-self:auto}
.ntw{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}
.ntt{font-size:24px;font-weight:800;display:flex;align-items:center;justify-content:space-between}
.ntt em{font-style:normal;font-size:22px;color:#fff;background:var(--ink);border-radius:99px;padding:2px 14px}
.ntg{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1;min-height:0}
.nt{background:#f6f0e3;border-radius:18px;border:3px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px;text-align:center;min-height:100px}
.nt i{font-style:normal;font-size:40px;font-weight:800;color:#b7ab92;line-height:1}
.nt span{font-size:21px;font-weight:700;color:var(--ink2);line-height:1.35}
.nt.on{background:#fff;border-color:var(--lc);animation:pop .4s both}
.nt.on b{font-size:32px;font-weight:800;color:var(--lc);line-height:1.1}
[data-act=t1Lab],[data-act=t2Lab],[data-act=t4Lab]{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.dragghost{position:absolute;z-index:200;pointer-events:none;transform:translate(-50%,-50%);box-sizing:border-box;box-shadow:0 14px 0 rgba(0,0,0,.25);opacity:.95;margin:0}
.dragsrc{opacity:.4}
.blk.over{background:#fff2b8;border-color:#e8b800;box-shadow:0 0 0 6px rgba(255,213,74,.7)}
.blockt span,.nt span{text-wrap:balance;word-break:keep-all}
.ntg.c3{grid-template-columns:1fr 1fr 1fr}
.ntg.one{grid-template-columns:1fr}
.ntg.one .nt{min-height:0;padding:6px 14px}
.ntg.one .nt.on b{font-size:23px;color:var(--ink);line-height:1.4;font-weight:700}
.ntg.one .nt.on b u{text-decoration:none;font-weight:800;color:#d6452a;background:#ffe9a8;border-radius:8px;padding:0 8px}
.ntg.one .nt i{font-size:30px}
.ntg.one .nt span:empty{display:none}
/* 기자증 시험 2·4번: 위쪽 바와 겹치지 않도록 높이 맞추기 */
.scr[data-k=t2] .paperc,.scr[data-k=t4] .paperc{padding:20px 34px 22px;gap:8px}
.scr[data-k=t2] .paperc .mast b{font-size:36px}
.scr[data-k=t2] .paperc .h1p{font-size:34px}.scr[data-k=t2] .paperc .h2p{font-size:22px}
.scr[data-k=t2] .tray,.scr[data-k=t4] .tray{padding:12px 20px 16px;gap:8px}
.scr[data-k=t2] .blockt,.scr[data-k=t4] .blockt{min-height:0}
.scr[data-k=t2] .blockt b{font-size:30px;padding:6px;min-height:50px}
.scr[data-k=t2] .blockt span{font-size:20px;padding:6px 10px 8px;min-height:50px}
.scr[data-k=t4] .blockt.word b{font-size:34px;padding:12px 6px;min-height:68px}
.scr[data-k=t1] .blockt b{min-height:50px}.scr[data-k=t1] .blockt span{min-height:50px}
.ntg.one .nt:not(.on){flex-direction:row;gap:12px}.ntg.one .nt:not(.on) span{font-size:20px}
.sp.over,.blank.over{background:#fff2b8;box-shadow:0 0 0 6px rgba(255,213,74,.7)}
/* 기자증 시험 1~4번: 왼쪽 열을 오른쪽 카드와 같은 높이(위·아래 맞춤)로 */
.scr[data-k=t1] .L,.scr[data-k=t2] .L,.scr[data-k=t3] .L,.scr[data-k=t4] .L{justify-content:flex-start;gap:20px}
.scr[data-k=t1] .L>.paperc,.scr[data-k=t2] .L>.paperc,.scr[data-k=t3] .L>.paperc,.scr[data-k=t4] .L>.paperc{flex:1 1 auto;min-height:0;justify-content:space-evenly}
.scr[data-k=t1] .L>.tray,.scr[data-k=t2] .L>.tray,.scr[data-k=t3] .L>.tray,.scr[data-k=t4] .L>.tray{flex:none}
.in-title #top{background:none;border-bottom:0;box-shadow:none;pointer-events:none}.in-title #top #fsBtn{pointer-events:auto}
.in-title #top{justify-content:flex-end}
/* 기자증 시험 3번: 문장 카드 */
.scr[data-k=t3] .paperc .bodyp{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}
.scr[data-k=t3] .paperc .bodyp .st{flex:1;align-items:center;grid-template-columns:44px 1fr;gap:14px;padding:6px 20px 6px 14px;border-radius:18px;background:#fff;border:2.5px solid #e3d7bd;box-shadow:0 4px 0 #e3d7bd;cursor:pointer;transition:transform .12s,box-shadow .12s,background .15s,border-color .15s;line-height:1.4}
.scr[data-k=t3] .paperc .bodyp .st i{width:38px;height:38px;margin:0;background:var(--navy,#1f2a44);color:#fff;font-size:22px}
.scr[data-k=t3] .paperc .bodyp button.st:hover{background:#fff6cf;border-color:#e8b800;box-shadow:0 6px 0 #e8b800;transform:translateY(-2px)}
.scr[data-k=t3] .paperc .bodyp button.st:active{transform:translateY(3px);box-shadow:0 1px 0 #e8b800}
.scr[data-k=t3] .paperc .bodyp .st.cut{background:#fdeceb;border-color:var(--acc);box-shadow:0 4px 0 #e9a99d;cursor:default}
.scr[data-k=t3] .paperc .bodyp .st.cut i{background:var(--acc)}
.scr[data-k=t3] .paperc .bodyp .st.ok{background:var(--okl);border-color:var(--ok);box-shadow:0 4px 0 #9bc8b0;cursor:default}
.scr[data-k=t3] .paperc .bodyp .st.ok i{background:var(--ok)}
.scr[data-k=t3] .paperc .bodyp .st:disabled{opacity:1}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cm{border-radius:18px;padding:12px 16px;display:flex;flex-direction:column;gap:4px;text-align:center;border:3px solid}
.cm b{font-size:28px;font-weight:800}.cm span{font-size:21px;font-weight:700;line-height:1.35;color:var(--ink2)}
.cm.fa{background:var(--okl);border-color:var(--ok)}.cm.fa b{color:#17583e}
.cm.op{background:#fdeceb;border-color:var(--acc)}.cm.op b{color:var(--acc)}
.ntg.op2 .nt.on b{font-size:22px;color:#8f2a1f;text-decoration:line-through;text-decoration-color:var(--acc);text-decoration-thickness:2px}
.ntg.op2 .nt.on{background:#fdeceb;border-color:var(--acc)}
.ntg.op2 .nt{min-height:70px}
.cm{padding:8px 14px}.cm b{font-size:25px}.cm span{font-size:20px}
.ntg.op2 .nt{min-height:0;padding:6px 14px}
.ntg.op2 .nt:not(.on){flex-direction:row;gap:12px}
.ntg.op2 .nt i{font-size:30px}
/* 기자증 시험 4번: 문장 카드 + 빈칸 */
.scr[data-k=t4] .paperc{counter-reset:bl}
.scr[data-k=t4] .paperc .bl{counter-increment:bl;flex:1;display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;background:#fff;border:2.5px solid #e3d7bd;box-shadow:0 4px 0 #e3d7bd;border-radius:18px;padding:6px 20px 6px 70px;position:relative;line-height:1.5;font-size:26px}
.scr[data-k=t4] .paperc .bl::before{content:counter(bl);position:absolute;left:16px;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:800}
.scr[data-k=t4] .paperc .blank{min-width:150px;height:46px;border-radius:14px;border:3px solid var(--ink)!important;background:#fff6cf;box-shadow:0 4px 0 var(--ink);font-size:26px;cursor:pointer;transition:transform .12s,box-shadow .12s,background .15s}
.scr[data-k=t4] .paperc .blank:hover{background:#ffe98a;transform:translateY(-2px);box-shadow:0 6px 0 var(--ink)}
.scr[data-k=t4] .paperc .blank.act,.scr[data-k=t4] .paperc .blank.over{background:#ffe08a;box-shadow:0 4px 0 var(--ink),0 0 0 6px rgba(255,213,74,.7)}
.scr[data-k=t4] .paperc .blank.done{background:var(--okl);border-color:var(--ok)!important;box-shadow:0 4px 0 #9bc8b0;color:#17583e;cursor:default;transform:none}
.scr[data-k=t4] .paperc .bl:has(.blank.done){background:#f4fbf7;border-color:#9bc8b0;box-shadow:0 4px 0 #bfe0cd}
.scr[data-k=t4] .paperc .bl:has(.blank.done)::before{background:var(--ok)}
.dragghost b{flex:1;display:grid;place-items:center;text-align:center}
.dragghost span{display:grid;place-items:center;text-align:center}
.dragghost.word b{padding:0}
.sixw{display:flex;align-items:center;gap:10px;margin-top:16px;background:#f6f0e3;border-radius:20px;padding:12px 18px}
.sixw b{font-size:24px;font-weight:800;margin-right:6px;white-space:nowrap}
.sixw span{flex:1;text-align:center;background:var(--lc);color:#fff;border-radius:14px;padding:8px 6px;font-size:24px;font-weight:800;white-space:nowrap;box-shadow:0 4px 0 rgba(0,0,0,.18)}
.ncs>.sixw{margin:0;flex-wrap:wrap;align-content:center;justify-content:center;gap:8px;padding:10px 16px;border:3px solid #e3d7bd;background:#fff}
.ncs>.sixw b{width:100%;text-align:center;margin:0 0 2px;font-size:22px}
.ncs>.sixw span{flex:0 0 calc(33.3% - 6px);font-size:21px;padding:6px 4px}
/* 독자·사건 고르기: 카드와 아래 버튼이 겹치지 않도록 */
.pickbar{flex-direction:row;justify-content:center;align-items:center;gap:24px}
.pickbar .hintblk{margin:0}
.pick{gap:14px}
.rt img{height:170px}
.rt .pf div{min-height:60px}
#ihint.ok{display:flex;align-items:center;justify-content:center;gap:16px;font-size:30px;padding:12px 32px;min-width:760px;box-shadow:0 6px 0 var(--ink),0 0 0 6px rgba(255,213,74,.75)}
#ihint .who{font-weight:800;color:var(--ink)}
#ihint .lv{font-size:32px;font-weight:800;color:#fff;border-radius:99px;padding:2px 22px;box-shadow:0 4px 0 rgba(0,0,0,.25)}
#ihint .lv.high{background:var(--ok)}#ihint .lv.mid{background:#e08a00}#ihint .lv.low{background:var(--acc)}
#ihint .cm2{font-weight:800;color:var(--ink)}
#ihint.pop2{animation:pop .45s both}
/* 점검판 칸: 글자를 칸 한가운데에 */
.bs{flex-direction:row;gap:6px;min-height:48px;line-height:1.2}
.bs small{margin:0;min-height:0;display:inline-flex;align-items:center}
.bs small:empty{display:none}
.cv{display:flex;align-items:center;justify-content:center;text-align:center;min-height:48px}
/* 취재 수첩: 글 단서 카드가 남는 높이를 고르게 채우고, 내용은 가운데 */
#RP .body:not(.media) .clue{flex:1 1 0;min-height:0;justify-content:center;padding:16px 24px;gap:14px}
#RP .body:not(.media) .clue .qt{font-size:26px;line-height:1.55}
#RP .body:not(.media) .clue .acts2{gap:14px}
#RP .body:not(.media) .clue .res{font-size:23px}
/* 스스로 점검: 평가 줄이 남는 높이를 고르게 채움 */
.R .body>.srow{flex:1 1 0;min-height:0;align-items:center}
/* 취재 단서 카드 결과: 가운데 정렬 + 알약 표시 */
#RP .body:not(.media) .clue{align-items:center;text-align:center}
#RP .body:not(.media) .clue .acts2{justify-content:center}
#RP .clue .res{justify-content:center;gap:10px;flex-wrap:wrap}
#RP .clue .rok{display:inline-flex;align-items:center;gap:6px;background:var(--ok);color:#fff;border-radius:99px;padding:4px 18px;font-size:22px;font-weight:800;box-shadow:0 3px 0 #1a6445}
#RP .clue .rok svg{stroke:#fff;color:#fff}
#RP .clue .rel{background:#fff;color:var(--lc);border:3px solid var(--lc);border-radius:99px;padding:2px 18px;font-size:24px;font-weight:800}
#RP .clue .rsk{display:inline-flex;background:#d9cdb2;color:var(--ink2);border-radius:99px;padding:4px 18px;font-size:22px;font-weight:800}
/* 겹침 방지: 카드는 내용보다 작아지지 않음(넘치면 안쪽이 스크롤) */
#RP .body:not(.media) .clue{flex:1 0 auto;min-height:auto;overflow:visible}
.R .body>.srow{min-height:auto;flex:1 0 auto}
/* 사진·그래프 단서 카드: 버튼은 사진에서 띄워 가운데에 */
#RP .body.media .clue{align-items:center;gap:16px}
#RP .body.media .clue .acts2,#RP .body.media .clue .res{justify-content:center;margin-top:12px;width:100%}
#RP .body.media .clue .phs,#RP .body.media .clue .gx{margin-bottom:6px}
/* 그래프 단서: 크게, 버튼은 가운데 */
#RP .body.media .clue .gx{max-width:none;width:100%;margin:0 auto 6px}
#RP .body.media .clue .gx svg{max-height:none;width:100%;height:auto}
#RP .body.media .clue .acts2{justify-content:center;width:100%;margin-top:14px}
.clue .qt{word-break:keep-all}
#RP .body:not(.media) .clue .qt{font-size:23px;line-height:1.5}
/* 사진·그래프 단서 카드: 둘 다 남는 높이를 가득 채워 같은 높이로 */
#RP .body.media .clue{flex:1 0 auto;justify-content:center}
#RP .body.media .clue .phs{flex:1;min-height:0}
#RP .body.media .clue .ph2 img{flex:1;min-height:0;aspect-ratio:auto;height:100%;object-fit:cover}
#RP .body.media .clue .gx{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;box-shadow:none}
#RP .body.media .clue .gx svg{height:auto;max-height:100%;width:100%}
/* 낚시냥 습격 머리말: 크게, 아래에 구분선 */
.scr[data-k=ev] .rhead{padding-bottom:12px;border-bottom:3px solid #e3d7bd;align-items:center}
.scr[data-k=ev] .rhead h2{font-size:42px;color:var(--acc);letter-spacing:-.01em}
.scr[data-k=ev] .rhead .pill{font-size:24px;height:42px;padding:0 22px}
/* 낚시냥 결과 화면: 내용이 카드를 넘지 않도록 촘촘하게 + 안전장치 */
.evx{min-height:0}.evo{min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}
.evo.done{justify-content:flex-start;gap:10px}
.evo.done .q{font-size:27px}.evo.done .q small{display:none}
.evo.done .ev-opt{min-height:0;padding:8px 22px;font-size:24px;border-radius:22px}
.evo.done .ev-opt .n{width:40px;height:40px;font-size:21px}
.evo.done .meter{font-size:21px}
.evo.done .fb{padding:10px 18px;font-size:21px;line-height:1.4}
.evo.done .btn.big{height:68px;font-size:28px;padding:0 48px}
/* 기사 쓰기 아래줄: 글자 수 칸 4개를 한 줄로, 버튼은 아래 줄 오른쪽 */
.wfoot{flex-wrap:wrap;gap:12px 14px;padding-top:4px}
.wfoot .hint{flex:1 1 100%;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.wfoot .rq{justify-content:center;white-space:nowrap;padding:6px 10px;font-size:22px;min-width:0}
.wfoot>.btn{margin-left:0}
.wfoot>.btn.line{margin-left:auto}
/* 사실 카드: 한 줄 구성(이름표 | 문장 | 넣기 버튼 2개)으로 줄여 스크롤 없이 */
.fcs{overflow-y:visible;grid-auto-rows:1fr;gap:8px;flex:1}
.fc{grid-template-columns:96px 1fr auto;gap:4px 12px;padding:8px 12px}
.fc b{grid-row:auto;text-align:center;padding:4px 6px;font-size:21px}
.fc p{font-size:21px;line-height:1.35}
.fc .ac{flex-direction:column;gap:5px;margin:0}
.fc .ac button{height:32px;padding:0 14px;white-space:nowrap}
.fc{grid-template-columns:74px 1fr auto;gap:4px 10px;padding:7px 10px}
.fc b{padding:3px 4px;font-size:20px}
.fc .ac button{padding:0 12px;height:30px}
/* 쓰기 도움 틀 */
.f-lab .sc{margin-left:auto;display:flex;gap:6px}
.f-lab .sc+.cn{margin-left:10px}
.sch{height:30px;padding:0 12px;border-radius:99px;background:#fff;border:2px solid var(--navy);color:var(--navy);font-size:21px;font-weight:800;white-space:nowrap;transition:.12s}
.sch:hover{background:#fff2b8}.sch:active{transform:translateY(2px)}
.fc{gap:4px 10px}.fcs{gap:6px}
.wfoot>.btn,.wfoot>.btn.sm{height:60px;min-width:250px;font-size:24px;padding:0 24px}
/* 스스로 점검: 번호 + 질문 + 평가 말 + 별 */
.R .body>.srow{display:grid;grid-template-columns:48px 1fr auto auto;gap:14px;border:3px solid transparent;background:#f6f0e3;padding:12px 20px;transition:.2s}
.R .body>.srow.done{background:#f4fbf7;border-color:#9bc8b0}
.srow .sn{font-style:normal;width:42px;height:42px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:23px;font-weight:800}
.srow.done .sn{background:var(--ok)}
.srow .rtag{min-width:148px;text-align:center;border-radius:99px;padding:4px 14px;font-size:21px;font-weight:800;background:#e3d7bd;color:var(--ink2)}
.srow .rtag.l1{background:#fdeceb;color:#8f2a1f;border:2px solid var(--acc)}
.srow .rtag.l2{background:#fff3d6;color:#7a5200;border:2px solid #e8a800}
.srow .rtag.l3{background:var(--okl);color:#17583e;border:2px solid var(--ok)}
.srow .rate button{width:68px;height:68px}.srow .rate button svg{width:38px;height:38px}
.srow .rate button:not(.on):hover{background:#fff6cf;border-color:#e8b800}
/* 시사회 비교표: 항목 알약, 큰 별, 결과 알약 */
.cmprow{grid-template-columns:150px 1fr 1fr 290px;gap:14px}
.cmprow .ci{background:var(--navy);color:#fff;border-radius:99px;padding:6px 10px;font-size:24px;text-align:center}
.cmprow .cb2{justify-content:center;gap:12px;background:rgba(29,27,23,.06);padding:5px 14px}
.cmprow .dd svg{width:32px;height:32px}
.cmprow .dif{font-size:22px;padding:8px 12px;text-align:center}
.cmprow .dif.same{background:var(--ok);color:#fff}
.cmprow .dif.hi{background:#dfe8fb;color:#1f3a7a;border:2px solid var(--blue)}
.cmprow .dif.lo{background:#fdeceb;color:#8f2a1f;border:2px solid var(--acc)}
/* 점검 후 보완 */
/* 짝 도움 쪽지: 입력칸이 눌려 글자가 잘리지 않게 */
.pfm>*{flex-shrink:0}
.pfm .sm-in{height:52px;flex:none}
.pfm{gap:10px;padding:22px 32px}
.pfm .chips{gap:8px}.pfm .chips .chip{min-height:52px;padding:6px 14px}
/* 기사 쓰기 아래줄: 칸이 5개(고쳐 쓰기)여도 한 줄 */
.wfoot .hint{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}
.wfoot .rq{font-size:21px;padding:6px 6px}
/* 취재 단서 카드: 소문 안내가 나와도 스크롤이 생기지 않게 촘촘히 */
#RP .body:not(.media) .clue{padding:12px 20px;gap:10px}
#RP .body:not(.media) .clue .qt{font-size:22px}
#RP .body:not(.media) .clue .fb{padding:8px 14px;font-size:21px;line-height:1.4}
#RP .body:not(.media) .npc img{height:72px}
#RP .body:not(.media) .clue{padding:10px 18px;gap:8px}
#RP .body:not(.media) .clue .btn.sm{height:46px;font-size:21px;padding:0 22px}
.fcs{overflow-y:auto;min-height:0;scrollbar-width:thin}
/* 현장 사진 1·2: 같은 크기(같은 비율·같은 높이) */
#RP .body.media .clue .phs{align-items:stretch;flex:none}
#RP .body.media .clue .ph2{flex:1 1 0;min-width:0}
#RP .body.media .clue .ph2 img{flex:none;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
/* 낚시냥 제목 고르기 보기: 조금 작게 */
.evo:not(.done) .ev-opt{min-height:92px;max-height:120px;font-size:30px;padding:14px 28px;grid-template-columns:50px 1fr;gap:18px;border-radius:24px}
.evo:not(.done) .ev-opt .n{width:50px;height:50px;font-size:26px}
