/* 브루망블 — 네온 여행 수첩.
   어두운 보라 밤하늘 위에 사탕색 네온. 유리 카드, 떠 있는 칸, 깜빡이는 불빛.
   한글은 Pretendard 하나(영문·숫자 장식만 Chakra Petch). 본문 최소 15px, 보조 글씨도 --ink2 보다 흐리게 쓰지 않는다.
   달마다 --mc 하나만 바뀐다. */

:root{
  --bg0:#0E0925;
  --bg1:#1A1140;
  --glass:rgba(255,255,255,.065);
  --glass2:rgba(255,255,255,.11);
  --stroke:rgba(255,255,255,.14);
  --ink:#F7F3FF;
  --ink2:#CFC6EE;          /* --bg1 위 대비 약 10:1 */
  --dark:#170F38;          /* 네온 버튼 위 글씨 */
  --cyan:#3DF2FF;
  --pink:#FF5FD2;
  --lime:#C6FF4D;
  --yellow:#FFE45C;
  --mc:#FF9A4D;
  --mc-soft:color-mix(in srgb, var(--mc) 16%, transparent);
  --mc-mid:color-mix(in srgb, var(--mc) 34%, transparent);
  --mc-glow:0 0 18px color-mix(in srgb, var(--mc) 65%, transparent);
  --r:22px;
  --ease:cubic-bezier(.2,.9,.25,1.15);
  --tab-h:76px;
  --disp:"Chakra Petch","Pretendard Variable",Pretendard,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;background:var(--bg0)}
body{
  color:var(--ink);
  background:
    radial-gradient(900px 600px at 0% -10%, rgba(255,95,210,.20), transparent 60%),
    radial-gradient(800px 700px at 110% 30%, rgba(61,242,255,.13), transparent 60%),
    radial-gradient(700px 600px at 30% 110%, color-mix(in srgb, var(--mc) 22%, transparent), transparent 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1) 60%, var(--bg0));
  background-attachment:fixed;
  font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  font-size:16px;line-height:1.6;letter-spacing:-.01em;
  word-break:keep-all;overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;min-height:100vh;
}
body::before{ /* 아주 옅은 격자 */
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(160,140,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(160,140,255,.06) 1px,transparent 1px);
  background-size:36px 36px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 80%);
          mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 80%);
}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
a{color:inherit;-webkit-tap-highlight-color:transparent}
svg{display:block}
b,strong{font-weight:700}
h2,h3,h4{letter-spacing:-.025em;line-height:1.3}
.num{font-family:var(--disp);font-variant-numeric:tabular-nums;letter-spacing:0}

.app{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:0 16px calc(var(--tab-h) + 44px)}

/* ---------- 유리 ---------- */
.glass{background:var(--glass);border:1px solid var(--stroke);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}

/* ---------- 위 ---------- */
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px;padding:12px 0 10px;
  background:linear-gradient(180deg, rgba(14,9,37,.92), rgba(14,9,37,.6) 80%, transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;margin-right:auto;min-width:0}
.brand b{font-size:19px;font-weight:800;letter-spacing:-.04em;white-space:nowrap}
.logo{position:relative;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;
  background:linear-gradient(135deg,var(--pink),var(--mc));box-shadow:0 0 16px color-mix(in srgb,var(--pink) 55%,transparent)}
.logo svg{width:22px;height:22px}
.logo path{fill:#fff}
.logo circle{fill:var(--pink)}
.ibtn{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--glass);border:1px solid var(--stroke);flex:0 0 auto}
.ibtn svg{width:22px;height:22px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ibtn:active{transform:scale(.94)}

.seg{position:relative;display:inline-flex;border-radius:999px;padding:4px;background:var(--glass);border:1px solid var(--stroke)}
.seg button{position:relative;z-index:1;padding:7px 13px;font-size:15px;font-weight:700;border-radius:999px;color:var(--ink2);transition:color .25s}
.seg button.on{color:var(--dark)}
.seg-knob{position:absolute;z-index:0;top:4px;bottom:4px;left:4px;border-radius:999px;background:var(--cyan);box-shadow:0 0 14px rgba(61,242,255,.6);
  transition:transform .35s var(--ease),width .35s var(--ease)}
.seg.wide{display:flex;width:100%;margin:4px 0 18px}
.seg.wide button{flex:1;padding:11px 0;font-size:16px}
.seg.wide .seg-knob{background:var(--mc);box-shadow:var(--mc-glow)}

.lv{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px 0 6px;border-radius:14px;background:var(--glass);border:1px solid var(--stroke);flex:0 0 auto}
.lv .lvb{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,var(--yellow),var(--mc));color:var(--dark);font-family:var(--disp);font-weight:700;font-size:15px}
.lv .lvx{display:flex;flex-direction:column;gap:4px;min-width:42px}
.lv .lvx b{font-size:14px;font-family:var(--disp);line-height:1}
.lv .xpbar{height:5px;border-radius:9px;background:rgba(255,255,255,.14);overflow:hidden}
.lv .xpbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--lime));box-shadow:0 0 8px var(--cyan);transition:width .8s var(--ease)}

/* ---------- 지금 열리는 것 (흐르는 줄) ---------- */
.ticker{display:flex;align-items:center;gap:10px;height:40px;margin:2px 0 10px;border-radius:14px;overflow:hidden;padding-left:10px}
.ticker .live{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:9px;background:#FF3D71;color:#fff;
  font-family:var(--disp);font-weight:700;font-size:14px;letter-spacing:.06em}
