
:root{
  --bg:#f5f6f8;
  --paper:#fff;
  --line:#e2e5e9;
  --line-dark:#cdd2d8;
  --text:#17191c;
  --sub:#6f7680;
  --blue:#2f4f88;
  --blue2:#233c69;
  --red:#d94b45;
  --soft:#f8f9fb;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Arial,"Noto Sans KR","Apple SD Gothic Neo",sans-serif}
body{min-width:320px}
button,input,textarea{font:inherit}
button,a{ -webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
button{cursor:pointer}

.fiction-banner{
  background:#1d2430;
  color:#cfd5df;
  font-size:12px;
  text-align:center;
  padding:7px 14px;
  letter-spacing:-.2px;
}
.topbar{
  background:#fff;
  border-bottom:1px solid var(--line);
}
.topbar-inner{
  max-width:1100px;
  margin:0 auto;
  min-height:68px;
  display:flex;
  align-items:center;
  gap:28px;
  padding:0 20px;
}
.brand{
  display:flex;
  align-items:center;
  gap:9px;
  font-size:22px;
  font-weight:800;
  color:var(--blue2);
  white-space:nowrap;
}
.brand-mark{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border:2px solid var(--blue);
  border-radius:7px;
  font-size:20px;
}
.search{
  flex:1;
  max-width:470px;
  height:38px;
  display:flex;
  border:1px solid #bac1ca;
  background:#fff;
}
.search input{
  flex:1;
  min-width:0;
  border:0;
  outline:0;
  padding:0 12px;
  color:var(--text);
}
.search button{
  width:62px;
  border:0;
  border-left:1px solid #d8dce1;
  background:#f5f6f8;
  color:#3c4550;
  font-weight:700;
}
.toplinks{
  margin-left:auto;
  display:flex;
  gap:18px;
  color:#555e69;
  font-size:13px;
}
.toplinks a:hover{color:var(--blue)}

.page{
  max-width:970px;
  margin:34px auto 70px;
  padding:0 18px;
}
.board-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  padding-bottom:15px;
  border-bottom:2px solid var(--blue2);
}
.eyebrow{
  margin:0 0 4px;
  font-size:10px;
  letter-spacing:1.6px;
  color:#9399a2;
}
.board-head h1{
  margin:0;
  color:var(--blue2);
  font-size:26px;
  letter-spacing:-1px;
}
.board-actions{
  display:flex;
  gap:6px;
}
.board-actions button,.bottom-actions button{
  height:34px;
  border:1px solid #b8bec7;
  background:#fff;
  color:#424a54;
  padding:0 12px;
  font-size:12px;
}
.board-actions button:last-child,.bottom-actions button:last-child{
  background:var(--blue);
  border-color:var(--blue);
  color:#fff;
}
.board-tabs{
  height:45px;
  display:flex;
  align-items:stretch;
  background:#fff;
  border:1px solid var(--line);
  border-top:0;
}
.board-tabs button{
  min-width:78px;
  border:0;
  border-right:1px solid var(--line);
  background:#fff;
  color:#666d76;
  font-size:13px;
}
.board-tabs button.active{
  color:var(--blue);
  font-weight:800;
  box-shadow:inset 0 -3px 0 var(--blue);
}

.post-card{
  margin-top:14px;
  background:var(--paper);
  border:1px solid var(--line-dark);
}
.post-head{
  padding:19px 22px 16px;
  border-bottom:1px solid var(--line);
}
.post-label{
  display:inline-block;
  color:#fff;
  background:#7e8792;
  font-size:10px;
  line-height:20px;
  padding:0 7px;
  margin-bottom:9px;
}
.post-head h2{
  margin:0 0 10px;
  font-size:21px;
  line-height:1.35;
  letter-spacing:-.7px;
}
.post-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:0;
  color:var(--sub);
  font-size:11px;
}
.post-meta span{
  display:flex;
  align-items:center;
}
.post-meta span:not(:first-child)::before{
  content:"";
  width:1px;
  height:10px;
  background:#d9dde2;
  margin:0 9px;
}
.post-meta .author{
  color:#323941;
  font-weight:700;
}
.more{
  margin-left:auto;
  border:0;
  background:transparent;
  font-size:19px;
  color:#858c95;
}


