/* ===================================================================
   SNOWN GUIDEBOOK UI  (v3 — 정갈한 종이 톤 / 헤어라인 / 큰 글씨)
   =================================================================== */

:root{
  --disp:'Jua','Pretendard','Pretendard Variable',sans-serif;
  --pp-bg:#F4F0E8;
  --pp-bg-2:#FBF9F4;
  --pp-cell:#FFFDFA;
  --pp-line:rgba(38,31,23,.13);
  --pp-line-2:rgba(38,31,23,.07);
  --pp-ink:#191510;
  --pp-ink-2:#443C33;
  --pp-ink-3:#665C50;
  --pp-cover:#1F1A14;
  --ac-red:#B4472C;
  --ac-green:#5C7C34;
  --ac-blue:#3D6C93;
  --ac-gold:#A87B24;
  --bk-r:12px;
  --bk-r-s:8px;
  --stamp:url("/assets/img/app/stamp.png");
  --seal:#A3351E;
  --seal-g:#2E4A34;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");
}

/* ---------- 1. 오버레이 ---------- */
#ev,#fstat,#done,#gres,#dlm{
  background:rgba(18,13,8,.68)!important;
  backdrop-filter:blur(12px) saturate(108%);
  -webkit-backdrop-filter:blur(12px) saturate(108%);
  padding:clamp(48px,6.5vh,70px) 22px 26px!important}
#map{background:rgba(14,11,7,.9)!important;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}

/* ---------- 2. 종이 카드 ---------- */
#appcard,#ticket,#fcard,#grcard,#dlcard,#donecard{
  background:linear-gradient(180deg,rgba(251,249,244,.985),rgba(244,240,232,.975));
  color:var(--pp-ink);
  border-radius:var(--bk-r);
  border:1px solid rgba(38,31,23,.18);
  box-shadow:0 26px 60px -26px rgba(28,20,10,.55);
  backdrop-filter:blur(18px) saturate(108%);
  -webkit-backdrop-filter:blur(18px) saturate(108%);
  position:relative;overflow:hidden;display:flex;flex-direction:column}
#donecard{display:block}

#appcard::after,#ticket::after,#fcard::after,#grcard::after,#dlcard::after,#donecard::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:6;
  background-image:var(--grain);background-size:190px;
  opacity:.17;mix-blend-mode:multiply;border-radius:inherit}
#ticket>*,#fcard>*,#grcard>*,#dlcard>*,#appcard>*,#donecard>*{position:relative;z-index:2}
.bkmark{display:none!important}

/* ---------- 3. 헤더 바 ---------- */
#ticket .head,#fcard .head,#grcard .hd,#dlcard .hd{
  background:var(--pp-cover)!important;color:#F6F2EA!important;
  position:relative;padding:15px 24px!important;flex:0 0 auto}
#ticket .head::after,#fcard .head::after,#grcard .hd::after,#dlcard .hd::after{display:none}
#ticket .head b,#fcard .head b,#grcard .hd b,#dlcard .hd b{
  font-family:var(--disp)!important;font-weight:400!important;
  font-size:19px!important;letter-spacing:.005em!important;
  display:inline-flex;align-items:center;gap:10px}
#ticket .head span,#fcard .head span,#grcard .hd span,#dlcard .hd span{
  font-family:var(--pre)!important;font-weight:400!important;
  font-size:13.5px!important;letter-spacing:0!important;
  color:rgba(246,242,234,.6)!important;opacity:1!important}

.qchip{font-family:var(--num);font-size:10px;font-weight:600;letter-spacing:.16em;
  padding:4px 8px 3px;border-radius:3px;line-height:1;flex:0 0 auto;
  background:transparent;border:1px solid rgba(246,242,234,.4);color:rgba(246,242,234,.8)}
.qchip.gold{border-color:rgba(255,210,63,.6);color:#FFD23F}
.qchip.warm{border-color:rgba(255,158,44,.6);color:#FFB05E}
.qchip.sky{border-color:rgba(143,203,238,.6);color:#9FD3F2}

/* ---------- 4. 본문 ---------- */
#ticket .body,#fcard .body,#grcard .bd,#dlcard .bd{
  position:relative;padding:26px 24px 24px!important;flex:1 1 auto}
#ticket .body::before,#fcard .body::before,#grcard .bd::before,#dlcard .bd::before{display:none}

#ticket h5,#fcard h5,#grcard h5,#dlcard h5,#donecard h4,.aptitle,#map h3,#where .k,
.evsec .cap,.rw .tx b,.apwhere,.xclose{
  font-family:var(--disp)!important;font-weight:400!important;letter-spacing:-.005em!important}
#ticket h5,#fcard h5,#grcard h5,#dlcard h5{
  font-size:clamp(23px,2.7vw,29px)!important;line-height:1.36!important;color:var(--pp-ink)}
#ticket .lead,#fcard .lead,#grcard .sub,#dlcard .sub{
  color:var(--pp-ink-2)!important;opacity:1!important;font-weight:400!important;
  font-size:15px!important;line-height:1.72!important;margin-top:10px!important}

/* ---------- 5. 섹션 라벨 + 진행바 ---------- */
.evsec{margin-top:26px!important}
.evsec:first-child{margin-top:0!important}
.evsec .cap{font-size:17px!important;text-transform:none!important;letter-spacing:0!important;
  color:var(--pp-ink);margin-bottom:10px!important;align-items:center!important}
.evsec .cap span:first-child{display:inline-flex;align-items:center;gap:7px}
.evsec .cap span:first-child::before{content:'';width:5px;height:5px;border-radius:50%;
  background:var(--ac-red)}
.evsec .cap b{font-family:var(--num)!important;font-size:13.5px!important;font-weight:500!important;
  color:var(--pp-ink-2)!important;letter-spacing:.02em}

.qbar{height:5px;border-radius:100px;background:rgba(38,31,23,.1);overflow:hidden;margin:0 0 13px}
.qbar i{display:block;height:100%;width:0;border-radius:100px;background:var(--ac-green);
  transition:width .7s var(--ease)}
.qbar.sky i{background:var(--ac-blue)}
.qbar.warm i{background:var(--ac-gold)}
.evleft{font-size:13px!important;color:var(--pp-ink-3)!important;opacity:1!important;
  margin-top:10px!important;font-weight:400!important}

