:root{
  --bg:#0b0d10; --bg2:#12161b; --card:#171c22; --line:#2a323c;
  --text:#eef1f4; --muted:#b4bcc6; --accent:#ff8c1a; --accent-ink:#1a0d00;
  --g1:#2ECC71; --g2:#F1C40F; --g3:#FF8C1A; --g4:#E74C3C; --g5:#B0102A;
  --grade:var(--g3); --radius:14px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);
  font:16px/1.6 "Pretendard","Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",system-ui,sans-serif;
  padding-bottom:calc(84px + env(safe-area-inset-bottom));overflow-x:hidden}
body.night{background:#05070d radial-gradient(1200px 600px at 70% -10%,#13204a 0,transparent 60%)}
img{max-width:100%;height:auto;display:block}
a{color:#ffc27a}
h1{font-size:1.5rem;line-height:1.3;margin:.2em 0 .6em}
h2{font-size:1.15rem;margin:.1em 0 .4em}
h3{font-size:1.05rem;margin:0 0 .2em}
p{margin:.3em 0 .6em}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;color:#000;padding:8px;z-index:99}
.sr{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
:focus-visible{outline:3px solid #ffd27a;outline-offset:2px}

.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;
  padding:10px 16px;background:rgba(11,13,16,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(6px)}
.seal{width:36px;height:36px;border-radius:50%}
.brand{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.brand strong{font-size:1.05rem;white-space:nowrap}
.free-tag{font-size:.9rem;color:var(--g1);font-weight:700}
.home-btn{flex:none;font-size:.9rem;font-weight:700;text-decoration:none;color:var(--accent-ink);
  background:var(--accent);padding:8px 12px;border-radius:999px;white-space:nowrap}

main{max-width:760px;margin:0 auto;padding:16px}
main:focus{outline:none}
.screen{animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.screen{animation:none}}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:0 0 14px}
.muted{color:var(--muted)}
.small{font-size:.9rem}
.eyebrow{font-size:.9rem;letter-spacing:.04em;color:var(--muted);margin:0 0 .2em}
.tag{display:inline-block;font-size:.9rem;padding:1px 8px;border-radius:999px;border:1px solid #6b7682;color:var(--muted);vertical-align:middle}
.note{background:var(--bg2);border-left:4px solid var(--accent);padding:10px 12px;border-radius:8px}
.free-line{color:var(--g1);font-weight:700}
.free-line.small{margin-top:-4px}

.btn{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:10px 18px;
  border-radius:12px;border:1px solid var(--line);background:#222932;color:var(--text);
  font:inherit;font-weight:700;cursor:pointer;text-decoration:none;margin:6px 0;width:100%}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.ghost{background:transparent}
.btn.share{background:#1c2a20;border-color:#2c6b45;color:#c9f5d9}
.btn.danger{background:#3a1216;border-color:#7a2730;color:#ffd5d9}
.btn:disabled{opacity:.45;cursor:not-allowed}
label{display:block;font-weight:700;margin:12px 0 4px}
input,select{width:100%;min-height:48px;font:inherit;color:var(--text);background:#0f1318;border:1px solid #3a4450;border-radius:10px;padding:8px 12px}

/* intro */
.hero{position:relative;border-radius:var(--radius);overflow:hidden;margin-bottom:14px}
.hero img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%}
.hero-text{position:absolute;inset:auto 0 0 0;padding:60px 16px 16px;background:linear-gradient(transparent,rgba(5,6,8,.92) 55%)}
.hero-text h1{font-size:1.8rem;margin:0}
.prologue{padding-left:1.3em}
.prologue li{margin-bottom:.7em}

/* home */
.hello{font-size:1.15rem;font-weight:700;margin:0}
.bongi-card{display:grid;grid-template-columns:120px 1fr;gap:14px;border-color:var(--grade);
  box-shadow:0 0 0 1px var(--grade) inset,0 0 28px -12px var(--grade)}
.bongi-card img{width:120px;height:250px;object-fit:cover;object-position:50% 8%;border-radius:10px}
.bongi-card h2{color:var(--grade)}
.preview{margin-top:8px}
.preview-label{font-size:.9rem;font-weight:700;margin-bottom:6px}
.grade-btns{display:flex;flex-wrap:wrap;gap:6px}
.grade-btns button{min-width:44px;min-height:44px;border-radius:10px;border:2px solid transparent;font:inherit;font-weight:800;cursor:pointer;color:#111}
.grade-btns button[aria-checked="true"]{border-color:#fff;box-shadow:0 0 0 2px #000 inset}
.rank-card{display:grid;grid-template-columns:110px 1fr;gap:14px}
.rank-card img{width:110px;height:180px;object-fit:cover;object-position:50% 15%;border-radius:10px}
.bar{height:12px;background:#0f1318;border-radius:999px;overflow:hidden;border:1px solid var(--line);margin:8px 0 4px}
.bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,#c46a12,var(--accent))}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stat .big{font-size:2rem;font-weight:800;margin:0}
.link-list{display:flex;flex-direction:column;gap:8px}
.lnk{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:10px 14px;border-radius:10px;
  background:#0f1318;border:1px solid var(--line);color:var(--text);text-decoration:none;font:inherit;text-align:left;cursor:pointer}
.lnk::after{content:"›";color:var(--accent);font-size:1.3rem}
.lnk small{display:block;color:var(--muted);font-size:.9rem}

/* map */
.banner{background:#2a1a08;border:1px solid #7a4a12;color:#ffe0bd;border-radius:10px;padding:10px 12px}
.map-wrap{position:relative;background:#0e1217;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;touch-action:none}
#map{display:block;width:100%;height:auto;aspect-ratio:5/4;cursor:grab}
#map path{stroke:#0b0d10;stroke-width:.6;vector-effect:non-scaling-stroke;cursor:pointer}
#map path.c0{fill:#26303b}#map path.c1{fill:#7a4a12}#map path.c2{fill:#c46a12}#map path.c3{fill:#ffae4d}
#map path.home{stroke:#2ECC71;stroke-width:2.2}
#map path.sel{stroke:#fff;stroke-width:2}
.map-ctrl{position:absolute;right:8px;top:8px;display:flex;flex-direction:column;gap:6px}
.map-ctrl button{width:44px;height:44px;border-radius:10px;border:1px solid var(--line);background:rgba(23,28,34,.92);color:var(--text);font-size:1.2rem;cursor:pointer}
.map-info{min-height:3.2em;font-weight:700}
.legend{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:.9rem;color:var(--muted);margin-bottom:8px}
.sw{display:inline-block;width:16px;height:16px;border-radius:4px}
.sw0{background:#26303b}.sw1{background:#7a4a12}.sw2{background:#c46a12}.sw3{background:#ffae4d}.swh{border:2px solid #2ECC71}

/* mission */
.steps{list-style:none;padding:0;margin:0 0 10px}
.steps li{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:12px}
.out{font-weight:700;min-height:1.4em}
.out.ok{color:#7ff0ab}.out.bad{color:#ffb3ac}
#vid-prev{width:100%;max-height:240px;background:#000;border-radius:10px}
#praise{width:140px;margin:8px auto 0;border-radius:10px}
.night-card{background:linear-gradient(180deg,#0d1530,#070a14);border-color:#26335e}
.dipper{width:200px;height:110px;display:block;margin:0 auto 6px}
.safety ul{padding-left:1.2em;margin:0}.safety li{margin-bottom:.4em}
.log{list-style:none;padding:0;margin:0}
.log li{padding:8px 0;border-bottom:1px solid var(--line)}
.log li:last-child{border:0}

/* ranks */
.rank-list{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rank-list li{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.rank-list li.now{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}
.rank-list img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 12%}
.rank-list .rb{padding:10px 12px}
.rank-list h3{margin:0}
.rank-list p{margin:.2em 0;font-size:.9rem;color:var(--muted)}
@media(min-width:700px){.rank-list{grid-template-columns:repeat(5,1fr)}.rank-list p{font-size:.9rem}}

.nocash{text-align:center;font-weight:800;font-size:1.15rem;padding:14px;border:2px dashed #6b7682;border-radius:var(--radius)}

/* bongi */
.grade-table{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:18px}
.grade-table figure{margin:0;background:var(--card);border-radius:10px;overflow:hidden;border-top:5px solid}
.grade-table img{width:100%;aspect-ratio:2/5;object-fit:cover}
.grade-table figcaption{padding:6px;font-size:.9rem;text-align:center;line-height:1.35}
.poses{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.poses figure{margin:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.poses figure.key{border-color:var(--accent)}
.poses img{width:100%;aspect-ratio:3/4;object-fit:cover;background:#c9ccd0}
.poses figcaption{padding:8px 10px}
.poses b{display:block}
@media(min-width:700px){.poses{grid-template-columns:repeat(4,1fr)}}

/* nav, footer */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);
  background:rgba(11,13,16,.97);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.tabs button{min-height:60px;background:none;border:0;color:var(--muted);font:inherit;font-size:.9rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer}
.tabs button span{font-size:1.1rem}
.tabs button[aria-current="page"]{color:var(--accent);font-weight:800}
.foot{max-width:760px;margin:10px auto 0;padding:16px;border-top:1px solid var(--line);text-align:center;color:var(--muted);font-size:.9rem}
.motto{letter-spacing:.12em;color:#ffc27a;font-weight:700}
#toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#eef1f4;color:#0b0d10;padding:10px 16px;border-radius:10px;font-weight:700;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw;z-index:50}
#toast.on{opacity:1}

/* 공유 창 */
#share-box{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:flex-end;justify-content:center;z-index:60;padding:16px}
#share-box[hidden]{display:none}
#share-box .sb-card{background:#15181d;color:#eef1f4;border-radius:14px;padding:18px;width:100%;max-width:440px;margin-bottom:70px}
#share-box .sb-h{display:block;font-size:1.05rem;margin-bottom:6px}
#share-box .sb-p{margin:0 0 10px;color:#b9c0c8;font-size:.92rem}
#share-box .sb-t{width:100%;box-sizing:border-box;background:#0b0d10;color:#eef1f4;border:1px solid #2a2f37;border-radius:8px;padding:10px;font:inherit;resize:none}
#share-box .sb-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
#share-box .sb-row .btn{flex:1 1 45%;text-align:center;text-decoration:none}

/* 지역 고르기 (2026-10-23) */
.region-tabs{display:flex;gap:8px;margin:6px 0 10px}.region-tabs select{flex:1;min-height:44px;font:inherit;font-size:1.05rem;font-weight:700;background:#ffa028;color:#0b0d10;border:0;border-radius:12px;padding:0 14px}.region-tabs .btn{flex:1;min-height:42px}.region-tabs .btn.on{background:#ffa028;color:#0b0d10;border-color:#ffa028;font-weight:800}

/* 인장구 전달식 (기안 1024-12) */
.orb-pic{position:relative;border-radius:12px;overflow:hidden}
.orb-pic>img:first-child{width:100%}
.orb-seal{position:absolute;aspect-ratio:1;border-radius:50%;pointer-events:none}
.orb-pic.me{max-width:240px;margin:4px auto 6px}
.cer{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;
  background:rgba(3,4,8,.86);backdrop-filter:blur(4px);animation:fade .35s ease}
.cer[hidden]{display:none}
.cer-card{width:100%;max-width:560px;max-height:100%;overflow:auto;background:var(--card);border:1px solid #6b4a1e;
  border-radius:var(--radius);padding:16px;box-shadow:0 0 40px rgba(255,140,26,.25)}
.cer-card h2{margin:.6em 0 .1em;font-size:1.4rem;color:#ffc27a}
.cer-gear{color:var(--muted);margin:0 0 .6em}
.cer-say{margin:0 0 14px;padding:12px 14px;border-left:3px solid var(--accent);background:#1d1710;border-radius:8px;line-height:1.7}
.cer-say b{display:block;color:var(--accent);font-size:.9rem}
body.cer-on{overflow:hidden}
.btn.small{padding:6px 12px;font-size:.9rem;margin-top:6px}
p.small,.small{font-size:.9rem}
@media (prefers-reduced-motion:reduce){.orb-seal{display:none}.cer{animation:none}}