.post-body{
  min-height:290px;
  padding:38px 28px 70px;
  font-size:16px;
  line-height:1.9;
  letter-spacing:-.25px;
}
.post-body p{margin:0;max-width:760px}
.post-reaction{
  display:flex;
  justify-content:center;
  gap:8px;
  padding:0 20px 28px;
}
.vote{
  min-width:94px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  background:#fff;
  border:1px solid #cfd3d9;
  color:#555d67;
}
.vote-icon{font-size:11px}
.vote b{color:#252a30}
.vote.active.up{
  border-color:#4d6a9d;
  color:#2d4f86;
  background:#f4f7fc;
}
.vote.active.down{
  border-color:#cf6a64;
  color:#b54540;
  background:#fff7f7;
}

.comments{
  margin-top:14px;
  background:#fff;
  border:1px solid var(--line-dark);
}
.comments-head{
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 18px;
  border-bottom:1px solid var(--line);
}
.comments-head h3{
  margin:0;
  font-size:14px;
}
.comments-head h3 strong{color:var(--red)}
.comments-head button{
  border:0;
  background:transparent;
  color:#7a818a;
  font-size:11px;
  padding:7px 5px;
}
.comment{
  border-bottom:1px solid #eceef1;
  padding:0 18px;
}
.comment-row{
  min-height:72px;
  display:grid;
  grid-template-columns:115px 1fr 110px;
  align-items:center;
  column-gap:14px;
}
.nick{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  font-size:12px;
}
.mini-avatar{
  width:24px;
  height:24px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#eef0f3;
  border:1px solid #d9dde2;
  color:#858b93;
  font-size:11px;
  font-weight:800;
}
.nick strong{white-space:nowrap}
.comment p,.reply p{
  margin:0;
  font-size:13px;
  line-height:1.55;
  word-break:keep-all;
}
.comment-side{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  color:#999fa7;
  font-size:10px;
  white-space:nowrap;
}
.tiny-like{
  border:0;
  background:transparent;
  color:#8d949c;
  padding:5px 2px;
  font-size:11px;
}
.tiny-like.liked{color:var(--red)}
.reply{
  min-height:62px;
  display:grid;
  grid-template-columns:30px 1fr 110px;
  align-items:center;
  margin-left:108px;
  padding:0 0 0 12px;
  background:#f8f9fa;
  border-top:1px solid #eceef1;
}
.reply-arrow{
  color:#a8aeb6;
  font-size:16px;
  align-self:flex-start;
  padding-top:18px;
}
.reply-main{
  display:grid;
  grid-template-columns:95px 1fr;
  gap:10px;
  align-items:center;
}
.reply-avatar{
  width:21px;
  height:21px;
  font-size:9px;
}
.comment-form{
  margin:18px;
  border:1px solid #cfd4da;
  background:#fff;
}
.form-top{
  display:flex;
  gap:8px;
  padding:10px 12px 0;
  font-size:11px;
}
.form-top strong{color:#343b43}
.form-top span{color:#9aa0a7}
.comment-form textarea{
  width:100%;
  min-height:82px;
  resize:vertical;
  border:0;
  outline:0;
  padding:10px 12px;
  line-height:1.5;
  font-size:13px;
}
.form-bottom{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  padding:0 8px 8px;
  color:#9aa0a7;
  font-size:10px;
}
.form-bottom button{
  border:0;
  background:var(--blue);
  color:white;
  min-width:58px;
  height:30px;
  font-size:12px;
  font-weight:700;
}

.post-list{
  margin-top:26px;
  border-top:2px solid var(--blue2);
  background:#fff;
}
.list-head,.list-row{
  display:grid;
  grid-template-columns:70px minmax(0,1fr) 90px 80px 64px 54px;
  align-items:center;
  min-height:39px;
  border-bottom:1px solid #e7e9ec;
  font-size:11px;
  text-align:center;
}
.list-head{
  background:#f7f8fa;
  color:#656d76;
  font-weight:700;
}
.list-row span:nth-child(2){
  text-align:left;
  padding:0 8px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.list-row em{
  font-style:normal;
  color:var(--red);
}
.list-row.current{background:#f8faff}
.list-row.muted{color:#59616b}
.bottom-actions{
  display:flex;
  justify-content:space-between;
  margin-top:12px;
}
.toast{
  position:fixed;
  left:50%;
  bottom:32px;
  transform:translate(-50%,18px);
  opacity:0;
  pointer-events:none;
  padding:11px 16px;
  border-radius:4px;
  background:rgba(20,24,29,.92);
  color:#fff;
  font-size:12px;
  transition:.22s ease;
  z-index:20;
}
.toast.show{
  opacity:1;
  transform:translate(-50%,0);
}

@media (max-width:760px){
  .fiction-banner{font-size:10px;padding:6px 10px}
  .topbar-inner{min-height:56px;padding:0 13px;gap:12px}
  .brand{font-size:18px}
  .brand-mark{width:28px;height:28px;font-size:17px}
  .search{height:34px}
  .search button{width:52px;font-size:11px}
  .toplinks{display:none}
  .page{margin:18px auto 45px;padding:0 10px}
  .board-head{padding-bottom:11px}
  .board-head h1{font-size:22px}
  .board-actions button:first-child{display:none}
  .board-tabs{height:42px;overflow-x:auto}
  .board-tabs button{min-width:70px}
  .post-head{padding:16px 15px 13px}

  .post-head h2{font-size:18px}
  .post-meta span:nth-of-type(3),
  .post-meta span:nth-of-type(4){display:none}
  .post-body{min-height:225px;padding:30px 16px 50px;font-size:15px;line-height:1.8}
  .post-reaction{padding-bottom:23px}
  .vote{min-width:88px;height:48px}
  .comments-head{padding:0 13px}
  .comment{padding:0 13px}
  .comment-row{
    grid-template-columns:85px 1fr;
    grid-template-areas:
      "nick side"
      "text text";
    gap:5px 10px;
    padding:12px 0 13px;
  }
  .comment-row .nick{grid-area:nick}
  .comment-row p{grid-area:text;padding-left:32px}
  .comment-row .comment-side{grid-area:side}
  .reply{
    margin-left:24px;
    min-height:0;
    grid-template-columns:24px 1fr;
    grid-template-areas:
      "arrow main"
      "arrow side";
    padding:10px 8px 11px 3px;
  }
  .reply-arrow{grid-area:arrow;padding-top:1px}
  .reply-main{
    grid-area:main;
    display:block;
  }
  .reply-main .nick{margin-bottom:7px}
  .reply-main p{padding-left:29px}
  .reply .comment-side{grid-area:side;margin-top:4px}
  .comment-form{margin:13px}
  .post-list{margin-top:18px}
  .list-head,.list-row{
    grid-template-columns:52px minmax(0,1fr) 62px;
  }
  .list-head span:nth-child(4),
  .list-head span:nth-child(5),
  .list-head span:nth-child(6),
  .list-row span:nth-child(4),
  .list-row span:nth-child(5),
  .list-row span:nth-child(6){display:none}
}

@media (max-width:430px){
  .search input{font-size:12px}
  .search button{display:none}
  .post-meta span:not(:first-child)::before{margin:0 7px}
  .board-actions button{height:32px}
  .comment-side{gap:6px}
}







/* v10: seamless editorial ad using the same source image as the extended background */
/* v11: seamless editorial banner with isolated character */
.junhyeok-ad{
  position:relative;
  overflow:hidden;
  min-height:270px;
  margin:14px 0 0;
  border:1px solid #b9d7e8;
  background:
    radial-gradient(circle at 63% 42%, rgba(255,255,255,.82) 0%, rgba(235,249,255,.48) 24%, rgba(215,242,255,.08) 50%, rgba(0,184,238,0) 70%),
    linear-gradient(112deg,#04b7ed 0%,#00aee9 26%,#40c6ee 48%,#b9eff9 73%,#edfaff 100%);
  box-shadow:inset 0 0 70px rgba(0,93,177,.08);
  isolation:isolate;
}
.junhyeok-ad::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-5;
  background:
    linear-gradient(117deg,transparent 0 54%,rgba(35,108,255,.10) 54% 55%,transparent 55% 58%,rgba(40,95,235,.13) 58% 59%,transparent 59%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 17px);
  pointer-events:none;
}
.junhyeok-ad::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;height:43%;
  z-index:-4;
  background:linear-gradient(0deg,rgba(0,91,177,.12),rgba(0,149,220,.025) 70%,transparent);
  clip-path:polygon(0 74%,20% 47%,38% 70%,54% 35%,72% 61%,100% 22%,100% 100%,0 100%);
}
.ad-bg-title{
  position:absolute;
  top:-30px;
  left:33%;
  z-index:-3;
  font-family:Georgia,"Times New Roman",serif;
  font-size:112px;
  font-weight:700;
  letter-spacing:-7px;
  color:rgba(255,255,255,.60);
  white-space:nowrap;
  line-height:1;
  text-shadow:0 1px 0 rgba(22,111,188,.14);
}
.ad-bg-script{
  position:absolute;
  right:4.5%;
  top:47px;
  z-index:-2;
  font-family:"Brush Script MT","Segoe Script",cursive;
  font-style:italic;
  font-size:54px;
  color:rgba(72,61,235,.24);
  transform:rotate(-8deg);
}
.ad-deco-left{
  position:absolute;
  top:12px;
  left:12px;
  width:86px;
  height:112px;
  z-index:1;
  border-left:5px solid rgba(3,27,49,.78);
  background:rgba(255,255,255,.82);
  box-shadow:0 5px 18px rgba(3,70,130,.13);
}
.ad-mini-barcode{
  position:absolute;
  left:10px;top:10px;right:10px;height:38px;
  background:repeating-linear-gradient(90deg,#101820 0 2px,transparent 2px 4px,#101820 4px 5px,transparent 5px 8px);
}
.ad-vertical-label{
  position:absolute;
  left:13px;bottom:8px;
  font-size:7px;
  font-weight:900;
  letter-spacing:1.6px;
  color:#0d385d;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
}
.ad-person{
  position:absolute;
  z-index:2;
  left:-38px;
  bottom:-122px;
  width:535px;
  max-width:none;
  height:auto;
  display:block;
  filter:drop-shadow(16px 12px 18px rgba(2,66,120,.18));
  pointer-events:none;
}
.ad-copy{
  position:relative;
  z-index:4;
  width:58%;
  margin-left:auto;
  min-height:270px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-end;
  text-align:right;
  padding:44px 20px 47px 28px;
}
.ad-kicker{
  display:block;
  margin-bottom:8px;
  color:rgba(13,56,93,.62);
  font-size:9px;
  font-weight:900;
  letter-spacing:2.6px;
}
.ad-copy strong{
  display:block;
  max-width:610px;
  color:#111d31;
  font-size:25px;
  line-height:1.26;
  letter-spacing:-1px;
  font-weight:900;
  text-shadow:0 1px 0 rgba(255,255,255,.72);
  word-break:keep-all;
}
.ad-copy strong span{
  color:#2748ff;
  font-weight:950;
  white-space:nowrap;
}
.ad-links{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  width:min(100%,430px);
  margin-top:15px;
}
.ad-link{
  display:flex;
  align-items:center;
  justify-content:center;
  height:46px;
  border-radius:6px;
  border:1px solid rgba(255,255,255,.78);
  color:#fff;
  font-size:13px;
  font-weight:950;
  letter-spacing:.45px;
  box-shadow:0 7px 16px rgba(28,67,136,.16),inset 0 1px 0 rgba(255,255,255,.42);
  text-shadow:0 1px 1px rgba(0,41,90,.18);
  text-decoration:none;
}
.safety-btn{background:linear-gradient(180deg,#56c9fa 0%,#129fe9 100%)}
.unsafety-btn{background:linear-gradient(180deg,#c98cff 0%,#8b48ec 100%)}
.ad-link:hover,.ad-link:focus-visible{filter:brightness(1.04)}
.ad-scanline{
  position:absolute;
  z-index:-1;
  height:1px;
  background:rgba(255,255,255,.55);
  box-shadow:0 0 0 1px rgba(18,133,209,.07);
}
.ad-scanline-one{left:49%;right:7%;bottom:55px}
.ad-scanline-two{left:57%;right:14%;bottom:39px}
.ad-bottom-code{
  position:absolute;
  right:18px;
  bottom:10px;
  z-index:1;
  display:flex;
  align-items:flex-end;
  gap:8px;
  opacity:.66;
}
.ad-bottom-code span{
  width:90px;height:18px;
  background:repeating-linear-gradient(90deg,#0e3858 0 2px,transparent 2px 4px,#0e3858 4px 5px,transparent 5px 8px);
}
.ad-bottom-code small{
  color:#15466c;
  font-size:6px;
  font-weight:800;
  letter-spacing:1.5px;
  white-space:nowrap;
}
@media(max-width:760px){
  .junhyeok-ad{min-height:248px;background:linear-gradient(122deg,#00afe7 0%,#31c1ef 45%,#c7f2fa 78%,#f1fbff 100%)}
  .ad-bg-title{left:23%;top:-7px;font-size:72px;letter-spacing:-4px}
  .ad-bg-script{right:5%;top:48px;font-size:36px}
  .ad-deco-left{width:54px;height:82px;left:7px;top:7px;border-left-width:3px}
  .ad-mini-barcode{left:6px;right:6px;top:7px;height:27px}
  .ad-vertical-label{left:8px;bottom:5px;font-size:5px}
  .ad-person{width:390px;left:-72px;bottom:-87px}
  .ad-copy{width:62%;min-height:248px;padding:38px 10px 36px 4px}
  .ad-kicker{font-size:7px;letter-spacing:1.5px;margin-bottom:5px}
  .ad-copy strong{font-size:16px;line-height:1.34;letter-spacing:-.6px}
  .ad-links{width:100%;gap:6px;margin-top:10px}
  .ad-link{height:39px;font-size:9px;border-radius:5px}
  .ad-bottom-code{right:8px;bottom:7px}
  .ad-bottom-code span{width:55px;height:12px}
  .ad-bottom-code small{display:none}
  .ad-scanline-one{left:54%;right:5%;bottom:44px}
  .ad-scanline-two{display:none}
}
@media(max-width:480px){
  .junhyeok-ad{min-height:224px}
  .ad-bg-title{font-size:58px;left:18%;top:2px}
  .ad-person{width:345px;left:-85px;bottom:-68px}
  .ad-copy{width:66%;min-height:224px;padding:34px 8px 30px 0}
  .ad-copy strong{font-size:14px}
  .ad-kicker{font-size:6px}
  .ad-link{height:36px;font-size:8px}
}


/* v12: exact supplied banner image + transparent clickable button hotspots */
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.junhyeok-ad.exact-banner{
  position:relative!important;
  display:block!important;
  width:100%!important;
  min-height:0!important;
  margin:14px 0 0!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid #cfd4da!important;
  background:#eef8ff!important;
  isolation:isolate;
}
.exact-banner-image{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:none!important;
  object-fit:contain!important;
  margin:0!important;
  padding:0!important;
}
.banner-hotspot{
  position:absolute!important;
  z-index:5!important;
  display:block!important;
  background:transparent!important;
  border:0!important;
  border-radius:999px!important;
  text-decoration:none!important;
  cursor:pointer!important;
  -webkit-tap-highlight-color:rgba(255,255,255,.18);
}
/* Coordinates are percentages of the supplied 2048×738 image. */
.banner-hotspot-safety{
  left:54.5%!important;
  top:66.2%!important;
  width:21.6%!important;
  height:18.7%!important;
}
.banner-hotspot-unsafety{
  left:76.6%!important;
  top:66.2%!important;
  width:22.0%!important;
  height:18.7%!important;
}
.banner-hotspot:focus-visible{
  outline:3px solid rgba(255,255,255,.98)!important;
  outline-offset:-5px!important;
  box-shadow:0 0 0 5px rgba(32,105,255,.55)!important;
}
@media (max-width:760px){
  .junhyeok-ad.exact-banner{
    margin-top:10px!important;
  }
  .banner-hotspot-safety{
    left:53.9%!important;
    top:64.8%!important;
    width:22.4%!important;
    height:21.5%!important;
  }
  .banner-hotspot-unsafety{
    left:76.1%!important;
    top:64.8%!important;
    width:23.1%!important;
    height:21.5%!important;
  }
}