/* ---------- 6. 이벤트 티켓 ---------- */
#ticket{width:min(1000px,100%)!important}
.evcols{display:grid;grid-template-columns:1.12fr 1fr;gap:24px 34px;align-items:stretch;margin-top:22px}
@media (max-width:860px){.evcols{grid-template-columns:1fr}}
.evcol{min-width:0;display:flex;flex-direction:column}

.stamps,.smgrid{grid-template-columns:repeat(6,1fr)!important;gap:7px!important}
@media (max-width:860px){.stamps,.smgrid{grid-template-columns:repeat(4,1fr)!important}}
.stamp,.smcell{position:relative;flex-direction:column!important;align-items:center!important;
  gap:7px!important;padding:11px 4px 9px!important;border-radius:var(--bk-r-s)!important;
  background:var(--pp-cell)!important;border:1px solid var(--pp-line);
  color:var(--pp-ink-3)!important;overflow:visible!important;min-width:0}
.stamp .no{position:absolute;top:4px;left:6px;font-family:var(--num)!important;
  font-size:9.5px!important;font-weight:500!important;color:var(--pp-ink-3)!important;opacity:.85!important}
.stamp .slot{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  border:1.2px dashed rgba(38,31,23,.24);position:relative}
.stamp .ring{position:absolute;inset:2px;border:0;
  background:var(--seal-g);
  -webkit-mask:var(--stamp) center/contain no-repeat;
  mask:var(--stamp) center/contain no-repeat;
  opacity:0;transform:scale(1.7) rotate(-24deg)}
.stamp .ring b,.stamp .ring em{display:none}
.stamp .nm,.smcell .nm{font-family:var(--pre)!important;font-size:12.5px!important;
  font-weight:400!important;text-align:center;flex:none!important;
  letter-spacing:-.03em!important;line-height:1.32;word-break:keep-all;
  white-space:normal!important;overflow:visible!important;color:var(--pp-ink-2)!important}
.stamp.got{background:#F3F7E9!important;border-color:rgba(92,124,52,.32)}
.stamp.got .slot{border-color:transparent}
.stamp.got .nm,.smcell.got .nm{color:var(--pp-ink)!important;font-weight:600!important}
.stamp.got .ring{opacity:1;transform:rotate(-10deg);animation:stamppress .5s var(--ease)}
@keyframes stamppress{
  0%{opacity:0;transform:scale(2) rotate(-30deg)}
  50%{opacity:1;transform:scale(.88) rotate(-6deg)}
  100%{opacity:1;transform:scale(1) rotate(-10deg)}}

.smcell .ill{width:32px;height:38px;display:grid;place-items:center}
.smcell svg{width:28px!important;flex:none!important}
.smcell:not(.got) svg{opacity:.28!important}
.smcell .fd{position:absolute;top:5px;right:5px;font-family:var(--num);font-size:6px;
  font-weight:600;letter-spacing:.1em;color:var(--ac-blue);border:1.2px solid var(--ac-blue);
  border-radius:2px;padding:2px 3px 1px;transform:rotate(9deg);opacity:0;mix-blend-mode:multiply}
.smcell.got{background:#EDF4F9!important;border-color:rgba(61,108,147,.3)}
.smcell.got .fd{opacity:1;animation:stamppress .5s var(--ease)}

/* 보상 */
.rewards{border-top:1px solid var(--pp-line)!important;padding-top:16px!important;
  margin-top:22px!important;gap:8px!important}
.rw{background:var(--pp-cell)!important;border:1px solid var(--pp-line);
  border-radius:var(--bk-r-s)!important;padding:12px 14px!important;
  color:var(--pp-ink-3)!important;gap:12px!important}
.rw.on{background:#FDF6E6!important;border-color:rgba(168,123,36,.4)}
.rw .ic{opacity:.35}
.rw.on .ic{opacity:1}
.rw .tx b{font-size:15.5px!important;letter-spacing:-.005em!important;color:var(--pp-ink)}
.rw:not(.on) .tx b{color:var(--pp-ink-2)!important}
.rw .tx span{font-size:13px!important;font-weight:400!important;color:var(--pp-ink-3)!important;
  opacity:1!important;margin-top:3px!important}
.rw .st{background:transparent!important;border:1px solid var(--pp-line);border-radius:100px!important;
  font-family:var(--num)!important;font-size:11.5px!important;font-weight:500!important;
  letter-spacing:.02em!important;padding:4px 10px!important;color:var(--pp-ink-3)!important}
.rw.on .st{border-color:var(--ac-red);color:var(--ac-red)!important;background:transparent!important}

/* 카드 하단 고정 푸터 (QR + 스토어) */
#evfoot,#apfoot,#ffoot,#grfoot{
  flex:0 0 auto;margin-top:0!important;
  border-top:1px solid var(--pp-line)!important;
  background:rgba(233,226,213,.55)!important;
  padding:14px 24px!important;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
#evfoot{justify-content:flex-start!important}
#evfoot .n{font-family:var(--pre)!important;font-size:13px!important;font-weight:400!important;
  letter-spacing:0!important;color:var(--pp-ink-2)!important;opacity:1!important;
  margin-right:auto!important;line-height:1.6}
#evfoot .evbtns{flex-direction:row!important}
#evqr,#fqr,#dlqr,#doneqr{width:62px!important;height:62px!important;padding:5px!important;
  border-radius:4px!important;border:1px solid var(--pp-line);flex:0 0 auto;
  background:#fff;display:grid;
  grid-template-columns:repeat(21,1fr);grid-template-rows:repeat(21,1fr)}
#evqr i,#fqr i,#dlqr i,#doneqr i{background:var(--pp-ink)}

/* ---------- 7. 기능 현황판 ---------- */
#fcard{width:min(900px,100%)!important}
.fgrid{grid-template-columns:repeat(3,1fr)!important;gap:8px!important}
@media (max-width:860px){.fgrid{grid-template-columns:repeat(2,1fr)!important}}
@media (max-width:640px){.fgrid{grid-template-columns:1fr!important}}
.fcell{background:var(--pp-cell)!important;border:1px solid var(--pp-line)!important;
  border-radius:var(--bk-r-s)!important;color:var(--pp-ink-3)!important;
  padding:12px 14px!important;gap:10px!important}
.fcell:hover{background:#FDF6E6!important;border-color:rgba(180,71,44,.4)!important;transform:none!important}
.fcell.got{background:#FDF6E6!important;border-color:rgba(168,123,36,.38)!important}
.fcell.here{box-shadow:inset 0 0 0 1.5px var(--ac-red)!important}
.fcell .tx b{font-family:var(--pre)!important;font-weight:400!important;font-size:15px!important;
  letter-spacing:-.025em!important;color:var(--pp-ink-2)}
.fcell.got .tx b,.fcell.here .tx b,.fcell:hover .tx b{font-weight:600!important;color:var(--pp-ink)}
.fcell .tx span{font-size:13px!important;font-weight:400!important;
  color:var(--pp-ink-3)!important;opacity:1!important;margin-top:3px!important}
.fcell .no{font-family:var(--num)!important;font-size:10.5px!important;font-weight:500!important;
  color:var(--pp-ink-3)!important;opacity:.85!important}
.fcell .go{color:var(--pp-ink-3)}
.seal{display:block;width:36px;height:36px;font-size:0;color:transparent;
  background:var(--seal-c,#A3351E);
  -webkit-mask:var(--stamp) center/contain no-repeat;
  mask:var(--stamp) center/contain no-repeat;
  transform:rotate(-9deg);flex:0 0 auto}
.fcell.here .seal{--seal-c:#8E2614}
#ffoot{justify-content:center!important}

/* ---------- 8. 사이드바 = 여행자 수첩 (팝업과 동일한 톤) ---------- */
#appwrap{width:min(472px,96vw)!important;padding:clamp(12px,2vh,20px)!important}
#appcard{border-radius:var(--bk-r)!important}
#appbody{flex:1 1 auto;padding:22px 24px 6px!important;display:flex;flex-direction:column;min-height:0}
#appbody::-webkit-scrollbar-thumb{background:rgba(25,21,16,.35)!important}

/* 팝업 헤더와 같은 다크 바 */
#apbind{flex:0 0 auto;position:relative;z-index:3;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:15px 60px 15px 24px;background:var(--pp-cover);color:#F6F2EA;
  border-bottom:0}
#apbind b{font-family:var(--disp);font-weight:400;font-size:18px;letter-spacing:.005em;
  display:inline-flex;align-items:center;gap:10px}
#apbind .tab{font-family:var(--num);font-size:11px;font-weight:500;letter-spacing:.22em;
  color:rgba(246,242,234,.55);white-space:nowrap}
#apbind::after{display:none}

.aphead{padding-right:0!important;align-items:center!important;
  justify-content:space-between;gap:10px!important}
.aptag{background:transparent!important;border:1px solid var(--ac-red);color:var(--ac-red)!important;
  border-radius:100px!important;padding:5px 12px 4px!important;
  font-family:var(--pre)!important;font-size:12.5px!important;font-weight:500!important;
  letter-spacing:-.01em!important;transform:none!important;mix-blend-mode:normal;flex:0 0 auto}
.aphead .cnt{font-family:var(--pre)!important;font-size:12.5px!important;font-weight:400!important;
  letter-spacing:-.01em!important;color:var(--pp-ink-3)!important;flex:0 0 auto}
.aphead .cnt b{font-family:var(--num)!important;font-weight:600!important;color:var(--pp-ink)}
.apqbar{margin:11px 0 0!important}

.apwhere{font-size:13.5px!important;color:var(--pp-ink-3)!important;opacity:1!important;
  margin:22px 0 9px!important;display:flex;align-items:center;gap:7px;letter-spacing:0!important}
.apwhere::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--ac-red);flex:0 0 auto}
.aptitle{font-size:clamp(23px,2.5vw,27px)!important;line-height:1.42!important;
  color:var(--pp-ink);word-break:keep-all}