.ticker .live i{width:7px;height:7px;border-radius:50%;background:#fff;animation:blink 1s steps(2,start) infinite}
.ticker .track{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 20px),transparent)}
.ticker .row{display:inline-flex;gap:26px;white-space:nowrap;animation:marquee 48s linear infinite;padding-left:8px}
.ticker .row button{display:inline-flex;align-items:center;gap:7px;font-size:15px;font-weight:600;color:var(--ink);height:40px}
.ticker .row button b{font-family:var(--disp);color:var(--yellow);font-weight:700}
.ticker .row button em{font-style:normal;color:#FF7FA3;font-weight:800}
.ticker:hover .row{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes blink{to{visibility:hidden}}

/* ---------- 달 ---------- */
.months{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:4px 16px 14px;margin:0 -16px;scroll-snap-type:x proximity;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent)}
.months::-webkit-scrollbar{display:none}
.mbtn{position:relative;flex:0 0 auto;scroll-snap-align:center;min-width:58px;height:48px;padding:0 14px;border-radius:16px;
  background:var(--glass);border:1px solid var(--stroke);font-size:16px;font-weight:700;color:var(--ink2);
  transition:transform .2s,background .3s,color .3s,box-shadow .3s}
.mbtn i{position:absolute;top:6px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}
.mbtn.on{background:var(--c);color:var(--dark);border-color:transparent;box-shadow:0 0 20px color-mix(in srgb,var(--c) 60%,transparent)}
.mbtn.on i{background:#fff}
.mbtn:active{transform:scale(.94)}

.view{display:none}
.view.on{display:block}

/* ---------- 이번 달 첫 칸 ---------- */
.hero{position:relative;overflow:hidden;border-radius:26px;padding:16px 18px 14px;margin-bottom:12px}
.hero::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  display:none}
@keyframes sheen{0%{background-position:120% 0}60%,100%{background-position:-60% 0}}
.hero .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:800;color:var(--mc)}
.hero .eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--mc);box-shadow:0 0 10px var(--mc);animation:pulse 1.6s ease-in-out infinite}
.hero h1{font-size:25px;font-weight:800;letter-spacing:-.045em;line-height:1.25;margin:8px 0 4px;
  background:linear-gradient(90deg,#fff 30%,color-mix(in srgb,var(--mc) 70%,#fff));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .sub{font-size:16px;font-weight:600;color:var(--ink2)}
.hero .whyb{display:inline-flex;align-items:center;gap:6px;margin-top:10px;height:36px;padding:0 12px;border-radius:11px;background:var(--glass2);font-size:15px;font-weight:700}
.hero .whyb svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;transition:transform .3s}
.hero.open .whyb svg{transform:rotate(180deg)}
.hero .why{font-size:16px;color:var(--ink);max-height:0;overflow:hidden;transition:max-height .45s var(--ease),margin .3s;max-width:680px}
.hero.open .why{max-height:260px;margin-top:10px}
.hero .why b{color:var(--mc)}
.hero .bignum{position:absolute;right:6px;top:-20px;font-family:var(--disp);font-size:120px;font-weight:700;line-height:1;pointer-events:none;
  color:transparent;-webkit-text-stroke:2px color-mix(in srgb,var(--mc) 55%,transparent);opacity:.8;text-shadow:0 0 30px color-mix(in srgb,var(--mc) 40%,transparent)}
@keyframes pulse{50%{transform:scale(.6);opacity:.5}}

/* ---------- 이번 주말 ---------- */
.weekend{display:grid;grid-template-columns:84px 1fr;gap:14px;align-items:center;width:100%;text-align:left;padding:12px;border-radius:22px;margin-bottom:12px;position:relative;overflow:hidden}
.weekend .art{width:84px;height:84px;border-radius:16px}
.weekend .k{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:800;color:var(--lime);font-family:var(--disp);letter-spacing:.02em}
.weekend .k i{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 8px var(--lime);animation:pulse 1.4s infinite}
.weekend h3{font-size:18px;font-weight:800;margin:2px 0}
.weekend p{font-size:15px;color:var(--ink2)}
.wxs{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.wxs span{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:700;padding:3px 9px;border-radius:9px;background:var(--glass2);white-space:nowrap}
.wxs svg{width:18px;height:18px;flex:0 0 auto}

/* ---------- 지도 ---------- */
.homegrid{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
.mapcol,.rightcol,.spots{min-width:0}
.rightcol{display:grid;gap:14px;align-content:start}
.rightcol .weekend{margin-bottom:0}
.mapcard{position:relative;border-radius:28px;overflow:hidden;
  background:radial-gradient(120% 80% at 50% 0%, #241760 0%, #120B30 70%);
  border:1px solid rgba(160,140,255,.28);box-shadow:inset 0 0 60px rgba(120,90,255,.18),0 20px 50px -20px rgba(0,0,0,.6)}
.mapwrap{position:relative}
#map{width:100%;height:min(420px,52vh);touch-action:manipulation}
.scan{position:absolute;left:0;right:0;top:0;height:90px;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(61,242,255,.05) 70%,rgba(61,242,255,.16) 98%,transparent);animation:scan 5.5s linear infinite;mix-blend-mode:screen;animation-duration:9s}
@keyframes scan{from{transform:translateY(-100px)}to{transform:translateY(520px)}}
#map .grid line{stroke:rgba(140,120,255,.12);stroke-width:1.5}
#map .side1{fill:#0A0620}
#map .side2{fill:#1B1250}
#map .face{fill:#2A1F6A;stroke:#120B30;stroke-width:8;stroke-linejoin:round;transition:fill .5s}
#map .edge{fill:none;stroke:rgba(150,130,255,.55);stroke-width:2.5;stroke-linejoin:round}
#map .prov{cursor:pointer}
#map .prov.hot .face{fill:color-mix(in srgb,var(--mc) 24%,#4B3AB5)}
#map .prov.hot .edge{stroke:var(--mc);stroke-width:4}
#map .prov .glow{fill:none;stroke:var(--mc);stroke-width:14;opacity:0}
#map .prov.hot .glow{animation:neon 4.2s ease-in-out infinite}
@keyframes neon{0%,100%{opacity:.22}5%{opacity:.95}8%{opacity:.3}11%{opacity:.95}40%{opacity:.45}}
#map .plab{font-size:30px;font-weight:800;fill:rgba(207,198,238,.85);text-anchor:middle;dominant-baseline:central;pointer-events:none;letter-spacing:.02em}
#map .prov.hot .plab{fill:#fff}
#map .pcnt rect{fill:var(--mc)}
#map .pcnt text{font-size:24px;font-weight:800;fill:var(--dark);text-anchor:middle;dominant-baseline:central;font-family:var(--disp)}
#map .home .rad{fill:none;stroke:var(--cyan);stroke-width:3;animation:radar 2.4s ease-out infinite;transform-box:fill-box;transform-origin:center}
#map .home .rad.d2{animation-delay:1.2s}
@keyframes radar{from{transform:scale(.4);opacity:.9}to{transform:scale(2.6);opacity:0}}
#map .home .hb{fill:var(--cyan)}
#map .home path{fill:var(--dark)}
#map .home text{font-size:34px;font-weight:800;fill:var(--cyan);paint-order:stroke;stroke:#120B30;stroke-width:8px;stroke-linejoin:round}
#map .pin{cursor:pointer}
#map .pin .hit{fill:transparent}
#map .pin .beacon{fill:none;stroke:var(--mc);stroke-width:4;transform-box:fill-box;transform-origin:center;opacity:0}
#map .pin.on .beacon{animation:radar 1.8s ease-out infinite}
#map .pin .body{fill:var(--mc);stroke:#fff;stroke-width:5}
#map .pin .num{font-size:36px;font-weight:700;fill:var(--dark);text-anchor:middle;dominant-baseline:central;font-family:var(--disp)}
#map .pin .shadow{fill:color-mix(in srgb,var(--mc) 55%,transparent)}
#map .pin.done .body{fill:#fff}
#map .pin.on .body{stroke:var(--cyan);stroke-width:7}
#map .pin .tag{display:none}
#map .pin .tag rect{fill:#120B30;stroke:var(--mc);stroke-width:3}
#map .pin .tag text{font-size:30px;font-weight:800;fill:#fff;dominant-baseline:central}
#map .route{fill:none;stroke:var(--cyan);stroke-width:5;stroke-dasharray:3 14;stroke-linecap:round;animation:march 1s linear infinite;filter:drop-shadow(0 0 6px var(--cyan))}
@keyframes march{to{stroke-dashoffset:-34}}

.wxchip{position:absolute;left:12px;top:12px;z-index:3;display:flex;align-items:center;gap:8px;height:44px;padding:0 12px 0 8px;border-radius:14px;
  background:rgba(18,11,48,.72);border:1px solid rgba(61,242,255,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 0 18px rgba(61,242,255,.18)}
.wxchip svg.wi{width:28px;height:28px}
.wxchip .t{font-family:var(--disp);font-size:20px;font-weight:700;line-height:1}
.wxchip .w{display:flex;flex-direction:column;line-height:1.2}
.wxchip .w span{font-size:14px;font-weight:700}
.wxchip .w small{font-size:14px;color:var(--ink2);font-weight:600}
.maplegend{position:absolute;right:12px;top:12px;z-index:3;display:flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:10px;
  background:rgba(18,11,48,.72);border:1px solid var(--stroke);font-size:14px;font-weight:700}
.maplegend i{width:10px;height:10px;border-radius:3px;background:var(--mc);box-shadow:0 0 8px var(--mc);animation:blink 1.2s steps(2,start) infinite}

.deck{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 14px 14px;scroll-padding:0 14px}
.deck::-webkit-scrollbar{display:none}
.dcard{flex:0 0 82%;scroll-snap-align:start;display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center;text-align:left;padding:10px;border-radius:18px;
  background:rgba(255,255,255,.08);border:1px solid var(--stroke);transition:border-color .3s,box-shadow .3s,transform .2s}
.dcard.on{border-color:var(--mc);box-shadow:0 0 0 1px var(--mc),0 0 22px color-mix(in srgb,var(--mc) 40%,transparent)}
.dcard:active{transform:scale(.97)}
.dcard .art{width:72px;height:72px;border-radius:14px}
.dcard h4{font-size:16px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dcard .dm{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;align-items:center}

/* ---------- 상태 배지 ---------- */
.st{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border-radius:9px;font-size:14px;font-weight:800;white-space:nowrap}
.st i{width:7px;height:7px;border-radius:50%;background:currentColor}
.st.live{background:#FF3D71;color:#fff;box-shadow:0 0 14px rgba(255,61,113,.6)}
.st.live i{background:#fff;animation:blink .9s steps(2,start) infinite}
.st.soon{background:var(--yellow);color:var(--dark)}
.st.soon b{font-family:var(--disp)}
.st.now{background:var(--lime);color:var(--dark)}
.st.now i{animation:pulse 1.4s infinite}
.st.next{background:var(--glass2);color:var(--ink)}
.st.past{background:var(--glass2);color:var(--ink2)}
.chip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border-radius:9px;font-size:14px;font-weight:700;background:var(--glass2);color:var(--ink);white-space:nowrap}
.chip svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.chip svg.wi{width:18px;height:18px;stroke:none}
.chip.eat{background:rgba(255,228,92,.16);color:#FFE98A}

/* ---------- 곳 카드 (큰 것) ---------- */
.spots{display:grid;gap:14px;align-content:start}
.spot{position:relative;display:block;width:100%;text-align:left;border-radius:24px;overflow:hidden;background:var(--glass);border:1px solid var(--stroke);
  transition:transform .25s var(--ease),border-color .3s,box-shadow .3s}
.spot:hover,.spot.hl{border-color:var(--mc);box-shadow:0 0 0 1px var(--mc),0 0 26px color-mix(in srgb,var(--mc) 35%,transparent)}
.spot:active{transform:scale(.985)}
.spot .thumb{position:relative;aspect-ratio:2/1}
.spot .thumb .art{width:100%;height:100%}
.spot .thumb::after{content:"";position:absolute;inset:auto 0 0 0;height:50px;background:linear-gradient(transparent,rgba(14,9,37,.55))}
.spot .badges{position:absolute;left:12px;top:12px;display:flex;gap:6px;flex-wrap:wrap;z-index:1}
.spot .n{position:absolute;left:12px;bottom:10px;z-index:1;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--mc);color:var(--dark);
  font-family:var(--disp);font-size:19px;font-weight:700;box-shadow:var(--mc-glow)}
.spot .heart{position:absolute;right:10px;top:10px;z-index:2}
.spot .wxmini{position:absolute;right:12px;bottom:10px;z-index:1;display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 10px;border-radius:10px;
  background:rgba(14,9,37,.7);font-family:var(--disp);font-weight:700;font-size:15px}
.spot .wxmini svg{width:20px;height:20px}
.spot .body{padding:14px 16px 16px}
.spot h3{font-size:19px;font-weight:800;line-height:1.35}
.spot .meta{font-size:15px;color:var(--ink2);margin-top:2px}
.spot .one{font-size:15px;margin-top:8px;color:var(--ink)}
.spot .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.stampmark{position:absolute;right:62px;top:14px;z-index:2;width:62px;height:62px;border-radius:50%;border:3px solid #FF3D71;color:#FF5A87;
  display:grid;place-items:center;font-size:14px;font-weight:900;transform:rotate(-14deg);background:rgba(14,9,37,.6);box-shadow:0 0 16px rgba(255,61,113,.5);pointer-events:none}

.heart{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:rgba(14,9,37,.55);backdrop-filter:blur(6px)}
.heart svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:2;stroke-linejoin:round;transition:fill .2s,stroke .2s}
.heart.on svg{fill:#FF4F8B;stroke:#FF4F8B;filter:drop-shadow(0 0 6px #FF4F8B)}

.bigbtn{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:16px;height:60px;border-radius:20px;
  background:linear-gradient(90deg,var(--pink),var(--mc));color:var(--dark);font-size:18px;font-weight:800;
  box-shadow:0 0 26px color-mix(in srgb,var(--pink) 45%,transparent),inset 0 -4px 0 rgba(0,0,0,.18);transition:transform .12s}
.bigbtn svg{width:24px;height:24px;fill:none;stroke:var(--dark);stroke-width:2.2;stroke-linejoin:round}
.bigbtn:active{transform:translateY(3px) scale(.99)}
.bigbtn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);background-size:250% 100%;animation:sheen 7s ease-in-out infinite}

/* ---------- 해외 ---------- */
.pass{position:relative;margin:64px 16px 18px;border-radius:24px;background:rgba(255,255,255,.08);border:1px solid var(--stroke);overflow:hidden}
.pass-top{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:linear-gradient(90deg,var(--pink),var(--mc));color:var(--dark);font-weight:800;font-size:15px}
.pass-top svg{width:24px;height:24px;fill:var(--dark)}
.pass-mid{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:20px 18px 8px}
.pass-mid .code{font-family:var(--disp);font-size:38px;font-weight:700;line-height:1.05;text-shadow:0 0 14px rgba(61,242,255,.5)}
.pass-mid .city{font-size:15px;font-weight:600;color:var(--ink2)}
.pass-mid .to{text-align:right}
.pass-mid .line{width:70px;height:2px;border-top:2.5px dashed var(--cyan);position:relative}
.pass-mid .line svg{position:absolute;left:50%;top:50%;width:26px;height:26px;transform:translate(-50%,-58%);fill:var(--cyan);animation:fly 2.4s ease-in-out infinite}
@keyframes fly{0%,100%{transform:translate(-90%,-58%)}50%{transform:translate(-10%,-58%)}}
.pass-bot{display:flex;gap:18px;padding:12px 18px 18px;border-top:2px dashed var(--stroke);margin-top:12px}
.pass-bot div{font-size:14px;color:var(--ink2);font-weight:600}
.pass-bot b{display:block;font-size:16px;color:var(--ink);font-weight:800}

/* ---------- 보기 머리 ---------- */
.vhead{padding:10px 2px 12px}
.vhead h2{font-size:26px;font-weight:800}
.vhead p{font-size:16px;color:var(--ink2);margin-top:2px}

/* ---------- 코스 ---------- */
.ccard{border-radius:26px;overflow:hidden}
.ccard-head{padding:20px;background:linear-gradient(135deg,var(--mc-mid),transparent)}
.ccard-head h3{font-size:22px;font-weight:800}
.ccard-head p{font-size:15px;font-weight:600;color:var(--ink2);margin-top:4px}
.steps{list-style:none;padding:12px 20px 8px}
.step{position:relative;display:grid;grid-template-columns:18px 1fr;gap:14px;padding:10px 0}
.step::before{content:"";position:absolute;left:8px;top:28px;bottom:-12px;width:2.5px;background:linear-gradient(var(--mc),transparent);border-radius:2px;opacity:.7}
.step:last-child::before{display:none}
.step .dot{width:18px;height:18px;border-radius:50%;background:var(--bg1);border:4px solid var(--mc);margin-top:4px;position:relative;z-index:1;box-shadow:var(--mc-glow)}
.step .t{font-size:14px;font-weight:800;color:var(--mc);font-family:var(--disp)}
.step h4{font-size:17px;font-weight:800;margin-top:1px}
.step p{font-size:15px;color:var(--ink);margin-top:3px}
.step p b{color:var(--yellow)}
.step.mv{padding:4px 0}
.step.mv .dot{border:0;background:transparent;box-shadow:none;display:grid;place-items:center}
.step.mv .dot svg{width:18px;height:18px;fill:none;stroke:var(--cyan);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.step.mv .mvline{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:12px;background:rgba(61,242,255,.1);border:1px solid rgba(61,242,255,.3);font-size:15px;font-weight:700}
.foot{display:grid;gap:10px;padding:8px 20px 20px}
.fbox{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start;padding:14px;border-radius:18px;background:var(--glass2)}
.fbox .ic{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--mc-soft)}
.fbox .ic svg{width:22px;height:22px;fill:none;stroke:var(--mc);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fbox h4{font-size:15px;font-weight:800}
.fbox p{font-size:15px;margin-top:2px}
.fbox p b{color:var(--yellow)}
.clinks{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 22px}

/* ---------- 버튼 ---------- */
.lbtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:46px;padding:0 16px;border-radius:14px;text-decoration:none;
  font-size:15px;font-weight:700;background:var(--glass2);border:1px solid var(--stroke);transition:transform .12s,background .2s}
.lbtn svg{width:18px;height:18px;fill:none;stroke:var(--cyan);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.lbtn:active{transform:scale(.96)}
.lbtn.main{background:var(--cyan);color:var(--dark);border-color:transparent;box-shadow:0 0 18px rgba(61,242,255,.45)}
.lbtn.main svg{stroke:var(--dark)}

/* ---------- 물어보기 ---------- */
.card{padding:20px;border-radius:26px;margin-bottom:14px}
.card h3{font-size:18px;font-weight:800}
.card h3 small{font-size:14px;font-weight:600;color:var(--ink2);margin-left:6px}
.ai{position:relative;overflow:hidden;border-color:rgba(61,242,255,.35);box-shadow:0 0 30px rgba(61,242,255,.12)}
.ai .aih{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.ai .orb{width:40px;height:40px;border-radius:14px;flex:0 0 auto;background:conic-gradient(from 0deg,var(--cyan),var(--pink),var(--yellow),var(--cyan));animation:spin 6s linear infinite;
  display:grid;place-items:center;box-shadow:0 0 18px rgba(61,242,255,.5)}
.ai .orb svg{width:22px;height:22px;fill:var(--dark)}
@keyframes spin{to{transform:rotate(360deg)}}
.ai .aih b{font-size:18px}
.ai .aih span{display:block;font-size:14px;color:var(--ink2);font-weight:600}
.ai textarea,.field{width:100%;border:1px solid var(--stroke);border-radius:16px;background:rgba(0,0,0,.25);color:var(--ink);font:inherit;font-size:16px;padding:12px 14px}
.ai textarea{min-height:76px;resize:vertical}
.ai textarea::placeholder,.field::placeholder{color:#A99FD0}
.ai textarea:focus,.field:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(61,242,255,.18)}
.sugs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:10px -20px 0;padding:0 20px 2px}
.sugs::-webkit-scrollbar{display:none}
.sugs button{flex:0 0 auto;height:38px;padding:0 13px;border-radius:12px;background:var(--glass2);border:1px solid var(--stroke);font-size:14px;font-weight:700}
.ai .go{margin-top:12px}
.ai .passrow{display:flex;gap:8px;margin-top:10px}
.ai .passrow .field{flex:1;height:48px}
.thinking{display:flex;align-items:center;gap:12px;padding:18px 4px 4px;font-size:16px;font-weight:700}
.thinking .dots{display:flex;gap:5px}
.thinking .dots i{width:9px;height:9px;border-radius:50%;background:var(--cyan);animation:hop 1s ease-in-out infinite;box-shadow:0 0 8px var(--cyan)}
.thinking .dots i:nth-child(2){animation-delay:.15s;background:var(--pink);box-shadow:0 0 8px var(--pink)}
.thinking .dots i:nth-child(3){animation-delay:.3s;background:var(--yellow);box-shadow:0 0 8px var(--yellow)}
@keyframes hop{50%{transform:translateY(-8px)}}
.ares{margin-top:16px}
.ares h3{font-size:21px}
.ares .sum{font-size:16px;margin-top:6px}
.ares .picks{display:grid;gap:8px;margin:14px 0}
.ares .pk{display:grid;grid-template-columns:60px 1fr;gap:12px;align-items:center;text-align:left;padding:8px;border-radius:16px;background:var(--glass2);border:1px solid var(--stroke)}
.ares .pk .art{width:60px;height:60px;border-radius:12px}
.ares .pk b{display:block;font-size:16px}
.ares .pk span{display:block;font-size:14px;color:var(--ink2)}
.ares .tips{list-style:none;display:grid;gap:6px;margin-top:10px}
.ares .tips li{position:relative;padding-left:18px;font-size:15px}
.ares .tips li::before{content:"";position:absolute;left:2px;top:9px;width:8px;height:8px;border-radius:2px;background:var(--lime);box-shadow:0 0 6px var(--lime)}
.ares .acts{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.err{margin-top:12px;padding:12px 14px;border-radius:14px;background:rgba(255,61,113,.14);border:1px solid rgba(255,61,113,.4);font-size:15px}

.qbox h3{font-size:18px;font-weight:800;margin:4px 0 10px}
.qbox h3 small{font-size:14px;font-weight:600;color:var(--ink2);margin-left:6px}
.qbox h3 + .chips{margin-bottom:18px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{height:46px;padding:0 17px;border-radius:15px;font-size:16px;font-weight:700;background:var(--glass2);border:1px solid var(--stroke);transition:transform .12s,background .2s,color .2s}
.chips button.on{background:var(--mc);color:var(--dark);border-color:transparent;box-shadow:var(--mc-glow)}
.chips button:active{transform:scale(.95)}
.slot{margin-top:16px;padding:22px 20px;border-radius:26px;text-align:center;overflow:hidden}
.slot .reel{height:48px;overflow:hidden;font-size:24px;font-weight:900;letter-spacing:-.04em;line-height:48px;color:var(--mc);text-shadow:0 0 16px color-mix(in srgb,var(--mc) 60%,transparent)}
.slot .strip div{height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px}
.slot .why{font-size:16px;margin-top:10px}
.slot .why b{color:var(--mc)}
.slot .acts{display:flex;justify-content:center;gap:8px;margin-top:16px;flex-wrap:wrap}

/* ---------- 수첩 ---------- */
.ch{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.ch svg{width:22px;height:22px;fill:none;stroke:var(--mc);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lvcard{display:grid;grid-template-columns:72px 1fr;gap:16px;align-items:center}
.lvcard .big{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(135deg,var(--yellow),var(--mc));color:var(--dark);
  font-family:var(--disp);font-size:30px;font-weight:700;box-shadow:0 0 24px color-mix(in srgb,var(--yellow) 45%,transparent)}
.lvcard .big small{display:block;font-size:13px;line-height:1;margin-bottom:-6px}
.lvcard b{font-size:20px;display:block}
.lvcard span{font-size:15px;color:var(--ink2)}
.bar{height:12px;border-radius:99px;background:rgba(255,255,255,.1);margin:10px 0 4px;overflow:hidden}
.bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--cyan),var(--lime));box-shadow:0 0 10px var(--cyan)}
.badges{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.badge{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:10px 4px;border-radius:16px;background:var(--glass2)}
.badge .bi{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);border:2px dashed rgba(255,255,255,.22)}
.badge .bi svg{width:26px;height:26px;fill:none;stroke:rgba(255,255,255,.4);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.badge b{font-size:14px;line-height:1.3}
.badge small{font-size:13px;color:var(--ink2);line-height:1.3}
.badge.got .bi{background:var(--bc);border:0;box-shadow:0 0 18px color-mix(in srgb,var(--bc) 60%,transparent)}
.badge.got .bi svg{stroke:var(--dark)}
.sc-head{display:flex;justify-content:space-between;align-items:baseline}
.sc-count{font-size:18px;font-weight:700;color:var(--mc);font-family:var(--disp)}
.stampgrid{display:grid;gap:8px;margin-top:12px}
.srow{display:grid;grid-template-columns:40px repeat(5,1fr);gap:6px;align-items:center}
.srow .ml{font-size:14px;font-weight:800;color:var(--ink2)}
.sdot{height:40px;border-radius:12px;background:color-mix(in srgb,var(--c) 12%,transparent);border:1px solid color-mix(in srgb,var(--c) 30%,transparent);display:grid;place-items:center;transition:transform .15s}
.sdot:active{transform:scale(.9)}
.sdot svg{width:20px;height:20px;fill:none;stroke:var(--dark);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.sdot.on{background:var(--c);box-shadow:0 0 12px color-mix(in srgb,var(--c) 60%,transparent)}
.sdot.wish{border:2px solid #FF4F8B}
.mini{display:grid;gap:8px}
.mini .empty{font-size:15px;color:var(--ink2);padding:4px 2px}
.mitem{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border-radius:16px;background:var(--glass2)}
.mitem .mm{flex:0 0 auto;min-width:46px;height:30px;padding:0 8px;border-radius:9px;display:grid;place-items:center;font-size:14px;font-weight:800;color:var(--dark);background:var(--c)}
.mitem b{font-size:16px;display:block;line-height:1.35}
.mitem span{font-size:14px;color:var(--ink2);display:block}
.pack{list-style:none;display:grid;gap:4px}
.pack li{display:flex;align-items:center;gap:10px;padding:6px 4px 6px 8px;border-radius:14px}
.pack .ck{flex:0 0 auto;width:30px;height:30px;border-radius:10px;border:2px solid var(--stroke);display:grid;place-items:center;transition:background .2s}
.pack .ck svg{width:18px;height:18px;fill:none;stroke:var(--dark);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.pack li.done .ck{background:var(--lime);border-color:transparent;box-shadow:0 0 10px rgba(198,255,77,.5)}
.pack li.done .ck svg{opacity:1}
.pack .pt{flex:1;font-size:16px;font-weight:600;text-align:left}
.pack .pt small{display:block;font-size:14px;font-weight:500;color:var(--ink2)}
.pack li.done .pt{text-decoration:line-through;text-decoration-thickness:2px;color:var(--ink2)}
.pack .del{width:40px;height:40px;border-radius:10px;display:grid;place-items:center}
.pack .del svg{width:16px;height:16px;fill:none;stroke:var(--ink2);stroke-width:2.4;stroke-linecap:round}
.packadd{display:flex;gap:8px;margin-top:12px}
.packadd .field{flex:1;min-width:0;height:48px}
.packadd button{height:48px;padding:0 18px;border-radius:14px;background:var(--cyan);color:var(--dark);font-weight:800;font-size:16px}

/* ---------- 아래 탭 ---------- */
.tabbar{position:fixed;z-index:40;left:50%;bottom:calc(12px + env(safe-area-inset-bottom));transform:translateX(-50%);
  display:flex;gap:2px;padding:6px;border-radius:26px;background:rgba(18,11,48,.86);border:1px solid rgba(160,140,255,.3);
  box-shadow:0 14px 40px -10px rgba(0,0,0,.7),0 0 30px rgba(120,90,255,.2);width:min(430px,calc(100% - 24px));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.tabbar button{position:relative;z-index:1;flex:1;height:60px;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  color:var(--ink2);font-size:13px;font-weight:700;transition:color .25s}
.tabbar svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tabbar button.on{color:var(--dark)}
.tab-knob{position:absolute;z-index:0;top:6px;bottom:6px;left:6px;border-radius:20px;background:var(--mc);box-shadow:var(--mc-glow);transition:transform .38s var(--ease),width .38s var(--ease),background .4s}

/* ---------- 아래서 올라오는 판 ---------- */
.sheet{position:fixed;inset:0;z-index:60}
.sheet[hidden]{display:none}
.sheet-bg{position:absolute;inset:0;background:rgba(6,3,20,.62);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.sheet-card{position:absolute;left:0;right:0;bottom:0;max-height:92vh;margin:0 auto;max-width:640px;border-radius:30px 30px 0 0;overflow:hidden;
  background:linear-gradient(180deg,#221655,#150E36 40%);border:1px solid rgba(160,140,255,.3);border-bottom:0;display:flex;flex-direction:column;
  box-shadow:0 -10px 50px -10px rgba(0,0,0,.7),0 0 40px color-mix(in srgb,var(--mc) 20%,transparent)}
.grab{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:44px;height:5px;border-radius:5px;background:rgba(255,255,255,.55);z-index:3}
.sx{position:absolute;right:12px;top:12px;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:rgba(14,9,37,.6);backdrop-filter:blur(8px);z-index:3}
.sx svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round}
.sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:0 0 calc(20px + env(safe-area-inset-bottom))}
.sh-banner{position:relative;height:170px}
.sh-banner .art{width:100%;height:100%}
.sh-banner::after{content:"";position:absolute;inset:auto 0 0 0;height:70px;background:linear-gradient(transparent,#221655)}
.sh-banner .badges{position:absolute;left:16px;top:16px;display:flex;gap:6px;z-index:1}
.sh-in{padding:0 20px}
.sh-top{display:flex;gap:14px;align-items:flex-start;margin-top:-26px;position:relative;z-index:1}
.sh-top .n{flex:0 0 auto;width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:var(--mc);color:var(--dark);font-family:var(--disp);font-size:24px;font-weight:700;box-shadow:var(--mc-glow)}
.sh-top h3{font-size:23px;font-weight:800;line-height:1.3;padding-top:2px}
.sh-top p{font-size:15px;color:var(--ink2);font-weight:600;margin-top:2px}
.qrow{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.sh-sec{padding:16px 0;border-top:1px solid rgba(255,255,255,.08)}
.sh-sec:first-of-type{border-top:0}
.sh-sec h4{display:flex;align-items:center;gap:7px;font-size:15px;font-weight:800;color:var(--mc);margin-bottom:10px}
.sh-sec h4 svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.sh-sec h4 small{margin-left:auto;font-size:14px;color:var(--ink2);font-weight:600}
.sh-sec p{font-size:16px}
.sh-sec p b{color:var(--yellow)}
.wx7{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.wx7 div{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;border-radius:14px;background:var(--glass2);font-size:14px;font-weight:700}
.wx7 div.we{background:color-mix(in srgb,var(--mc) 22%,transparent);box-shadow:inset 0 0 0 1px var(--mc)}
.wx7 svg{width:28px;height:28px}
.wx7 .hi{font-family:var(--disp);font-size:16px}
.wx7 .lo{font-family:var(--disp);color:var(--ink2);font-size:14px}
.wx7 .pp{font-size:13px;color:#8FD9FF;font-family:var(--disp)}
.wxnote{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:14px;color:var(--ink2);font-weight:600}
.wxnote b{color:var(--ink);font-family:var(--disp)}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fact{padding:12px 14px;border-radius:16px;background:var(--glass2)}
.fact span{display:block;font-size:14px;color:var(--ink2);font-weight:600}
.fact b{display:block;font-size:18px;font-weight:800;margin-top:1px}
.eats{display:flex;flex-wrap:wrap;gap:8px}
.eats .chip{height:34px;font-size:15px;padding:0 12px;text-decoration:none}
.plist{display:flex;flex-wrap:wrap;gap:6px}
.plist span{padding:6px 11px;border-radius:11px;background:var(--glass2);font-size:15px;font-weight:600}
.cbtn{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px;border-radius:18px;background:var(--mc-soft);border:1px solid var(--mc-mid)}
.cbtn .ci{width:42px;height:42px;border-radius:13px;background:var(--mc);display:grid;place-items:center;flex:0 0 auto;box-shadow:var(--mc-glow)}
.cbtn .ci svg{width:22px;height:22px;fill:none;stroke:var(--dark);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cbtn b{display:block;font-size:16px}
.cbtn span{display:block;font-size:14px;color:var(--ink2);font-weight:600}
.links{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.links .lbtn{width:100%}
.links .lbtn.main{grid-column:1/-1}
.acts2{position:sticky;bottom:-20px;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 20px 6px;background:linear-gradient(transparent,#150E36 30%)}
.abtn{display:flex;align-items:center;justify-content:center;gap:8px;height:56px;border-radius:18px;font-size:16px;font-weight:800;background:var(--glass2);border:1px solid var(--stroke);transition:transform .12s,background .2s}
.abtn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.abtn:active{transform:scale(.96)}
.abtn.wish.on{background:#FF4F8B;border-color:transparent;box-shadow:0 0 18px rgba(255,79,139,.5)}
.abtn.wish.on svg{fill:#fff}
.abtn.stamp{background:linear-gradient(90deg,var(--mc),var(--pink));color:var(--dark);border-color:transparent}
.abtn.stamp.on{background:var(--lime);box-shadow:0 0 18px rgba(198,255,77,.45)}
.memo{width:100%;min-height:84px;resize:vertical;border:1px solid var(--stroke);border-radius:16px;background:rgba(0,0,0,.25);padding:12px 14px;font:inherit;font-size:16px;color:var(--ink)}
.memo::placeholder{color:#A99FD0}
.memo:focus{outline:none;border-color:var(--cyan)}

.bigstamp{position:fixed;z-index:80;left:50%;top:45%;width:190px;height:190px;margin:-95px 0 0 -95px;border-radius:50%;border:7px solid #FF3D71;color:#FF5A87;display:grid;place-items:center;
  text-align:center;font-weight:900;font-size:28px;line-height:1.15;pointer-events:none;background:rgba(14,9,37,.85);box-shadow:0 0 40px rgba(255,61,113,.6),inset 0 0 30px rgba(255,61,113,.3)}
.bigstamp small{display:block;font-size:16px;font-weight:800;color:#fff;margin-top:4px;padding:0 16px}

/* 뱃지 획득 */
.unlock{position:fixed;inset:0;z-index:85;display:grid;place-items:center;background:rgba(6,3,20,.7);backdrop-filter:blur(6px)}
.unlock .box{width:min(320px,86vw);padding:28px 22px 22px;border-radius:28px;text-align:center;background:linear-gradient(180deg,#2A1B6B,#170F3E);border:1px solid rgba(255,228,92,.5);box-shadow:0 0 50px rgba(255,228,92,.3)}
.unlock .k{font-family:var(--disp);font-size:15px;letter-spacing:.12em;color:var(--yellow);font-weight:700}
.unlock .bi{width:96px;height:96px;margin:14px auto;border-radius:50%;display:grid;place-items:center;background:var(--bc);box-shadow:0 0 40px var(--bc)}
.unlock .bi svg{width:46px;height:46px;fill:none;stroke:var(--dark);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.unlock h3{font-size:22px}
.unlock p{font-size:15px;color:var(--ink2);margin-top:4px}
.unlock button{margin-top:18px;width:100%;height:52px;border-radius:16px;background:var(--yellow);color:var(--dark);font-weight:800;font-size:16px}

/* 찾기 */
.search{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;background:rgba(10,6,28,.94);backdrop-filter:blur(10px)}
.search[hidden]{display:none}
.search .sbar{display:flex;gap:8px;padding:14px 16px;max-width:720px;width:100%;margin:0 auto}
.search .sbar .field{height:50px}
.search .res{flex:1;overflow-y:auto;padding:0 16px 30px;max-width:720px;width:100%;margin:0 auto;display:grid;gap:8px;align-content:start}
.search .hint{font-size:15px;color:var(--ink2);padding:6px 2px}
.search .sug2{display:flex;flex-wrap:wrap;gap:8px}

.toast{position:fixed;z-index:90;left:50%;bottom:calc(var(--tab-h) + 34px);transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:12px 18px;border-radius:14px;
  background:#fff;color:var(--dark);font-size:15px;font-weight:800;white-space:nowrap;transition:opacity .25s,transform .25s;box-shadow:0 0 24px rgba(255,255,255,.3)}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ---------- 움직이는 그림 ---------- */
.art{display:block}
.art .a-wave{animation:wave 3.2s linear infinite}
.art .a-wave.slow{animation-duration:5s;animation-direction:reverse}
@keyframes wave{to{transform:translateX(40px)}}
.art .a-bob{animation:bob 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes bob{50%{transform:translateY(-4px) rotate(-3deg)}}
.art .a-pulse{animation:sun 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes sun{50%{transform:scale(1.12);opacity:.85}}
.art .a-drift{animation:drift 8s ease-in-out infinite alternate}
@keyframes drift{to{transform:translateX(26px)}}
.art .a-sway{animation:sway 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 100%}
@keyframes sway{50%{transform:rotate(7deg)}}
.art .a-fall{animation:fall 4.5s linear infinite}
.art .a-fall.d2{animation-delay:1.5s}.art .a-fall.d3{animation-delay:3s}
@keyframes fall{0%{transform:translate(0,-6px);opacity:0}10%{opacity:1}100%{transform:translate(-26px,106px) rotate(200deg);opacity:0}}
.art .a-steam{animation:steam 2.4s ease-in-out infinite;opacity:0}
.art .a-steam.d2{animation-delay:.7s}.art .a-steam.d3{animation-delay:1.4s}
@keyframes steam{0%{transform:translateY(8px);opacity:0}40%{opacity:.95}100%{transform:translateY(-12px);opacity:0}}
.art .a-twinkle{animation:twk 1.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes twk{50%{opacity:.2;transform:scale(.6)}}
.art .a-swing{animation:swing 2.4s ease-in-out infinite;transform-origin:0 -16px}
@keyframes swing{50%{transform:rotate(8deg)}}
.art .a-glow{animation:sun 1.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.art .a-snow{animation:snow 5s linear infinite}
@keyframes snow{0%{transform:translate(0,-4px);opacity:0}10%{opacity:1}100%{transform:translate(10px,104px);opacity:.2}}

/* ---------- 날씨 아이콘 ---------- */
.wi .sun{fill:#FFD43B}
.wi .ray{stroke:#FFD43B;stroke-width:2.2;stroke-linecap:round}
.wi .cl{fill:#E6E9FF}
.wi .cl2{fill:#AEB5E0}
.wi .dr{stroke:#6FD3FF;stroke-width:2.2;stroke-linecap:round}
.wi .sn{fill:#fff}
.wi .bolt{fill:#FFE45C}
.wi .moon{fill:#FFE9A8}
.wi .spinr{animation:spin 12s linear infinite;transform-box:fill-box;transform-origin:center}

/* ---------- 넓은 화면 ---------- */
@media (min-width:900px){
  .app{padding:0 28px calc(var(--tab-h) + 50px)}
  .months{margin:0;padding:4px 0 16px;-webkit-mask-image:none}
  .mbtn{flex:1;min-width:0}
  .hero{padding:26px 30px}
  .hero h1{font-size:38px}
  .hero .bignum{font-size:210px;top:-40px;right:20px}
  .homegrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
  .mapcol{position:sticky;top:74px}
  #map{height:min(640px,calc(100vh - 150px))}
  @keyframes scan{from{transform:translateY(-100px)}to{transform:translateY(720px)}}
  .deck{display:none}
  .spots{grid-template-columns:1fr 1fr}
  .sheet-card{bottom:24px;border-radius:30px;max-height:calc(100vh - 48px);border-bottom:1px solid rgba(160,140,255,.3)}
  #v-course,#v-pick,#v-note{max-width:760px;margin:0 auto}
  .bigbtn{max-width:540px;margin-left:auto;margin-right:auto}
}
@media (max-width:370px){
  .brand b{display:none}
  .hero h1{font-size:25px}
  .lv .lvx{display:none}
  .badges{grid-template-columns:repeat(3,1fr)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ---------- 우리 여행 ---------- */
.tripban{border-color:rgba(61,242,255,.45);box-shadow:0 0 26px rgba(61,242,255,.18)}
.tripban .k{color:var(--cyan)}
.tripban .k i{background:var(--cyan);box-shadow:0 0 8px var(--cyan)}
.tripwx{margin-top:12px}
.jcard{padding:10px;margin-bottom:10px}
.jmap{width:100%;height:auto;max-height:300px;display:block}
.jmap .jroute{fill:none;stroke:var(--cyan);stroke-linecap:round;animation:march 1s linear infinite}
.jmap .jst text{fill:var(--dark);font-family:var(--disp);font-weight:700;text-anchor:middle}
.jmap .jring{fill:none;stroke:var(--mc);stroke-width:.6;transform-box:fill-box;transform-origin:center;animation:radar 2.2s ease-out infinite}
.tsteps{padding:4px 0 8px}
.tstep .dot{width:30px;height:30px;margin-left:-6px;border-width:0;background:var(--glass2);display:grid;place-items:center;box-shadow:none}
.tstep .dot svg{width:17px;height:17px;fill:none;stroke:var(--mc);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.tstep::before{top:34px}
.tstep.now .dot{background:var(--mc);box-shadow:var(--mc-glow)}
.tstep.now .dot svg{stroke:var(--dark)}
.tstep.now h4{color:var(--mc)}
.tplaces{display:grid;gap:8px;margin-top:10px}
.tp{padding:12px;border-radius:16px;background:var(--glass);border:1px solid var(--stroke)}
.tp.pick{border-color:var(--mc);box-shadow:0 0 16px color-mix(in srgb,var(--mc) 25%,transparent)}
.tp.off{opacity:.62}
.tp.off .tph b{text-decoration:line-through}
.tph{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tph b{font-size:16px;display:inline-flex;align-items:center;gap:5px}
.tph .star svg{width:16px;height:16px;fill:var(--yellow);stroke:none}
.tpn{font-size:15px;margin-top:4px}
.tpa{font-size:14px;color:var(--ink2);margin-top:3px}
.tpa small{font-size:13px}
.tpb{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tpb .lbtn{height:42px;font-size:14px;padding:0 13px}
#v-trip .step p b{color:var(--yellow)}
@media (min-width:900px){ #v-trip{max-width:760px;margin:0 auto} }

.tripban{grid-template-columns:64px 1fr;padding:10px 12px}
.tripban .art{width:64px;height:64px}
.tripban h3{font-size:17px}
.tripban .wxs span{padding:2px 7px;font-size:13px}
.tripban p{font-size:14px}
@media (max-width:430px){ .brand b{display:none} }

/* ---------- 켜면 나오는 로딩 대시보드 ---------- */
.splash{position:fixed;inset:0;z-index:200;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(120% 90% at 50% 20%,#2A1B6B 0%,#120A33 55%,#08051A 100%)}
.splash.gone{pointer-events:none}
.splash::before{content:"";position:absolute;inset:-50%;
  background-image:linear-gradient(rgba(160,140,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(160,140,255,.12) 1px,transparent 1px);
  background-size:44px 44px;transform:perspective(500px) rotateX(58deg) translateY(10%);animation:gridrun 3s linear infinite;
  -webkit-mask-image:linear-gradient(transparent 40%,#000 70%);mask-image:linear-gradient(transparent 40%,#000 70%)}
@keyframes gridrun{to{background-position:0 44px}}
.sp-glow{position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(255,95,210,.35),rgba(61,242,255,.12) 45%,transparent 70%);filter:blur(10px);animation:sun 3s ease-in-out infinite}
.sp-in{position:relative;width:min(360px,88vw);text-align:center}
.sp-logo{width:84px;height:84px;margin:0 auto 18px;perspective:400px}
.dice{position:relative;width:64px;height:64px;margin:10px auto;transform-style:preserve-3d;animation:roll 2.4s cubic-bezier(.5,0,.3,1) infinite}
.dice i{position:absolute;inset:0;border-radius:14px;background:linear-gradient(135deg,#fff,#E9E2FF);box-shadow:inset 0 0 0 2px rgba(255,255,255,.8),inset 0 -6px 12px rgba(120,90,255,.25);
  display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:9px;gap:2px}
.dice b{width:11px;height:11px;border-radius:50%;background:#FF4F8B;place-self:center;box-shadow:0 0 6px rgba(255,79,139,.6)}
.dice .f1{transform:translateZ(32px)} .dice .f6{transform:rotateY(180deg) translateZ(32px)}
.dice .f2{transform:rotateY(90deg) translateZ(32px)} .dice .f5{transform:rotateY(-90deg) translateZ(32px)}
.dice .f3{transform:rotateX(90deg) translateZ(32px)} .dice .f4{transform:rotateX(-90deg) translateZ(32px)}
.dice .f1 b{grid-area:2/2}
.dice .f2 b:nth-child(1){grid-area:1/1}.dice .f2 b:nth-child(2){grid-area:3/3}
.dice .f3 b:nth-child(1){grid-area:1/1}.dice .f3 b:nth-child(2){grid-area:2/2}.dice .f3 b:nth-child(3){grid-area:3/3}
.dice .f4 b:nth-child(1){grid-area:1/1}.dice .f4 b:nth-child(2){grid-area:1/3}.dice .f4 b:nth-child(3){grid-area:3/1}.dice .f4 b:nth-child(4){grid-area:3/3}
.dice .f5 b:nth-child(1){grid-area:1/1}.dice .f5 b:nth-child(2){grid-area:1/3}.dice .f5 b:nth-child(3){grid-area:2/2}.dice .f5 b:nth-child(4){grid-area:3/1}.dice .f5 b:nth-child(5){grid-area:3/3}
.dice .f6 b:nth-child(1){grid-area:1/1}.dice .f6 b:nth-child(2){grid-area:2/1}.dice .f6 b:nth-child(3){grid-area:3/1}.dice .f6 b:nth-child(4){grid-area:1/3}.dice .f6 b:nth-child(5){grid-area:2/3}.dice .f6 b:nth-child(6){grid-area:3/3}
@keyframes roll{0%{transform:rotateX(-20deg) rotateY(20deg)}50%{transform:rotateX(250deg) rotateY(200deg) translateY(-8px)}100%{transform:rotateX(340deg) rotateY(380deg)}}
.sp-name{display:flex;justify-content:center;gap:2px;font-size:52px;font-weight:900;letter-spacing:-.04em;line-height:1.1}
.sp-name span{display:inline-block;background:linear-gradient(180deg,#fff 20%,var(--sc,#FF5FD2));-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 14px var(--sc,#FF5FD2))}
.sp-name span:nth-child(1){--sc:#FF5FD2}.sp-name span:nth-child(2){--sc:#FFE45C}.sp-name span:nth-child(3){--sc:#3DF2FF}.sp-name span:nth-child(4){--sc:#C6FF4D}
.sp-sub{margin-top:6px;font-size:16px;font-weight:700;color:var(--ink2);letter-spacing:.02em}
.sp-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:22px 0 18px}
.sp-t{padding:12px 12px 10px;border-radius:16px;text-align:left;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(8px)}
.sp-t span{display:block;font-size:14px;font-weight:700;color:var(--ink2)}
.sp-t b{display:block;font-size:24px;line-height:1.2;margin-top:2px;color:#fff;text-shadow:0 0 12px rgba(61,242,255,.45)}
.sp-bar{height:8px;border-radius:9px;background:rgba(255,255,255,.12);overflow:hidden}
.sp-bar i{display:block;height:100%;width:0;border-radius:9px;background:linear-gradient(90deg,#FF5FD2,#FFE45C,#3DF2FF);box-shadow:0 0 12px rgba(61,242,255,.7)}
.sp-step{margin-top:10px;font-size:15px;font-weight:700;color:#fff;min-height:24px}
.sp-skip{margin-top:14px;font-size:14px;color:var(--ink2);opacity:.8}
@media (prefers-reduced-motion:reduce){ .splash{display:none} }

/* ---------- 여권 도장 · 정복 · 후기 ---------- */
.hint2{font-size:14px;color:var(--ink2);margin:4px 0 14px}
.passport{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:14px 10px;justify-items:center}
.pstamp{position:relative;width:104px;height:104px;border-radius:50%;display:grid;place-items:center;text-align:center;padding:12px;
  border:3px solid var(--sc);color:var(--sc);background:color-mix(in srgb,var(--sc) 10%,transparent);box-shadow:0 0 16px color-mix(in srgb,var(--sc) 30%,transparent),inset 0 0 0 5px color-mix(in srgb,var(--sc) 8%,transparent)}
.pstamp::before{content:"";position:absolute;inset:6px;border-radius:50%;border:1.5px dashed color-mix(in srgb,var(--sc) 70%,transparent)}
.pstamp b{display:block;font-size:15px;font-weight:900;line-height:1.2;color:#fff;text-shadow:0 0 8px var(--sc)}
.pstamp small{display:block;font-size:13px;font-weight:700;margin-top:2px;font-family:var(--disp)}
.pstamp.big{width:128px;height:128px;border-width:4px}
.pstamp.big b{font-size:17px}
.pstamp.empty{border-style:dashed;border-color:rgba(255,255,255,.2);background:transparent;box-shadow:none;color:var(--ink2)}
.pstamp.empty::before{display:none}
.pstamp.empty b{color:var(--ink2);text-shadow:none;font-size:14px;font-weight:700}
.conquer svg{width:100%;height:auto;max-height:360px}
.conquer .cq{fill:#231A5A;stroke:#120B30;stroke-width:8;stroke-linejoin:round}
.conquer .cq.on{fill:var(--cq);filter:drop-shadow(0 0 10px var(--cq))}
.conquer text{font-size:34px;font-weight:800;fill:rgba(207,198,238,.8);text-anchor:middle;dominant-baseline:central}
.conquer .on + text{fill:var(--dark)}
.chips.small{margin-bottom:12px}
.chips.small button{height:38px;padding:0 13px;font-size:14px;border-radius:12px}
.rvi{display:grid;gap:4px;padding:12px 14px;border-radius:16px;background:var(--glass2);text-align:left;width:100%}
.rvi .rh{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rvi .rh b{font-size:16px}
.rvi p{font-size:15px}
.rvi span.sub{font-size:14px;color:var(--ink2)}
.rv-good{background:var(--lime)!important;color:var(--dark)!important}
.rv-soso{background:var(--yellow)!important;color:var(--dark)!important}
.rv-bad{background:#FF6B8B!important;color:var(--dark)!important}
.rv-again{background:#FF4F8B!important;color:#fff!important}
.chal summary{display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer;list-style:none}
.chal summary::-webkit-details-marker{display:none}
.chal summary b{font-size:18px}
.chal summary small{display:block;font-size:14px;color:var(--ink2);font-weight:600}
.chal[open] summary{margin-bottom:6px}
.synccard{display:flex;flex-direction:column;gap:10px}
.synccard .sr{display:flex;align-items:center;gap:10px}
.synccard .sr b{font-size:17px}
.synccard .sr span{font-size:14px;color:var(--ink2)}
.synccard .dot{width:10px;height:10px;border-radius:50%;background:var(--lime);box-shadow:0 0 8px var(--lime);flex:0 0 auto}
.synccard .dot.off{background:#FF6B8B;box-shadow:0 0 8px #FF6B8B}
.synccard .passrow{display:flex;gap:8px}
.synccard .passrow .field{flex:1;height:46px}
.synccard .passrow button{height:46px;padding:0 16px;border-radius:14px;background:var(--cyan);color:var(--dark);font-weight:800}
/* 여행 화면 후기 */
.rv{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.14)}
.rv button{height:38px;padding:0 12px;border-radius:12px;font-size:14px;font-weight:800;background:var(--glass2);border:1px solid var(--stroke);transition:transform .12s}
.rv button:active{transform:scale(.94)}
.rv .rvm{flex:1 1 100%;height:42px;font-size:15px}
.rv .rvq{flex:1 1 100%;font-size:14px;font-weight:700;color:var(--cyan)}

/* ---------- 이번 달 코스 줄 ---------- */
.courserow{margin-top:18px}
.rowh{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:800;margin:0 2px 10px}
.rowh svg{width:20px;height:20px;fill:none;stroke:var(--mc);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rowh small{font-size:14px;color:var(--ink2);font-weight:600}
.crow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ccard2{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:14px;border-radius:20px;transition:transform .15s,border-color .2s}
.ccard2:active{transform:scale(.97)}
.ccard2:hover{border-color:var(--mc)}
.ccard2 b{font-size:16px;line-height:1.35}
.ccard2 > span:last-child{font-size:14px;color:var(--ink2)}
@media (max-width:600px){ .crow{grid-template-columns:1fr} .ccard2{flex-direction:row;flex-wrap:wrap;align-items:center} .ccard2 > span:last-child{flex:1 1 100%} }

/* ---------- 다음 일정 ---------- */
.nextc{padding:16px 18px;border-radius:22px;margin-bottom:12px;border-color:rgba(198,255,77,.45);box-shadow:0 0 24px rgba(198,255,77,.15)}
.nextc .k{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:800;color:var(--lime)}
.nextc .k i{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 8px var(--lime);animation:pulse 1.4s infinite}
.nextc h3{font-size:19px;margin:4px 0 2px}
.nextc p{font-size:15px;color:var(--ink2)}
.nextc p b.big{font-size:20px;color:var(--lime)}
.rainc{border-color:rgba(111,211,255,.45)}
.rainc .ch svg{stroke:#6FD3FF}

/* ---------- 예약 · 사진 ---------- */
.lbtn.rsv{border-color:rgba(255,61,113,.5)}
.lbtn.rsv svg{stroke:#FF7FA3}
.lbtn.rsv.on{background:#FF3D71;color:#fff;border-color:transparent;box-shadow:0 0 14px rgba(255,61,113,.5)}
.lbtn.rsv.on svg{stroke:#fff}
.tpimg{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:12px;margin-bottom:10px;display:block}

/* ---------- 여행 지갑 ---------- */
.wsum{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wsum > div{padding:12px 14px;border-radius:16px;background:var(--glass2)}
.wsum span{display:block;font-size:14px;color:var(--ink2);font-weight:600}
.wsum b{display:block;font-size:20px;font-weight:700}
.wsum .wn{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}
.wsum .wn div{display:flex;align-items:center;gap:12px}
.wsum .wn button{width:40px;height:40px;border-radius:12px;background:var(--glass2);border:1px solid var(--stroke);font-size:20px;font-weight:800}
.wlist{list-style:none;display:grid;gap:4px;margin-top:10px}
.wlist li{display:flex;align-items:center;gap:10px;padding:8px 6px 8px 12px;border-radius:12px;background:var(--glass)}
.wlist li span{flex:1;font-size:15px}
.wlist li b{font-size:16px}
.wlist li button{width:36px;height:36px;display:grid;place-items:center}
.wlist li button svg{width:14px;height:14px;fill:none;stroke:var(--ink2);stroke-width:2.4;stroke-linecap:round}

/* ---------- 여권 도장 안 그림 ---------- */
.pstamp > div{display:flex;flex-direction:column;align-items:center;position:relative;z-index:1}
.pimg{width:44px;height:44px;border-radius:50%;overflow:hidden;margin-bottom:4px;box-shadow:0 0 0 2px var(--sc)}
.pimg svg,.pimg img{width:100%;height:100%;object-fit:cover;display:block}
.pstamp.big .pimg{width:54px;height:54px}
.pstamp{width:112px;height:112px}
.pstamp b{font-size:14px}

/* ---------- 짐 챙기기 · 여행 만들기 ---------- */
.packc summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none}
.packc summary::-webkit-details-marker{display:none}
.packc summary b{font-size:18px}
.packc .ch{display:flex;align-items:center;gap:8px}
.packc[open] summary{margin-bottom:4px}
.mkform{margin-top:14px;padding:16px;border-radius:20px;background:rgba(61,242,255,.08);border:1px solid rgba(61,242,255,.35);display:grid;gap:10px}
.mkform > b{font-size:17px}
.mkrow{display:grid;grid-template-columns:auto 1fr;gap:8px}
.mkrow .field{height:48px;color-scheme:dark}
@media (max-width:420px){ .mkrow{grid-template-columns:1fr} }

/* ---------- 새 여행 만들기 ---------- */
.newtrip{display:grid;gap:10px}
.newtrip .ch{margin-bottom:2px}
.nt{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px;border-radius:18px;background:var(--glass2);border:1px solid var(--stroke);transition:transform .12s,border-color .2s}
.nt:active{transform:scale(.98)}
.nt:hover{border-color:var(--cyan)}
.nt .ci{width:44px;height:44px;border-radius:14px;flex:0 0 auto;display:grid;place-items:center;background:linear-gradient(135deg,var(--cyan),var(--pink))}
.nt .ci svg{width:22px;height:22px;fill:none;stroke:var(--dark);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nt b{display:block;font-size:16px}
.nt span span{display:block;font-size:14px;color:var(--ink2);margin-top:2px}

/* 짐 챙기기 — 소제목 · 챙긴 것 접기 · 아래 접기 바 */
.packc .pg{font-size:14px;font-weight:800;color:var(--mc);margin:12px 4px 4px;letter-spacing:.02em}
.packc .pdone{font-size:16px;font-weight:700;color:var(--lime);padding:10px 4px}
.pgot{margin-top:12px;border-radius:14px;background:var(--glass);padding:4px 6px}
.pgot summary{display:flex;justify-content:space-between;align-items:center;height:44px;padding:0 8px;cursor:pointer;list-style:none;font-size:15px;font-weight:700;color:var(--ink2)}
.pgot summary::-webkit-details-marker{display:none}
.pgot summary span{font-size:14px;color:var(--cyan)}
.pgot[open] summary span{font-size:0}
.pgot[open] summary span::after{content:"접기";font-size:14px}
.pfold{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:46px;margin-top:12px;border-radius:14px;background:var(--glass2);border:1px solid var(--stroke);font-size:15px;font-weight:700;color:var(--ink2)}
.pfold svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;transform:rotate(180deg)}
.packc .pack li{padding:3px 2px 3px 6px}
.packc .pack .pt{font-size:16px;line-height:1.35}
.packc .pack .pt small{display:inline;margin-left:8px;font-size:14px}
.packc .pack .ck{width:28px;height:28px}

/* 취향 */
.st.taste{background:linear-gradient(90deg,#FF5FD2,#FF9A4D);color:var(--dark)}
.st.taste i{background:var(--dark);animation:pulse 1.4s infinite}
.tastewhy{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:15px!important;font-weight:700;color:#FF9EC9}
.tastewhy svg{width:16px;height:16px;fill:#FF5FD2;stroke:none;flex:0 0 auto}
.tchips{display:flex;flex-wrap:wrap;gap:6px}
.memo-back h4{color:#FF9EC9!important}