/* 앱 화면: 남는 세로 공간을 흡수 */
.apstage{flex:1 1 auto;display:grid;place-items:center;min-height:0;padding:24px 0 10px}
.apphone{margin:0!important;width:196px;position:relative;
  box-shadow:0 20px 38px -22px rgba(30,20,8,.55)!important}
.apphone::before{content:'';position:absolute;left:50%;top:-11px;transform:translateX(-50%) rotate(-2deg);
  width:76px;height:20px;z-index:4;
  background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(232,224,209,.6))}
.apscr{min-height:300px!important}

/* 앱 화면 아래 소개글 + 기능 목록 */
.apnotes{flex:0 0 auto;margin-top:20px;border-top:1px solid var(--pp-line);padding-top:17px}
.apdesc{color:var(--pp-ink)!important;opacity:1!important;font-weight:400!important;
  font-size:15px!important;line-height:1.7!important;margin:0 0 14px!important;word-break:keep-all}
.aplist{margin:0!important;display:flex!important;flex-direction:column;gap:9px!important}
.aplist li{color:var(--pp-ink-2);font-size:14px!important;line-height:1.6!important;
  font-weight:400;word-break:keep-all;align-items:flex-start}
.aplist li::before{background:var(--ac-red)!important;flex-basis:5px!important;width:5px;
  height:5px!important;margin-top:8px!important;box-shadow:none}

#apfoot{justify-content:center!important;padding:14px 18px!important}
#appclose{border-radius:var(--bk-r-s)!important;width:32px!important;height:32px!important;
  background:rgba(246,242,234,.12)!important;border:1px solid rgba(246,242,234,.32)!important;
  color:#F6F2EA!important;font-weight:500!important;font-size:15px!important;
  top:calc(clamp(12px,2vh,20px) + 12px)!important;
  right:calc(clamp(12px,2vh,20px) + 14px)!important}
#appclose:hover{background:rgba(246,242,234,.24)!important;border-color:#F6F2EA!important;color:#FFF!important}

/* ---------- 9. 버튼 ---------- */
.apbtn{border-radius:var(--bk-r-s)!important;background:var(--pp-cover)!important;color:#F6F2EA!important;
  font-family:var(--pre)!important;font-weight:500!important;letter-spacing:-.01em!important;
  text-transform:none!important;padding:10px 17px!important;font-size:13.5px!important}
.apbtn:hover{background:#332B22!important}
.apbtn--quiet{background:transparent!important;color:var(--pp-ink)!important;
  border:1px solid var(--pp-line)!important}
.apbtn--quiet:hover{background:rgba(38,31,23,.06)!important}
.store{border-radius:var(--bk-r-s)!important;background:var(--pp-cover)!important;
  min-width:140px!important;padding:7px 13px!important}
.store:hover{background:#332B22!important;transform:none!important}
.store b{font-weight:500!important;font-size:14px!important}
.store small{opacity:.55!important}

/* ---------- 10. 닫기 버튼 ---------- */
.xclose{background:rgba(251,249,244,.95)!important;color:var(--pp-ink)!important;
  border:1px solid rgba(38,31,23,.2)!important;border-radius:var(--bk-r-s)!important;
  padding:9px 17px!important;font-size:14px!important;
  box-shadow:0 6px 18px -10px rgba(20,14,8,.8)!important;
  top:clamp(54px,7vh,76px)!important}
.xclose:hover{background:#FFF!important;color:var(--ac-red)!important;border-color:var(--ac-red)!important}
#evclose:hover{border-color:var(--ac-gold)!important;color:var(--ac-gold)!important}
#fclose:hover{border-color:#A75F13!important;color:#8A4E0E!important}
#grclose:hover{border-color:var(--ac-blue)!important;color:var(--ac-blue)!important}

/* ---------- 11. 씬 위 HUD ---------- */
#back,#apcount,#evbtn{background:rgba(31,26,20,.78)!important;
  border-color:rgba(246,242,234,.4)!important;border-width:1px!important;
  border-radius:var(--bk-r-s)!important;color:#F6F2EA!important;
  padding:9px 15px!important;font-weight:500!important;font-size:13.5px!important}
#back:hover,#apcount:hover,#evbtn:hover{background:rgba(46,38,28,.9)!important}
.tmsg{border-radius:var(--bk-r-s)!important;font-weight:500!important}
.tmsg .tg{border-radius:3px!important}

/* ---------- 12. 결과 / 완주 / 다운로드 ---------- */
#donecard{padding:0!important;width:min(560px,100%)}
#donecard>*{padding:0 clamp(24px,3.4vw,34px)}
#donecard .aptag{display:inline-block;margin-top:clamp(24px,3.4vw,34px)}
#donecard h4{font-size:clamp(23px,3.4vw,30px)!important;line-height:1.36!important;
  margin:14px 0 12px!important}
#donecard p{color:var(--pp-ink-2)!important;opacity:1!important;font-size:14.5px!important;
  line-height:1.75!important;font-weight:400}
#donecard>div:last-child{padding-bottom:clamp(24px,3.4vw,34px)!important}
#grcard{width:min(540px,100%)!important}
#dlcard{width:min(620px,100%)!important}
.grstats{gap:8px!important;margin-top:20px!important}
.grst{background:var(--pp-cell)!important;border:1px solid var(--pp-line);
  border-radius:var(--bk-r-s)!important;padding:12px 6px!important}
.grst b{font-family:var(--num)!important;font-weight:600!important;font-size:22px!important;
  color:var(--pp-ink)}
.grst span{font-size:13px!important;font-weight:400!important;color:var(--pp-ink-3)!important;opacity:1!important}
.grb{border-radius:100px!important;font-size:13.5px!important;font-weight:500!important;
  padding:7px 14px!important;background:#FDF6E6!important;color:var(--pp-ink)!important;
  border:1px solid rgba(168,123,36,.4)}
.grb.new::after{border-radius:100px!important;font-size:10px!important;font-weight:600}
#grfoot .n{font-family:var(--pre)!important;font-size:12.5px!important;letter-spacing:0!important;
  color:var(--pp-ink-3)!important;opacity:1!important}
.dlfeats{gap:8px!important;margin-top:22px!important}
.dlf{background:var(--pp-cell)!important;border:1px solid var(--pp-line);
  border-radius:var(--bk-r-s)!important;font-weight:400!important;
  font-size:14.5px!important;padding:12px 14px!important;color:var(--pp-ink)}
.dlf:hover{background:#FDF6E6!important;border-color:rgba(180,71,44,.4)!important;transform:none!important}

/* ---------- 13. 폰 목업 ---------- */
.apscr{border-radius:22px!important;background:#FFFDFA!important}
.apbar{font-size:8.4px!important;padding:6px 9px!important;background:var(--pp-cover)!important}
.apin{padding:9px!important;gap:6px!important}
.aprow{font-size:9.8px!important;font-weight:500!important;border-radius:4px!important;
  padding:7px 8px!important;color:var(--pp-ink);background:#F4F1EB!important}
.aprow.dark{color:#F6F2EA;background:var(--pp-cover)!important}
.appill{font-size:7.6px!important;font-weight:600!important;border-radius:3px!important;color:#20180E}
.appill.off{background:#E4DED3!important;opacity:1!important;color:rgba(32,24,14,.62)}
.apbig{border-radius:5px!important;background:#33587A!important}
.apbig .u{font-size:7.8px!important;opacity:.95!important}
.apst{border-radius:4px!important;background:#F4F1EB!important}
.apst b{font-size:12px!important}
.apst span{font-size:7.4px!important;opacity:.7!important}
.apbarrow{font-size:8.2px!important}
.apbarrow .tr{background:#E8E2D7!important}
.apbg{border-radius:4px!important;background:#F4F1EB!important}
.apbg span{font-size:6.8px!important;opacity:.85!important}
.apbg.off{opacity:.45!important}
.apnote{font-size:8.4px!important;opacity:.72!important;padding:3px 2px!important}
.apstart{width:88px;height:88px}
.apstart b{font-weight:500!important}
.apmap{border-radius:4px!important}
.apphoto div{border-radius:5px!important}

/* ---------- 14. 볼드 절제 ---------- */
.aplist li,.apdesc,#ticket .lead,#fcard .lead,#grcard .sub,#dlcard .sub,
#donecard p,#evfoot .n,#grfoot .n,.evleft{font-weight:400!important}
#map h3{font-family:var(--disp)!important;font-weight:400!important;
  text-transform:none!important;letter-spacing:0!important}
#map .sub{letter-spacing:.12em!important;opacity:.5!important}
.mcard{border-radius:var(--bk-r-s)!important}
.mcard .t .k{font-family:var(--disp)!important;font-weight:400!important}
.mcard .t .e{opacity:.75!important}
#tip{opacity:.92}
#tip b{font-weight:600!important}
#where .k{letter-spacing:-.005em}
#where .e{opacity:.8!important;letter-spacing:.22em!important}


/* ---------- 15. 최종 대비 / 줄바꿈 점검 ---------- */
.fcell .tx b{color:var(--pp-ink-2)}
.fcell .tx span{color:var(--pp-ink-3)!important}
.stamp .nm,.smcell .nm{color:var(--pp-ink-2)!important}
.stamp .no,.fcell .no{color:var(--pp-ink-3)!important;opacity:1!important}
.rw:not(.on) .tx b{color:var(--pp-ink-2)!important}
.rw .tx span{color:var(--pp-ink-3)!important}
.rw .st{color:var(--pp-ink-2)!important;border-color:rgba(38,31,23,.22)!important}
.evleft,#evfoot .n,#grfoot .n,.grst span{color:var(--pp-ink-2)!important}
#ticket .lead,#fcard .lead,#grcard .sub,#dlcard .sub,#donecard p{color:var(--pp-ink-2)!important}
.evsec .cap b{color:var(--pp-ink-2)!important}
#ticket .head span,#fcard .head span,#grcard .hd span,#dlcard .hd span{
  color:rgba(246,242,234,.7)!important}
#ticket h5,#fcard h5,#grcard h5,#dlcard h5,#donecard h4,.aptitle{word-break:keep-all}
.rw .tx b,.rw .tx span,.fcell .tx b,.fcell .tx span{
  white-space:normal!important;overflow:visible!important;word-break:keep-all}
.dlf{color:var(--pp-ink)!important}


/* ---------- 16. 완주 카드에 도장 ---------- */
#donecard{position:relative}
#donecard::before{content:'';position:absolute;right:clamp(18px,3vw,30px);top:clamp(18px,3vw,28px);
  width:clamp(84px,12vw,118px);height:clamp(84px,12vw,118px);z-index:3;pointer-events:none;
  background:var(--seal);
  -webkit-mask:var(--stamp) center/contain no-repeat;
  mask:var(--stamp) center/contain no-repeat;
  mix-blend-mode:multiply;opacity:.9;transform:rotate(-11deg);
  animation:stamppress .6s var(--ease)}
#donecard .aptag{position:relative;z-index:4}
#donecard h4{padding-right:clamp(96px,13vw,132px)}

/* 보상 획득 표시도 도장 톤으로 */
.rw.on .st{border-color:var(--ac-red)!important;color:var(--ac-red)!important;
  background:transparent!important;transform:rotate(-3deg)}


/* ---------- 17. 잠긴 QR (미션 완수 전) ---------- */
.qrwrap{position:relative;width:62px;height:62px;flex:0 0 auto}
.qrwrap #evqr,.qrwrap #fqr{width:100%!important;height:100%!important;margin:0}
.qrlock{position:absolute;inset:0;display:grid;place-items:center;border-radius:6px;
  background:
    radial-gradient(120% 100% at 12% 4%, rgba(247,214,231,.95) 0%, rgba(247,214,231,0) 55%),
    radial-gradient(120% 110% at 96% 96%, rgba(206,244,238,.95) 0%, rgba(206,244,238,0) 60%),
    linear-gradient(140deg,#F3E8F3 0%,#E7EDF8 42%,#E1F3F3 74%,#E9F6EC 100%);
  border:1px solid rgba(38,31,23,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85), 0 1px 3px -1px rgba(30,40,50,.18);
  font-family:var(--disp);font-size:26px;line-height:1;
  color:rgba(64,84,98,.5);text-shadow:0 1px 0 rgba(255,255,255,.8)}
.qrwrap.on .qrlock{display:none}
#ffoot{justify-content:flex-start!important}
#ffoot .n{font-family:var(--pre)!important;font-size:13px!important;font-weight:400!important;
  letter-spacing:0!important;color:var(--pp-ink-2)!important;opacity:1!important;
  margin-right:auto!important;line-height:1.6;word-break:keep-all}
#ffoot .evbtns{display:flex;flex-direction:row;flex:0 0 auto}


/* ---------- 18. 티켓 2단 배치 (좌: 스탬프/보상, 우: 눈사람/트리런) ---------- */
.evcol>*:last-child{margin-top:auto}
.evcol>.rewards:last-child{margin-top:auto!important;padding-top:20px!important}
.evcol>.evsec:last-child{padding-top:22px;border-top:1px solid var(--pp-line)}
.evcol>.evsec:first-child{padding-top:0;border-top:0}


/* ---------- 19. 4열 배치 + 장소명 한 줄 ---------- */
#ticket{width:min(1080px,96vw)!important}
.stamps,.smgrid{grid-template-columns:repeat(4,1fr)!important;gap:8px!important}
@media (max-width:860px){.stamps,.smgrid{grid-template-columns:repeat(3,1fr)!important}}
.evcols{grid-template-columns:1fr 1fr!important}
.stamp,.smcell{padding:9px 6px 8px!important;gap:6px!important}
.stamp .slot{width:34px;height:34px}
.stamp .ring{inset:1px}
.smcell .ill{width:30px;height:34px}
.smcell svg{width:26px!important}
.stamp .nm,.smcell .nm{font-size:12.5px!important;letter-spacing:-.03em!important;
  white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* 제목은 이제 섹션 훅이므로 한 단계 작게 */
.evcol h5{font-size:clamp(20px,2.1vw,24px)!important;margin-top:0}
.evcol .lead{margin:8px 0 20px!important}
.evcol h5+.lead+.evsec{margin-top:0!important}


/* ---------- 20. 티켓 2x2 섹션 그리드 (선 없이, 행/열 정렬) ---------- */
.evcols{display:grid!important;grid-template-columns:1fr 1fr!important;
  grid-template-rows:auto 1fr!important;gap:26px 34px!important;
  align-items:stretch!important;margin-top:20px!important}
@media (max-width:860px){.evcols{grid-template-columns:1fr!important;grid-template-rows:none!important}}
.evcols>.evsec{min-width:0;display:flex;flex-direction:column;
  margin-top:0!important;padding-top:0!important;border-top:0!important}

/* 섹션 훅 문장 */
.evcols>.evsec>h5{font-size:clamp(19px,2vw,22px)!important;line-height:1.4!important;
  margin:0 0 6px!important;word-break:keep-all}
.evcols>.evsec>.lead{margin:0 0 16px!important;font-size:13.5px!important}
.evleft{display:none!important}

/* 중간 구분선 제거 */
.rewards{border-top:0!important;margin-top:0!important;padding-top:0!important}
#evfoot{border-top:1px solid var(--pp-line)!important}

/* 쿠폰 2x2 */
.rewards{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;flex:1}
#trrow{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;flex:1}

/* 카드 공통 */
.rw{position:relative;flex-direction:column!important;align-items:flex-start!important;
  justify-content:center!important;gap:10px!important;padding:15px 16px!important;
  text-align:left;overflow:hidden}
.rw .ic{font-size:19px!important;line-height:1;opacity:.42}
.rw.on .ic{opacity:1}
.rw .ic.sm{width:19px}
.rw .ic.sm svg{width:19px;height:auto}
.rw:not(.on) .ic.sm svg{filter:grayscale(1);opacity:.45}
.rw .tx{width:100%}
.rw .tx b{font-size:14.5px!important;line-height:1.35}
.rw .tx span{font-size:12.5px!important;margin-top:5px!important}
.rw .st{display:none!important}
/* 달성 시 도장 */
.rw.on::after{content:'';position:absolute;right:9px;top:9px;width:30px;height:30px;
  background:var(--seal);pointer-events:none;
  -webkit-mask:var(--stamp) center/contain no-repeat;
  mask:var(--stamp) center/contain no-repeat;
  transform:rotate(-9deg);animation:stamppress .5s var(--ease)}
#trrow .rw{cursor:none}
#trrow .rw:hover{background:#FDF6E6!important;border-color:rgba(180,71,44,.4)}

.qbar.gold i{background:var(--ac-gold)}


/* ---------- 21. 한 화면에 담기 (가로형 카드 + 여백 압축) ---------- */
/* 카드: 아이콘 왼쪽, 글씨 오른쪽 */
.rw{flex-direction:row!important;align-items:center!important;
    justify-content:flex-start!important;gap:12px!important;
    padding:11px 13px!important}
.rw .ic{flex:0 0 auto;font-size:18px!important}
.rw .tx{flex:1;min-width:0}
.rw .tx b{font-size:14px!important;line-height:1.3}
.rw .tx span{font-size:12px!important;margin-top:3px!important}
.rw.on::after{right:9px;top:50%;width:26px;height:26px;
  transform:translateY(-50%) rotate(-9deg);animation:sealin .45s var(--ease)}
@keyframes sealin{
  0%{opacity:0;transform:translateY(-50%) scale(1.9) rotate(-28deg)}
  55%{opacity:1;transform:translateY(-50%) scale(.9) rotate(-5deg)}
  100%{opacity:1;transform:translateY(-50%) scale(1) rotate(-9deg)}}

/* 늘어나지 않게 */
.rewards{align-content:start;flex:0 0 auto!important;gap:7px!important}
#trrow{grid-template-columns:1fr!important;align-content:start;flex:0 0 auto!important;gap:7px!important}

/* 세로 여백 압축 */
#ev{padding:clamp(24px,3.4vh,44px) 22px 22px!important}
#ticket .head{padding:12px 22px!important}
#ticket .head b{font-size:17px!important}
#ticket .body{padding:20px 22px 18px!important}
.evcols{gap:18px 30px!important;margin-top:16px!important}
.evcols>.evsec>h5{font-size:clamp(18px,1.9vw,21px)!important;margin:0 0 4px!important}
.evcols>.evsec>.lead{margin:0 0 12px!important;font-size:13px!important;line-height:1.55!important}
.evsec .cap{font-size:16px!important;margin-bottom:7px!important}
.qbar{margin:0 0 10px!important}
.stamps,.smgrid{gap:7px!important}
.stamp,.smcell{padding:8px 5px 7px!important;gap:5px!important}
.stamp .slot{width:32px;height:32px}
.smcell .ill{width:28px;height:32px}
.smcell svg{width:25px!important}
.stamp .nm,.smcell .nm{font-size:12px!important}
.stamp .no{font-size:8.5px!important;top:3px;left:5px}
#evfoot{padding:11px 22px!important;gap:14px!important}
#evfoot .n{font-size:12.5px!important;line-height:1.5}
.qrwrap,#evqr,#fqr,#dlqr,#doneqr{width:56px!important;height:56px!important}
.qrlock{font-size:23px}
.store{padding:6px 12px!important;min-width:132px!important}
.store b{font-size:13px!important}

/* 낮은 화면에서 한 번 더 조임 */
@media (max-height:820px){
  #ev{padding:16px 22px 16px!important}
  #ticket .body{padding:16px 22px 14px!important}
  .evcols{gap:14px 28px!important;margin-top:12px!important}
  .evcols>.evsec>.lead{display:none}
  .stamp,.smcell{padding:6px 5px 6px!important}
  .stamp .slot{width:29px;height:29px}
  .smcell .ill{width:26px;height:29px}
  .rw{padding:9px 12px!important}
}


/* ---------- 22. 사이드바 간격 정리 ---------- */
/* 상단 진행바가 태그/장소명에 붙던 문제 (뒤 규칙의 .qbar 여백에 덮여 있었음) */
#appbody .apqbar{margin:15px 0 0!important;height:6px}
#appbody .apwhere{margin:20px 0 9px!important}
#appbody .aptitle{margin:0!important;line-height:1.42!important;word-break:keep-all}
/* 작은 설명 문단 제거 후 목록 간격 */
#appbody .apnotes{margin-top:22px;padding-top:16px}
#appbody .aplist{gap:10px!important}


/* ---------- 23. 자잘한 설명 제거 후 간격 ---------- */
.apwhere{display:none!important}
#appbody .aptitle{margin:20px 0 0!important}


/* ---------- 24. 사이드바 여백 압축 + 폰 그림자 ---------- */
/* apstage 가 flex:1 로 남는 공간을 흡수하면서 폰 위아래 간격이 벌어지던 문제 */
#appbody .apstage{flex:0 0 auto!important;padding:14px 0 0!important;
  place-items:start center!important}
#appbody .apnotes{margin-top:16px!important;padding-top:14px!important}
#appbody .aptitle{margin:16px 0 0!important}
#appbody .apqbar{margin:12px 0 0!important}
#appbody{padding:18px 24px 4px!important}
.apscr{min-height:284px!important}

/* 폰 그림자: 짧고 진하게, 우측 하단으로 */
.apphone{box-shadow:
    10px 12px 16px -9px rgba(28,18,6,.62),
    4px 5px 7px -4px rgba(28,18,6,.42)!important}
.apphone::before{top:-9px;height:18px}


/* ---------- 25. 가로 정렬 정리 ---------- */
/* (1) 라벨 점이 카운터 숫자에도 붙던 문제
       .evsec .cap span:first-child 가 b 안의 카운터 span 까지 잡고 있었음 */
.evsec .cap b span,.aphead .cnt b{display:inline!important;gap:0!important}
.evsec .cap b span::before,.aphead .cnt b::before{content:none!important;display:none!important}

/* (2) 라벨 점을 바깥으로 걸어 글씨 왼쪽 끝을 0에 맞춘다 */
.evsec .cap>span:first-child{display:block!important;position:relative;gap:0!important}
.evsec .cap>span:first-child::before{position:absolute;left:-12px;top:50%;
  transform:translateY(-50%);margin:0}

/* (3) 목록 점도 동일하게 바깥으로 → 훅 문장과 좌측 정렬 */
#appbody .aplist li{display:block!important;position:relative;padding-left:0}
#appbody .aplist li::before{position:absolute!important;left:-12px;top:9px;
  width:5px!important;height:5px!important;flex:none!important;margin:0!important}

/* (4) 카운터는 오른쪽 끝에 딱 붙게 */
.evsec .cap{justify-content:space-between!important;align-items:center!important;width:100%}
.evsec .cap b{flex:0 0 auto;text-align:right;white-space:nowrap}
#appbody .aphead{justify-content:space-between!important;width:100%}
#appbody .aphead .cnt{flex:0 0 auto;text-align:right;white-space:nowrap;margin:0}


/* ---------- 26. 쿠폰별 개별 QR ---------- */
.rwqr{position:relative;width:42px;height:42px;flex:0 0 auto;margin-left:auto;display:block}
.qrimg{position:absolute;inset:0;display:grid;
  grid-template-columns:repeat(21,1fr);grid-template-rows:repeat(21,1fr);
  background:#fff;padding:3px;border-radius:4px;border:1px solid var(--pp-line)}
.qrimg i{background:var(--pp-ink)}

/* 비활성: 파스텔에서 채도를 뺀 회색기 */
.qrlock.dim{border-radius:4px;font-size:19px;
  background:
    radial-gradient(120% 100% at 12% 4%, rgba(228,219,226,.95) 0%, rgba(228,219,226,0) 55%),
    radial-gradient(120% 110% at 96% 96%, rgba(210,221,219,.95) 0%, rgba(210,221,219,0) 60%),
    linear-gradient(140deg,#E5E1E5 0%,#E0E4E9 42%,#DEE7E6 74%,#E3E8E4 100%);
  border-color:rgba(38,31,23,.16);
  color:rgba(84,94,104,.52);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 1px 2px -1px rgba(30,40,50,.16)}
.rw.on .qrlock{display:none}

/* QR 자리 확보 + 도장은 트리런에만 */
.rw{gap:10px!important;padding:11px 12px!important}
.rw .tx b{word-break:keep-all}
.rewards .rw.on::after{display:none}
#trrow .rw.on::after{right:11px}
#trrow .rwqr{display:none}


/* ---------- 27. 완주 카드 여백 정리 ---------- */
/* #donecard>*{padding:0 34px} 이 .aptag 자체의 안쪽 여백으로 먹혀
   태그가 카드 모서리에 붙어 있던 문제 → 카드 패딩으로 되돌린다 */
#donecard{padding:clamp(26px,3.6vw,34px)!important}
#donecard>*:not(.aptag){padding-left:0!important;padding-right:0!important;padding-bottom:0!important}
#donecard .aptag{display:inline-block;margin:0!important;transform:none!important}
#donecard h4{margin:18px 0 12px!important;padding-right:clamp(88px,12vw,124px)!important}
#donecard>div:last-child{margin-top:24px!important}
#donecard::before{right:clamp(24px,3.4vw,32px);top:clamp(24px,3.4vw,32px)}


/* ---------- 28. 기능 현황판: 화살표 → 찍을 수 있는 도장 자리 ---------- */
.fcell{gap:11px!important}
.fcell .go{display:none!important}
.fcell .slot{position:relative;flex:0 0 auto;width:36px;height:36px;border-radius:50%;
  border:1.3px dashed rgba(38,31,23,.26);
  background:radial-gradient(circle,rgba(255,255,255,.7) 60%,transparent 61%);
  margin-left:auto;transition:border-color var(--t-fast) var(--ease)}
.fcell .slot .seal{position:absolute;inset:1px;width:auto!important;height:auto!important;
  opacity:0;transform:scale(1.7) rotate(-24deg);transition:none}
.fcell:hover .slot{border-color:rgba(180,71,44,.45)}
.fcell.here:not(.got) .slot{border-color:var(--ac-red);border-style:dashed;
  background:radial-gradient(circle,rgba(255,255,255,.85) 60%,transparent 61%)}
.fcell.got .slot{border-color:transparent!important;background:none!important}
.fcell.got .slot .seal{opacity:1;transform:rotate(-9deg);
  animation:stamppress .5s var(--ease)}


/* ---------- 29. 기능 현황판 푸터: 버튼만 왼쪽 정렬 ---------- */
#ffoot{justify-content:flex-start!important}
#ffoot .evbtns{margin:0}


/* ---------- 30. 완주 카드: 제목 한 줄 ---------- */
#donecard{width:min(720px,100%)!important;max-width:720px!important}
#donecard .aptag{padding:6px 13px 5px!important;line-height:1.35!important}
#donecard h4{font-size:clamp(19px,2.3vw,25px)!important;line-height:1.4!important;
  padding-right:clamp(96px,10vw,118px)!important;word-break:keep-all;white-space:nowrap}
#donecard::before{width:clamp(78px,9vw,106px);height:clamp(78px,9vw,106px);
  right:clamp(24px,3.2vw,30px);top:clamp(24px,3.2vw,30px)}
#donecard p{line-height:1.75!important}
@media (max-width:640px){
  #donecard h4{white-space:normal;padding-right:0!important}
  #donecard::before{width:70px;height:70px;opacity:.5}
}


/* ---------- 31. 히어로: 실물 워치 목업 ---------- */
.intro__device{position:relative}
.intro__watch{position:absolute;z-index:6;pointer-events:none;
  left:calc(100% - clamp(28px,3.2vw,50px));
  bottom:clamp(56px,9vh,132px);
  width:clamp(122px,12.4vw,166px);
  opacity:0;transform:translate3d(20px,18px,0) rotate(4deg) scale(.93);
  transition:opacity .9s var(--ease),transform 1.05s var(--ease);
  transition-delay:.55s}
.intro__device.on .intro__watch{opacity:1;transform:translate3d(0,0,0) rotate(-3.5deg) scale(1)}
.intro__watch img{display:block;width:100%;height:auto;
  filter:drop-shadow(13px 20px 26px rgba(9,26,48,.4))
         drop-shadow(4px 7px 10px rgba(9,26,48,.26))
         drop-shadow(1px 2px 3px rgba(9,26,48,.18))}
.intro__watch::after{content:'';position:absolute;inset:20% 12% 22% 14%;z-index:-1;
  border-radius:50%;filter:blur(30px);
  background:radial-gradient(60% 60% at 50% 50%,rgba(0,130,211,.16),rgba(0,130,211,0) 72%)}

/* 떠 있는 칩과 겹치지 않게 */

@media (max-width:960px){
  .intro__watch{width:clamp(96px,20vw,132px);
    left:calc(100% - clamp(20px,4vw,34px));bottom:clamp(34px,7vh,72px)}
}
@media (max-width:640px){ .intro__watch{width:88px;left:calc(100% - 16px);bottom:26px} }


/* ---------- 32. 히어로 칩: 폰 주변으로 밀집 배치 ---------- */
/* 기존엔 stage 전체(inset:0) 기준이라 화면이 넓을수록 사방으로 흩어졌다 */
.chip-grid{inset:0 auto 0 50%!important;width:min(1000px,94vw)!important;
  transform:translateX(-50%)}

.chip.p1{left:2%!important;  top:8%!important}
.chip.p2{left:12%!important; top:27%!important}
.chip.p5{left:4%!important;  top:46%!important}
.chip.p3{right:2%!important; top:5%!important}
.chip.p4{right:5%!important;top:24%!important}
.chip.p6{right:2%!important; top:43%!important}

/* 안쪽 카드는 한 겹 뒤에 있는 느낌으로 */
.chip.p2,.chip.p4{padding:8px 13px 8px 9px}
.chip.p2 b,.chip.p4 b{font-size:12.3px}
.chip.p2 b+span,.chip.p4 b+span{font-size:10.4px}
.chip.p2 .ic,.chip.p4 .ic{width:28px;height:28px;border-radius:10px}
.chip.p2.reveal.on,.chip.p4.reveal.on{opacity:.82}

@media (max-width:1280px){
  .chip-grid{width:min(880px,96vw)!important}
  .chip.p1{left:1%!important;top:10%!important}
  .chip.p2{left:9%!important;top:30%!important}
  .chip.p3{right:1%!important;top:7%!important}
  .chip.p4{right:8%!important;top:28%!important}
}


/* ---------- 33. 히어로 칩: Flighty 스타일 알림 카드 ---------- */
.chip{padding:10px 16px 10px 11px!important;border-radius:18px!important;
  gap:11px!important;max-width:230px;
  background:rgba(255,255,255,.94)!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.35);backdrop-filter:blur(14px) saturate(1.35);
  box-shadow:
    0 20px 40px -20px rgba(12,27,46,.28),
    0 4px 10px -4px rgba(12,27,46,.1),
    0 0 0 1px rgba(12,27,46,.045),
    inset 0 1px 0 rgba(255,255,255,.95)!important}
.chip .ic{width:32px!important;height:32px!important;border-radius:11px!important}
.chip .ic svg{width:16px!important;height:16px!important}
.chip b{font-size:13.2px!important;letter-spacing:-.03em!important;line-height:1.3}
.chip b+span{font-size:11.2px!important;margin-top:2px!important;
  color:rgba(12,27,46,.52)!important;letter-spacing:-.02em}

/* 안쪽 두 장은 한 겹 뒤로 */
.chip.p2,.chip.p4{max-width:216px}
.chip.p2.reveal.on,.chip.p4.reveal.on{opacity:.72}
.chip.p2 .ic,.chip.p4 .ic{width:29px!important;height:29px!important}
.chip.p2 b,.chip.p4 b{font-size:12.4px!important}
.chip.p2 b+span,.chip.p4 b+span{font-size:10.6px!important}


/* ---------- 34. 칩: 카드별 컬러 + 강조 ---------- */
.chip b{font-weight:800!important;color:#0C1B2E!important}
.chip b em{font-style:normal;font-weight:800}
.chip b+span u{text-decoration:none;font-weight:700}
.chip b+span{color:rgba(12,27,46,.58)!important}
.chip{max-width:236px}

/* 1 · 추천 리조트 — 블루 */
.chip.p1 .ic{background:linear-gradient(145deg,#E2F0FD,#B9DAF6)!important}
.chip.p1 .ic svg{stroke:#1F6FBF!important}
.chip.p1 b em{color:#1F6FBF} .chip.p1 b+span u{color:#1F6FBF}
/* 2 · 슬로프 혼잡도 — 그린 */
.chip.p2 .ic{background:linear-gradient(145deg,#DDF5E8,#B0E7C9)!important}
.chip.p2 .ic svg{stroke:#178A52!important}
.chip.p2 b em{color:#178A52} .chip.p2 b+span u{color:#178A52}
/* 3 · 스탬프 — 앰버 */
.chip.p3 .ic{background:linear-gradient(145deg,#FDF0D4,#F7DA9E)!important}
.chip.p3 .ic svg{stroke:#B0781A!important}
.chip.p3 b em{color:#B0781A} .chip.p3 b+span u{color:#B0781A}
/* 4 · 커뮤니티 — 퍼플 */
.chip.p4 .ic{background:linear-gradient(145deg,#EBE6FB,#D0C4F3)!important}
.chip.p4 .ic svg{stroke:#6146C6!important}
.chip.p4 b em{color:#6146C6} .chip.p4 b+span u{color:#6146C6}
/* 5 · 미니게임 — 레드 */
.chip.p5 .ic{background:linear-gradient(145deg,#FDE6E4,#F7C3BF)!important}
.chip.p5 .ic svg{stroke:#CE3F36!important}
.chip.p5 b em{color:#CE3F36} .chip.p5 b+span u{color:#CE3F36}
/* 6 · 이벤트 — 핑크 */
.chip.p6 .ic{background:linear-gradient(145deg,#FCE3EF,#F5BEDA)!important}
.chip.p6 .ic svg{stroke:#B93679!important}
.chip.p6 b em{color:#B93679} .chip.p6 b+span u{color:#B93679}


/* ---------- 35. 칩 폭 · 배치 최종 조정 ---------- */
.chip-grid{width:min(1080px,94vw)!important}
.chip{max-width:none!important}
.chip b,.chip b+span{white-space:nowrap}
.chip.p4{right:5%!important}
