:root{--paper:#f3ead7;--paper2:#e6d9bd;--ink:#221d17;--seal:#c23a2b;--soft:rgba(243,234,215,.86);--line:#b9a98a}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html,body{position:fixed;inset:0;width:100%;height:100%;touch-action:none;overscroll-behavior:none;-webkit-text-size-adjust:100%;background:#0b0d14;color:var(--paper);font-family:'Pretendard Variable',system-ui,sans-serif;overflow:hidden;-webkit-user-select:none;user-select:none}
canvas{display:block}
body.pre #visitCard,body.pre #scroll,body.pre #seal2,body.pre .ink-btn,body.pre #stele,body.pre #hand{display:none}
/* 족자 */
#scroll{position:fixed;left:18px;top:18px;width:58px;padding:16px 0 12px;background:linear-gradient(180deg,#f6eedc,#e9dcc0);color:var(--ink);box-shadow:0 10px 26px rgba(0,0,0,.5);display:flex;flex-direction:column;align-items:center;gap:12px;z-index:5}
#scroll::before,#scroll::after{content:'';position:absolute;left:-7px;right:-7px;height:9px;background:linear-gradient(#6b4527,#3e2715);border-radius:5px}
#scroll::before{top:-5px}#scroll::after{bottom:-5px}
.v{writing-mode:vertical-rl;font-family:'Gowun Batang',serif;font-size:36px;line-height:1;letter-spacing:.04em}
.seal{background:var(--seal);color:#fdeee6;border-radius:3px;display:flex;flex-direction:column;align-items:center;font-weight:800;line-height:1.08;padding:6px 6px 5px;box-shadow:inset 0 0 0 2px rgba(255,230,220,.4)}
.seal span{font-size:10px;letter-spacing:.1em}.seal b{font-size:15px;white-space:nowrap}
#seal2{position:fixed;right:18px;top:18px;transform:rotate(4deg);z-index:5;box-shadow:inset 0 0 0 2px rgba(255,230,220,.4),0 6px 18px rgba(0,0,0,.45)}
.ink-btn{position:fixed;right:16px;z-index:5;width:50px;height:50px;border-radius:50%;border:none;background:var(--soft);color:var(--ink);font-family:'Pretendard Variable',system-ui,sans-serif;font-weight:800;font-size:12px;box-shadow:0 5px 16px rgba(0,0,0,.4);cursor:pointer}
#mute{top:84px}#btnShot{top:142px}
/* 비석 */
#stele{position:fixed;left:18px;bottom:calc(22px + env(safe-area-inset-bottom));padding:12px 16px 13px;min-width:118px;background:linear-gradient(160deg,#9a948a,#6c675f 70%);color:#efe9dc;border-radius:14px 14px 3px 3px;text-shadow:0 1px 0 rgba(0,0,0,.45),0 -1px 0 rgba(255,255,255,.12);box-shadow:0 10px 26px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.18);z-index:5;text-align:center}
#stele .k{font-size:11px;letter-spacing:.12em;opacity:.85}
#stele .n{font-size:26px;font-weight:800;margin:2px 0}
#stele .bar{height:4px;margin-top:7px;border-radius:2px;background:rgba(20,16,12,.35);overflow:hidden}#stele .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#e9c27a,#ffe2a0);transition:width .6s}
/* 손에 쥔 돌 */
#hand{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:6}
.stone{width:104px;height:70px;border-radius:48% 52% 44% 56%/60% 56% 44% 40%;background:radial-gradient(ellipse at 34% 28%,#eeeae1,#bbb4a8 52%,#7a7369);box-shadow:0 12px 28px rgba(0,0,0,.6),inset -7px -9px 16px rgba(0,0,0,.28);touch-action:none;cursor:grab;display:grid;place-items:center;transition:transform .25s,box-shadow .3s}
.stone span{font-family:'Gowun Batang',serif;font-size:22px;color:#2a241d;max-width:88px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.stone.dragging{transition:none;cursor:grabbing}
.stone.tied{box-shadow:0 0 30px rgba(255,190,110,.6),0 12px 28px rgba(0,0,0,.6),inset -7px -9px 16px rgba(0,0,0,.28);animation:bob 1.6s ease-in-out infinite}
.stone.tied::after{content:'';position:absolute;width:2px;height:22px;background:var(--seal);top:-16px;left:50%;transform:rotate(12deg)}
@keyframes bob{50%{translate:0 -5px}}
.stone.launch{transition:transform .5s cubic-bezier(.25,.6,.35,1),opacity .5s;transform:translateY(-260px) scale(.25)!important;opacity:0;animation:none}
#hint{font-size:13px;color:var(--soft);text-shadow:0 1px 8px rgba(0,0,0,.8);letter-spacing:.02em}
/* 쪽지 */
.modal{position:fixed;inset:0;display:grid;place-items:center;background:rgba(10,8,6,.55);z-index:10;padding:16px}
.slip{width:min(100%,360px);background:repeating-linear-gradient(180deg,#f7efdc 0 35px,#e2d4b6 35px 36px);border-radius:3px;padding:20px 22px 18px;color:var(--ink);box-shadow:0 22px 50px rgba(0,0,0,.55);transform:rotate(-1.4deg)}
.slip-h{font-family:'Gowun Batang',serif;font-size:32px;color:var(--seal);line-height:1;margin-bottom:8px}
.slip textarea{width:100%;border:none;background:transparent;font-family:'Gowun Batang',serif;font-size:32px;line-height:36px;color:var(--ink);resize:none;outline:none}
.slip input{width:100%;border:none;border-bottom:1px dashed var(--line);background:transparent;font-family:'Gowun Batang',serif;font-size:24px;color:var(--ink);padding:4px 0;outline:none;margin:4px 0 16px}
.row{display:flex;gap:8px}
.row button,.row a{flex:1;text-align:center;text-decoration:none;font-family:'Pretendard Variable',system-ui,sans-serif;font-weight:800;font-size:15px;padding:12px;border-radius:2px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.row .go{background:var(--seal);border-color:var(--seal);color:#fff6ef}
.card-wrap{width:min(100%,380px)}
.card-wrap .row button,.card-wrap .row a{color:var(--paper);border-color:rgba(243,234,215,.4)}
.card-wrap .row button,.card-wrap .row a{background:#2a231b}.card-wrap .row .go{color:#fff6ef;background:var(--seal)}
#cardImg{width:100%;display:block;margin-bottom:12px;box-shadow:0 20px 50px rgba(0,0,0,.6)}
/* 소원 꼬리표 */
.label{position:fixed;left:0;top:0;transform:translate(-50%,-100%);pointer-events:none;padding:3px 10px 5px;background:#f4ecda;color:var(--ink);font-family:'Gowun Batang',serif;font-size:20px;white-space:nowrap;border-radius:2px;box-shadow:0 4px 12px rgba(0,0,0,.4);transition:opacity .5s;z-index:3}
.label::before{content:'';position:absolute;left:50%;top:100%;width:1px;height:12px;background:var(--seal)}
.label.mine{background:#fff3d6;outline:1px solid var(--seal)}
/* 입산 */
#gate{position:fixed;inset:0;display:grid;place-items:center;z-index:20;background:radial-gradient(ellipse at 50% 42%,rgba(14,18,30,.05),rgba(6,7,12,.62))}
.gate-in{display:flex;flex-direction:column;align-items:center;gap:18px}
.gate-in .v{font-size:84px;color:var(--paper);text-shadow:0 6px 30px rgba(0,0,0,.6)}
.gate-in .seal span{font-size:12px}.gate-in .seal b{font-size:20px}
#enter{font-family:'Pretendard Variable',system-ui,sans-serif;font-weight:800;font-size:17px;letter-spacing:.2em;padding:13px 34px 13px 40px;border:none;border-radius:2px;background:var(--paper);color:var(--ink);cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.5)}
#enter:disabled{opacity:.5}
#sign{height:14px;opacity:.7}
#look,#story,#roomList,#mine,#wishes,#care,#idea{z-index:30}
.tb-r{display:flex;gap:6px;flex:none}
#rankBox{text-align:left;margin:0 0 12px;max-height:190px;overflow:auto}.rk{display:flex;gap:8px;font-size:14px;padding:5px 2px;border-bottom:1px solid var(--line)}.rk i{width:20px;font-style:normal;font-weight:700;color:var(--mute)}.rk span{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.rk b{font-variant-numeric:tabular-nums}
#rankName{width:100%;min-height:42px;border:1px solid var(--line);border-radius:11px;padding:0 12px;font:400 16px 'Pretendard Variable',sans-serif;margin-bottom:10px;background:#fff}
.sub-r{display:flex;gap:6px}
#wishList{overflow:auto;display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.w-row{background:#fff;border-radius:14px;padding:12px 14px}
.w-row b{display:block;font:700 17px/1.35 'Gowun Batang',serif;word-break:keep-all}
.w-bar{display:flex;align-items:center;gap:6px;margin-top:8px}
.w-bar small{flex:1;font-size:11.5px;color:var(--mute)}
.w-bar button{font:600 12px 'Pretendard Variable',sans-serif;min-height:34px;padding:0 11px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.w-bar .cheer{background:var(--ink);border-color:var(--ink);color:#fff}.w-bar button:disabled{opacity:.5}
#btnMine{top:auto;bottom:calc(200px + env(safe-area-inset-bottom));line-height:1.1}
body.visiting #btnMine{display:none}
.mine-in{max-height:calc(100vh - 32px);display:flex;flex-direction:column}
#examBar{position:fixed;z-index:6;left:12px;top:calc(120px + env(safe-area-inset-top));display:flex;align-items:center;gap:9px;padding:5px 8px 5px 12px;background:#f7efdd;color:#2e241a;border:1.5px solid #b8342a;border-radius:12px;box-shadow:0 4px 14px rgba(120,40,30,.25);white-space:nowrap;pointer-events:none;animation:exPop 3.2s ease-in-out infinite}
#examBar .ex-d{font:700 24px/1 'Gowun Batang',serif;color:#b8342a;letter-spacing:-.02em}
#examBar .ex-t{display:flex;flex-direction:column;gap:1px;font:600 11px/1.2 'Pretendard Variable',system-ui,sans-serif}#examBar .ex-t small{font-size:10.5px;color:#7a6a55}#examBar .ex-t em{font-style:normal;font-weight:700;font-size:12.5px}
#examBar .ex-seal{font:700 10px/1.05 'Gowun Batang',serif;font-style:normal;color:#fff;background:#b8342a;border-radius:3px;padding:3px 4px;transform:rotate(-6deg)}
@keyframes exPop{0%,100%{box-shadow:0 4px 14px rgba(120,40,30,.25)}50%{box-shadow:0 4px 20px rgba(184,52,42,.45)}}
@media (prefers-reduced-motion:reduce){#examBar{animation:none}}
#examPick{display:flex;gap:8px;margin-bottom:10px}#examPick button{flex:1;min-height:42px;font:700 14px 'Pretendard Variable',system-ui,sans-serif;background:#fff;border:1px solid var(--line);color:var(--ink);border-radius:10px;cursor:pointer}#examPick button.on{background:var(--ink);color:#fff}
#mineKeep small,#mineRestore small{display:block;font-size:12px;color:#7a6a55;margin-bottom:10px}#mineRestore{flex:none;font-size:13px;color:#7a6a55;margin-bottom:10px}#mineRestore summary{cursor:pointer;padding:6px 0}#mineRestore input{flex:1;min-width:0}
.mine-item{display:flex;align-items:center;gap:6px}.mine-item .mine-row{flex:1;min-width:0}.mine-item button{flex:none;font:700 12px 'Pretendard Variable',system-ui,sans-serif;padding:8px 10px;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--ink);cursor:pointer}.mine-item button:disabled{color:#b0567a;background:transparent;border-color:transparent}
#bloomNote{width:100%;margin-bottom:10px}
#buyBar{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;background:#fff;border:1px solid var(--line);border-radius:12px;font-size:13px;font-weight:600}#buyBar[hidden]{display:none}#buyText{flex:1;min-width:0;word-break:keep-all}#buyGo{flex:none;min-height:38px;padding:0 16px;width:auto}
#ranger{position:fixed;z-index:7;left:10px;right:10px;bottom:calc(150px + env(safe-area-inset-bottom));max-width:380px;display:flex;align-items:flex-end;gap:2px;padding:0;background:transparent;border:0;cursor:pointer;text-align:left;font:600 15px/1.45 'Pretendard Variable',system-ui,sans-serif;color:var(--ink);animation:rangerIn .35s ease-out}#ranger[hidden]{display:none}#ranger img{flex:none;width:76px;height:auto;filter:drop-shadow(0 4px 8px rgba(0,0,0,.35))}#ranger span{background:#fffaf0;border-radius:16px 16px 16px 4px;padding:10px 13px;margin-bottom:26px;box-shadow:0 8px 22px rgba(0,0,0,.28);word-break:keep-all}@keyframes rangerIn{from{opacity:0;transform:translateY(10px)}}body.pre #ranger,body.visiting #ranger{display:none}
#cardImg{display:block;max-width:100%;max-height:calc(100dvh - 104px);margin:0 auto;width:auto;object-fit:contain}
#examPick button{padding:0 6px;word-break:keep-all;white-space:nowrap;font-size:13px}#examPick button:first-child{flex:0 0 32%}
#vcBack{width:100%;margin-top:8px;min-height:44px;font:600 14px 'Pretendard Variable',system-ui,sans-serif;background:transparent;border:0;color:#6b5d4a;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
#wish{word-break:keep-all}
#mineList{overflow:auto;display:flex;flex-direction:column;gap:6px;margin-bottom:10px;min-height:60px}
.mine-row{display:block;text-decoration:none;color:var(--ink);background:radial-gradient(ellipse at 30% 22%,#efe9dc,#cfc6b6 60%,#a59c8d);border-radius:44% 56% 48% 52%/62% 58% 42% 38%;padding:11px 22px;text-align:center}
.mine-row b{display:block;font:24px/1.15 'Gowun Batang',serif;word-break:keep-all}.mine-row small{font-size:11px;font-weight:800;color:#4d4438}
#notice{position:fixed;z-index:9;left:50%;top:calc(14px + env(safe-area-inset-top));transform:translateX(-50%);width:max-content;max-width:calc(100% - 150px);background:#2a231b;color:#ffe9bd;font-size:14px;font-weight:800;line-height:1.4;text-align:center;word-break:keep-all;padding:10px 14px;border-radius:2px;box-shadow:0 8px 24px rgba(0,0,0,.45)}
#btnPlay{top:auto;bottom:calc(142px + env(safe-area-inset-bottom));line-height:1.1;background:#fff3d6}
body.visiting #btnPlay{display:none}
#play{position:fixed;inset:0;z-index:25;background:#efe4cc}
#playC{position:absolute;inset:0;width:100%;height:100%;touch-action:none;display:block}
#playTop{position:absolute;left:0;right:0;top:calc(14px + env(safe-area-inset-top));display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 16px;color:var(--ink);pointer-events:none}
#playClose{justify-self:start;pointer-events:auto;min-height:42px;padding:8px 14px;font:800 14px 'Pretendard Variable',system-ui,sans-serif;background:#fffaf0;border:1px solid var(--line);color:var(--ink);border-radius:2px;cursor:pointer}
#playScore{font-size:20px;font-weight:800;text-align:center}#playScore b{font-size:44px;font-variant-numeric:tabular-nums}
#playBest{justify-self:end;font-size:12px;font-weight:800;text-align:right;line-height:1.5;color:#5f513f}
#playHint{position:absolute;left:16px;right:16px;bottom:calc(36px + env(safe-area-inset-bottom));text-align:center;font-size:15px;font-weight:800;color:#f5ecd9;pointer-events:none}
#playEnd{position:absolute;left:50%;top:32%;transform:translateX(-50%);width:min(calc(100% - 32px),340px);background:#f7efdc;color:var(--ink);padding:18px;border-radius:3px;box-shadow:0 18px 44px rgba(0,0,0,.4);text-align:center}
#playEnd p{font-size:14px;line-height:1.6;margin:6px 0 14px;font-weight:800}
#tut{position:fixed;inset:0;z-index:15}
#tutRing{position:fixed;border:2px solid #ffe3a6;border-radius:50%;box-shadow:0 0 0 9999px rgba(8,6,4,.62),0 0 22px rgba(255,220,150,.7);transition:all .28s ease;pointer-events:none}
#tutBox{position:fixed;left:50%;transform:translateX(-50%);width:min(calc(100% - 32px),340px);background:#f7efdc;color:var(--ink);padding:16px 16px 12px;border-radius:3px;box-shadow:0 14px 36px rgba(0,0,0,.5)}
#tutText{font-size:16px;font-weight:800;line-height:1.5;word-break:keep-all;margin-bottom:12px}
.tut-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tut-row button{font:800 14px 'Pretendard Variable',system-ui,sans-serif;min-height:42px;padding:8px 14px;border-radius:2px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
#tutNext{background:var(--seal);border-color:var(--seal);color:#fff6ef}#tutStep{font-size:12px;color:#7a6a55}
.slip{touch-action:pan-y}.slip textarea,.slip input{touch-action:manipulation}
button,a{touch-action:manipulation}
#btnHi{top:auto;bottom:calc(26px + env(safe-area-inset-bottom))}
#btnSit{top:auto;bottom:calc(84px + env(safe-area-inset-bottom));line-height:1.15}#btnSit.on{background:var(--seal);color:#fff6ef}
body.visiting #btnSit{display:none}
.invite{width:100%;margin:6px 0;padding:11px;min-height:42px;font:800 14px 'Pretendard Variable',system-ui,sans-serif;background:#fff3d6;border:1px solid var(--seal);color:var(--ink);border-radius:2px;cursor:pointer}
#visitCard{position:fixed;z-index:8;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 32px),380px);background:#f7efdc;color:var(--ink);padding:14px 16px;border-radius:3px;box-shadow:0 14px 36px rgba(0,0,0,.5);text-align:center}
.vc-k{font-size:12px;font-weight:800;color:var(--seal)}.vc-w{font:34px/1.15 'Gowun Batang',serif;margin:4px 0;word-break:keep-all}.vc-c{font-size:13px;margin-bottom:10px}.vc-c b{font-size:18px}
body.visiting #hand,body.visiting #btnLook,body.visiting #btnHi,body.visiting #roomTag{display:none}
.opts button:disabled{opacity:.5}.opt-k:empty{display:none}
.room-btn{background:rgba(243,234,215,.14);border:1px solid rgba(243,234,215,.55);color:var(--paper);font:800 13px 'Pretendard Variable',system-ui,sans-serif;padding:9px 14px;border-radius:2px;cursor:pointer;min-height:40px;text-shadow:0 1px 6px rgba(0,0,0,.8)}
.rooms{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:4px}
.rooms button{display:flex;justify-content:space-between;gap:6px;font:800 13px 'Pretendard Variable',system-ui,sans-serif;padding:10px;min-height:42px;border:1px solid var(--line);background:#fffaf0;color:var(--ink);border-radius:2px;cursor:pointer}
.rooms button.on{background:var(--seal);border-color:var(--seal);color:#fff6ef}.rooms button:disabled{opacity:.45}.rooms small{font-weight:400;font-size:12px}
.rooms .auto{grid-column:1/-1}
#roomTag{position:fixed;z-index:5;left:14px;bottom:calc(84px + env(safe-area-inset-bottom));background:rgba(20,16,12,.55);color:var(--paper);border:none;border-radius:2px;font:800 12px 'Pretendard Variable',system-ui,sans-serif;padding:7px 9px;cursor:pointer}
body.pre #roomTag{display:none}
.gate-tag{font-size:15px;font-weight:800;letter-spacing:.06em;color:var(--paper);text-shadow:0 2px 12px rgba(0,0,0,.8)}
.gate-sub{display:flex;gap:14px}.gate-sub button{background:none;border:none;color:var(--paper);font:800 13px 'Pretendard Variable',system-ui,sans-serif;text-decoration:underline;text-underline-offset:3px;padding:4px;cursor:pointer;text-shadow:0 1px 8px rgba(0,0,0,.8)}
#btnLook{right:auto;top:auto;left:18px;bottom:calc(26px + env(safe-area-inset-bottom));font-size:12px}
.look-in{max-height:calc(100vh - 32px);overflow:auto}
#lookC{display:block;width:100%;max-width:220px;margin:0 auto 6px}
.opt-k{font-weight:800;font-size:13px;margin:8px 0 4px}
.opts{display:flex;flex-wrap:wrap;gap:6px}
.opts button{font:800 13px 'Pretendard Variable',system-ui,sans-serif;padding:7px 10px;min-height:36px;border:1px solid var(--line);background:#fffaf0;color:var(--ink);border-radius:2px;cursor:pointer}
.opts button.on{background:var(--seal);border-color:var(--seal);color:#fff6ef}
#privacyBtn{background:none;border:none;color:inherit;font:inherit;text-decoration:underline;padding:4px;margin-bottom:2px;cursor:pointer}
#privacy{z-index:30}
.info p{font-size:14px;line-height:22px;margin-bottom:8px;word-break:keep-all}.info{background:#f7efdc}.info .row{margin-top:12px}
#load{font-size:12px;color:rgba(243,234,215,.6);min-height:1em}
#credit{position:fixed;left:0;right:0;bottom:calc(10px + env(safe-area-inset-bottom));padding:0 16px;text-align:center;font-size:10px;line-height:1.5;color:rgba(243,234,215,.45)}
@media (max-width:520px){#scroll{width:48px;left:14px;top:14px}.v{font-size:29px}#stele{min-width:96px;padding:9px 12px}#stele .n{font-size:21px}.ink-btn{width:44px;height:44px;right:14px}#mute{top:76px}#btnShot{top:128px}#seal2{right:14px;top:14px}.seal b{font-size:13px}#stele{left:auto;right:12px;bottom:auto;top:184px;min-width:0;padding:8px 10px}#stele .n{font-size:18px}.gate-in .v{font-size:68px}}

/* ---- 정리된 화면: 먹색 유리 + 미색 + 솔잎색 ---- */
:root{--paper:#f6f2e9;--ink:#1d1c19;--seal:#2f5d50;--line:#dcd5c7;--mute:#6f6a60;--glass:rgba(22,21,18,.74)}
body{font-family:'Pretendard Variable',-apple-system,system-ui,sans-serif;letter-spacing:-.01em}
.brand,.gate-in .v,.slip-h{font-family:'Gowun Batang',serif;font-weight:700}
#feed{position:fixed;z-index:5;left:12px;bottom:calc(128px + env(safe-area-inset-bottom));width:min(calc(100% - 24px),320px);display:flex;flex-direction:column;gap:4px;pointer-events:none}
.feed-i{align-self:flex-start;max-width:100%;background:rgba(22,21,18,.52);color:#fff;font-size:12px;font-weight:500;line-height:1.35;padding:6px 10px;border-radius:10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;animation:feedIn .25s ease-out;transition:opacity .5s}
.feed-i b{font-weight:700;color:#f0cf8d}.feed-i.me b{color:#fff}
@keyframes feedIn{from{opacity:0;transform:translateY(6px)}}
body.pre #feed,body.visiting #feed{display:none}
#topbar{position:fixed;z-index:6;left:12px;right:12px;top:calc(12px + env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:flex-start;gap:10px;pointer-events:none}
.tb-l{background:var(--glass);color:#fff;border-radius:14px;padding:9px 13px 10px;min-width:150px}
.brand{font-size:19px;line-height:1.2}.tb-stat{font-size:12px;opacity:.9;margin-top:2px;font-variant-numeric:tabular-nums}.tb-stat b{font-weight:700}
.tb-goal{height:3px;border-radius:2px;background:rgba(255,255,255,.2);margin-top:7px;overflow:hidden}.tb-goal i{display:block;height:100%;width:0;background:#f0cf8d;transition:width .6s}
.tb-btn{white-space:nowrap;flex:none;pointer-events:auto;background:var(--glass);color:#fff;border:none;border-radius:14px;min-height:44px;padding:0 14px;font:600 13px 'Pretendard Variable',sans-serif;cursor:pointer}
#notice{top:calc(84px + env(safe-area-inset-top));max-width:calc(100% - 32px);background:var(--paper);color:var(--ink);border-radius:12px;font-weight:600;padding:10px 16px}
#dock{position:fixed;z-index:6;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));max-width:480px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1.5fr 1fr 1fr;align-items:center;gap:2px;background:var(--glass);border-radius:20px;padding:7px}
#dock button{border:none;background:none;color:#fff;font:600 11px 'Pretendard Variable',sans-serif;min-height:52px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer}
#dock svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#dock #stone{background:var(--paper);color:var(--ink);font-size:13px;font-weight:700;width:auto;height:auto;box-shadow:none;display:flex;transition:transform .15s}#dock #stone:active{transform:scale(.96)}
#dock #stone span{font:inherit;color:inherit;max-width:none}
#btnSit.on{background:rgba(240,207,141,.22)!important;color:#ffe3a6!important}
#sub{position:fixed;z-index:6;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));max-width:476px;margin:0 auto;display:flex;justify-content:space-between;pointer-events:none}
#sub button,#roomTag{position:static;pointer-events:auto;background:var(--glass);color:#fff;border:none;border-radius:12px;min-height:36px;padding:0 12px;font:600 12px 'Pretendard Variable',sans-serif;cursor:pointer}
body.pre #topbar,body.pre #dock,body.pre #sub,body.visiting #dock,body.visiting #sub{display:none}
#btnLook,#btnSit,#btnPlay,#btnMine,#btnHi{position:static;width:auto;height:auto;box-shadow:none}
.modal{background:rgba(12,11,9,.5);}
.slip,.slip.info,.info{background:var(--paper);border-radius:20px;transform:none;padding:22px 20px 18px;box-shadow:0 24px 60px rgba(0,0,0,.4)}
.slip-h{font-size:21px;color:var(--ink);line-height:1.3;margin-bottom:12px}
.slip textarea{font:700 22px/1.4 'Gowun Batang',serif;background:#fff;border-radius:12px;padding:12px 14px;margin-bottom:8px}
.slip input{font:400 16px 'Pretendard Variable',sans-serif;background:#fff;border:none;border-radius:12px;padding:12px 14px;margin:0 0 14px}
.row button,.row a{font:600 15px 'Pretendard Variable',sans-serif;border-radius:13px;min-height:48px;padding:12px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.row .go{background:var(--ink);border-color:var(--ink);color:#fff}
.card-wrap .row button,.card-wrap .row a{background:#2a2925;color:#fff;border-color:transparent}.card-wrap .row .go{background:var(--paper);color:var(--ink)}
#cardImg{border-radius:14px}
.info p{font-size:14.5px;line-height:1.6;color:#3d3a34}.info p b{color:var(--ink)}
.opt-k{font-weight:600;font-size:12px;color:var(--mute);margin:10px 0 5px}
.opts button,.rooms button,.invite,.tut-row button,#playClose{font:600 13px 'Pretendard Variable',sans-serif;border-radius:11px;background:#fff;border:1px solid var(--line);min-height:40px}
.opts button.on,.rooms button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.invite{background:#fff;border-color:var(--line);margin:0 0 10px;min-height:46px}
.label{font:600 13px 'Pretendard Variable',sans-serif;background:rgba(246,242,233,.95);border-radius:10px;padding:6px 10px;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.label::before{background:rgba(246,242,233,.95);height:8px}.label.mine{background:#fff;outline:none;color:var(--seal)}
.mine-row{background:#fff;border-radius:14px;padding:12px 14px;text-align:left}
.mine-row b{font:700 17px/1.35 'Gowun Batang',serif}.mine-row small{font-weight:500;color:var(--mute)}
.gate-in .v{writing-mode:horizontal-tb;font-size:60px;letter-spacing:.02em}
.gate-tag{font-weight:500;font-size:15px;letter-spacing:0}
#enter{font-family:'Pretendard Variable',sans-serif;font-weight:700;font-size:16px;letter-spacing:0;padding:15px 52px;border-radius:15px;background:var(--paper)}
.room-btn,.gate-sub button{font:500 13px 'Pretendard Variable',sans-serif;border-radius:12px;text-shadow:0 1px 6px rgba(0,0,0,.6)}.room-btn{border-color:rgba(255,255,255,.45);background:rgba(20,18,15,.28)}
.gate-sub button{text-decoration:none;opacity:.92}
#credit{font-size:10px;color:rgba(255,255,255,.5)}#privacyBtn{font-size:11px}
#tutBox,#visitCard,#playEnd{border-radius:18px;background:var(--paper)}#tutText{font-weight:600}#tutNext{background:var(--ink);border-color:var(--ink);color:#fff}
#tutRing{border-color:#fff;border-radius:18px;box-shadow:0 0 0 9999px rgba(8,8,6,.62)}
.vc-k{color:var(--seal);font-weight:600}.vc-w{font:700 24px/1.35 'Gowun Batang',serif}
#playClose{background:#fff}#playScore{font-weight:600}#playBest{font-weight:500}#playEnd p{font-weight:500}
.slip{max-height:calc(100dvh - 32px);overflow-y:auto;-webkit-overflow-scrolling:touch}
#questBtn{position:fixed;z-index:6;left:12px;top:calc(176px + env(safe-area-inset-top));display:flex;align-items:center;gap:5px;padding:4px 13px 4px 5px;background:#fff8e6;color:#2a231b;border:0;border-radius:999px;font:700 13px 'Pretendard Variable',sans-serif;box-shadow:0 3px 12px rgba(0,0,0,.25);cursor:pointer}#questBtn img{width:28px;height:28px;object-fit:contain}body.pre #questBtn,body.visiting #questBtn{display:none}
#questList,#questWishes{display:flex;flex-direction:column;gap:6px}.q-row{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:600 14px/1.35 'Pretendard Variable',sans-serif;color:var(--ink)}.q-row.done{background:#f2f5e6;color:#5a6b3a}.q-row span{flex:1;min-width:0;overflow-wrap:anywhere}.q-row.w span{font:700 15px/1.35 'Gowun Batang',serif}.q-row button{flex:none;font:700 12px 'Pretendard Variable',sans-serif;padding:8px 10px;background:var(--ink);color:#fff;border:0;border-radius:10px;cursor:pointer}.q-row button:disabled{background:transparent;color:#5a6b3a}.quest-k{font:700 13px 'Pretendard Variable',sans-serif;color:var(--mute);margin:12px 0 6px}#questClaim{margin-top:8px;background:var(--ink);color:#fff}
.card-box{position:relative}
.x-close{flex:none;width:38px;height:38px;border-radius:50%;border:0;background:#fff;color:var(--ink);font:400 26px/1 'Pretendard Variable',sans-serif;display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer;padding:0}
.card-box .x-close{position:absolute;top:-12px;right:-12px}
.card-acts{display:flex;gap:10px;margin-top:14px}
.card-acts a,.card-acts button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;min-height:52px;border-radius:16px;font:700 16px 'Pretendard Variable',sans-serif;text-decoration:none;cursor:pointer;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.12);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.card-acts #cardLink{background:var(--paper);color:var(--ink);border-color:var(--paper);box-shadow:0 8px 22px rgba(0,0,0,.28)}
.card-acts svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.x-h{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:-22px;z-index:3;background:var(--paper);margin:-22px -20px 12px;padding:18px 16px 10px 20px;border-radius:20px 20px 0 0}
.mine-row b{word-break:keep-all}
.q-say{display:flex;align-items:flex-end;gap:8px;margin:2px 0 12px}.q-say img{width:58px;height:auto;flex:none;filter:drop-shadow(0 4px 8px rgba(60,44,28,.2))}
.q-say p{position:relative;margin:0!important;background:#fff;border:1px solid var(--line);border-radius:16px 16px 16px 4px;padding:10px 13px;font:600 14px/1.45 'Pretendard Variable',sans-serif;color:var(--ink)}
.q-row span{word-break:keep-all}
.ntag{position:fixed;left:0;top:0;z-index:4;pointer-events:none;white-space:nowrap;padding:4px 11px 5px;border-radius:999px;background:rgba(28,24,19,.62);color:#f3ead7;font:700 12px/1.2 'Pretendard Variable',system-ui,sans-serif;letter-spacing:-.01em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ntag.boss{background:rgba(42,35,27,.9);color:#ffe7a3;border:1.5px solid #f0c75e;font-size:13px;padding:4px 12px 5px}
.name-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 10px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:14px}#myName{font:700 16px 'Gowun Batang',serif;color:var(--ink);word-break:keep-all}#nameRoll{flex:none;min-height:36px;padding:0 12px;border-radius:11px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font:700 13px 'Pretendard Variable',sans-serif;cursor:pointer}
#opBtn{position:fixed;z-index:6;left:12px;top:calc(208px + env(safe-area-inset-top));min-height:38px;padding:0 14px;background:#2a231b;color:#ffe7a3;border:1px solid #f0c75e;border-radius:999px;font:700 13px 'Pretendard Variable',sans-serif;box-shadow:0 3px 12px rgba(0,0,0,.25);cursor:pointer}body.pre #opBtn,body.visiting #opBtn{display:none}
#opPanel textarea{width:100%;min-height:72px;border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:#fff;font:600 15px/1.45 'Pretendard Variable',sans-serif;color:var(--ink);resize:none;margin:0 0 8px}
.op-main{background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important}
.mm-row{display:flex;gap:6px;margin-bottom:8px}.mm-row input{flex:1;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:12px;padding:0 10px;background:#fff;font:600 14px 'Pretendard Variable',sans-serif;color:var(--ink)}#mmMeetMin{flex:0 0 64px}.mm-msg{font:600 13px 'Pretendard Variable',sans-serif;color:var(--mute);margin:8px 0 0;min-height:18px;word-break:keep-all}
.op-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.op-grid a,.op-grid button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 10px;border-radius:13px;border:1px solid var(--line);background:#fff;color:var(--ink);font:700 14px 'Pretendard Variable',sans-serif;text-decoration:none;cursor:pointer;white-space:nowrap}
.op-grid button.on{background:#2a231b;color:#ffe7a3;border-color:#f0c75e}
.op-hide{background:#fff!important;color:#b23a2b!important;border:1px solid #e5b8b0!important;margin-left:auto}
.q-row.done span{font-weight:700}#questList .q-row{min-height:50px}
#mineGo{background:var(--ink);color:#fff;border-color:var(--ink)}
body:has(.modal:not([hidden])) #ranger{display:none}
#bloom,#cardModal{z-index:40}   /* 다른 창(내 돌탑) 위에서 여는 창은 늘 맨 앞으로 */
#mineList{margin-bottom:4px}
#mineList{min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:visible;flex:none}#mineList:empty{display:none}.mine-in .invite{flex:none}
.mine-item{display:flex;flex-direction:column;align-items:stretch;gap:0;min-width:0;background:#fbf6ea;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.mine-item .mine-row{flex:1;width:100%;min-height:124px;display:flex;flex-direction:column;gap:6px;background:none;border:0;border-radius:0;padding:12px;font:inherit;color:var(--ink);cursor:pointer}
.mine-row i{font:700 11px 'Pretendard Variable',sans-serif;color:var(--mute)}.mine-row b{font-size:15px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.mine-row small{margin-top:auto;font-size:11px}
.mine-acts{display:flex;border-top:1px solid var(--line)}.mine-acts>*{flex:1;text-align:center;font:600 12px 'Pretendard Variable',sans-serif;padding:9px 2px;color:var(--ink);text-decoration:none;background:none!important;border:0!important;border-radius:0!important;cursor:pointer}.mine-acts>*+*{border-left:1px solid var(--line)!important}
.mine-item.bloomed{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg fill='%23e8a0b4'%3E%3Ccircle cx='20' cy='9' r='8'/%3E%3Ccircle cx='30.5' cy='16.6' r='8'/%3E%3Ccircle cx='26.5' cy='29' r='8'/%3E%3Ccircle cx='13.5' cy='29' r='8'/%3E%3Ccircle cx='9.5' cy='16.6' r='8'/%3E%3C/g%3E%3Ccircle cx='20' cy='20' r='6' fill='%23f0c25a'/%3E%3C/svg%3E") right 9px top 8px/24px no-repeat,#fdf1ee;border-color:#e6b9c6}.bloomed .mine-row i{color:#b0486c}
#look .row{position:sticky;bottom:-18px;background:var(--paper);padding:10px 0 8px;margin-top:6px}
#playScore b{font-size:38px;font-weight:700}
.gate-in{padding:0 16px}
.me-mark{position:fixed;left:0;top:0;z-index:3;width:0;height:0;pointer-events:none;border-left:9px solid transparent;border-right:9px solid transparent;border-top:12px solid #ffd98f;filter:drop-shadow(0 2px 5px rgba(0,0,0,.5));margin-top:-12px;margin-left:-9px;animation:meBob 1.5s ease-in-out infinite}
@keyframes meBob{50%{margin-top:-19px}}
#goUp{background:var(--paper)!important;color:var(--ink)!important;font-weight:700!important}
#goUp{position:absolute!important;left:50%;bottom:44px;transform:translateX(-50%);white-space:nowrap;min-height:40px!important}
#feed{bottom:calc(178px + env(safe-area-inset-bottom))}
#sub button{white-space:nowrap}
#wxBtn{display:flex;align-items:center;gap:5px;pointer-events:auto;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:999px;color:#fff;font:500 12px 'Pretendard Variable',sans-serif;padding:3px 4px 3px 8px;margin-top:6px;min-height:28px;text-align:left;cursor:pointer;white-space:nowrap}#wxBtn .wx-e{font-size:16px;line-height:1}#wxBtn b{font-size:14px;font-weight:800}#wxBtn .wx-loc{margin-left:2px;padding:3px 8px;border-radius:999px;background:#fff8e6;color:#2a231b;font-weight:700;font-size:11px}
.tb-l{pointer-events:auto}

#skipBtn{position:absolute!important;left:50%;bottom:96px;transform:translateX(-50%);white-space:nowrap;pointer-events:auto;min-height:44px;padding:0 20px;border-radius:999px;border:1.5px solid #6f8f4e;background:#f4ead6;color:#2e3a22;font:700 15px 'Gowun Batang',serif;box-shadow:0 6px 18px rgba(0,0,0,.3)}#skipBtn:disabled{opacity:.6}body.pre #skipBtn,body.visiting #skipBtn{display:none}
body.exam #dock #stone{background:#f4ead6;color:#2e241a;border:1.5px solid #c9a14a;box-shadow:0 4px 14px rgba(201,161,74,.35);font-family:'Gowun Batang',serif;font-size:14px}
#rangerText{white-space:pre-line;word-break:keep-all}
.opts button[data-ex]:not(.on){border-color:#d9a69f;color:#9e2f25;background:#fdf6f2}
.opt-k .ex-note{margin-left:6px;font-weight:600;color:#9e2f25}
#opBtn.mini{min-height:0;width:34px;height:34px;padding:0;font-size:15px;opacity:.55;border-color:rgba(240,199,94,.5)}
#story .maker{margin:4px 0 14px;padding:14px 16px;background:#f7efdd;border-left:3px solid #b8342a;border-radius:4px 10px 10px 4px;font-family:'Gowun Batang',serif;font-size:14.5px;line-height:1.75;color:#2e241a;word-break:keep-all}#story .maker p{margin:0 0 8px}#story .maker-sign{text-align:right;font-size:13px;color:#7a6a55}
#emoBar{position:fixed;z-index:6;left:12px;right:12px;bottom:calc(140px + env(safe-area-inset-bottom));max-width:476px;margin:0 auto;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px}#emoBar[hidden]{display:none}#emoBar::-webkit-scrollbar{display:none}
#emoBar button{flex:none;border:none;border-radius:999px;min-height:36px;padding:0 12px;background:rgba(247,239,221,.94);color:#2e241a;font:700 12.5px 'Pretendard Variable',sans-serif;box-shadow:0 3px 10px rgba(0,0,0,.18);cursor:pointer}#emoBar #logBtn{background:#2e241a;color:#ffd9a0}

#endBadges{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:0 0 10px}#endBadges .bdg{font-size:12px;padding:4px 9px;border-radius:999px;border:1px dashed var(--line);color:var(--mute)}#endBadges .bdg.on{border-style:solid;border-color:#c9a24a;color:#7a5a14;background:#fbf3dc}#endBadges .bdg.new{animation:bdgPop .6s ease-out 2;box-shadow:0 0 0 2px #e8c25a}@keyframes bdgPop{50%{transform:scale(1.15)}}#rankHint{font-size:12px;color:var(--mute);margin:-4px 0 10px;line-height:1.6;word-break:keep-all;white-space:nowrap;text-align:center}
@media (max-width:380px){#rankHint{font-size:11px}}

/* 입구 로딩: 덕뀨 옆에서 돌이 하나씩 쌓였다 무너지고, 진행 막대와 덕뀨 한마디가 바뀜 */
#load{display:flex;flex-direction:column;align-items:center;gap:8px;min-height:96px}
#load.done .ld-scene,#load.done .ld-bar{display:none}
.ld-scene{position:relative;width:120px;height:62px}
.ld-cairn{position:absolute;left:22px;bottom:0;width:52px;height:62px}
.ld-cairn i{position:absolute;left:50%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#efe8da,#b9b1a4 60%,#7d756a);box-shadow:0 2px 3px rgba(0,0,0,.35);opacity:0;animation:ldStone 3.4s ease-in infinite}
.ld-cairn i:nth-child(1){width:46px;height:16px;margin-left:-23px;bottom:0;animation-delay:0s}
.ld-cairn i:nth-child(2){width:38px;height:14px;margin-left:-20px;bottom:13px;animation-delay:.35s}
.ld-cairn i:nth-child(3){width:31px;height:12px;margin-left:-14px;bottom:24px;animation-delay:.7s}
.ld-cairn i:nth-child(4){width:24px;height:11px;margin-left:-13px;bottom:34px;animation-delay:1.05s}
.ld-cairn i:nth-child(5){width:16px;height:10px;margin-left:-8px;bottom:43px;animation-delay:1.4s}
@keyframes ldStone{0%{opacity:0;transform:translateY(-26px)}8%{opacity:1;transform:translateY(0)}11%{transform:translateY(0) scaleY(.85)}14%{transform:none}78%{opacity:1;transform:none}90%,100%{opacity:0;transform:translateY(4px)}}
.ld-duck{position:absolute;right:4px;bottom:0;width:44px;height:44px;object-fit:contain;animation:ldHop 1.1s ease-in-out infinite;transform-origin:50% 100%}
@keyframes ldHop{0%,100%{transform:translateY(0) rotate(-4deg)}25%{transform:translateY(-9px) rotate(3deg) scaleY(1.04)}50%{transform:translateY(0) rotate(4deg) scaleY(.94)}}
.ld-bar{width:132px;height:4px;border-radius:4px;background:rgba(243,234,215,.15);overflow:hidden}
.ld-bar b{display:block;height:100%;width:6%;background:linear-gradient(90deg,#e8c25a,#f3ead7);border-radius:4px;transition:width .35s}
#ldTip{font-size:12px;color:rgba(243,234,215,.75);min-height:1.2em;transition:opacity .25s}
@media (prefers-reduced-motion:reduce){.ld-cairn i{animation:none;opacity:1}.ld-duck{animation:none}}
@media (max-width:380px){#sub .sub-r button,#roomTag{padding-left:8px;padding-right:8px;font-size:12px}#sub .sub-r{gap:4px}}
/* 메뉴 정리: 위는 카드 하나 + 동그란 버튼, 아래 장소 버튼은 '갈 곳' 하나로 */
.tb-r{align-items:center}
.tb-btn{width:44px;padding:0;border-radius:50%;font-size:17px}
#questBtn{position:static;pointer-events:auto;display:flex;align-items:center;gap:2px;height:44px;padding:0 12px 0 5px;background:var(--glass);color:#fff;border:0;border-radius:22px;box-shadow:none;font:700 12.5px 'Pretendard Variable',sans-serif;font-variant-numeric:tabular-nums;cursor:pointer}#questBtn[hidden]{display:none}#questBtn img{width:32px;height:32px}
.tb-l #examBar{position:static;margin-top:8px;padding:4px 9px;gap:6px;border-width:1px;border-radius:9px;box-shadow:none;animation:none;width:max-content}
.tb-l #examBar .ex-d{font-size:16px}.tb-l #examBar .ex-t{flex-direction:row;align-items:baseline;gap:5px}.tb-l #examBar .ex-t em{font-size:12px}.tb-l #examBar .ex-seal{display:none}
#btnPlace::after{content:'▴';font-size:9px;margin-left:4px;opacity:.75}
#placeMenu{position:absolute;right:0;bottom:44px;min-width:200px;display:flex;flex-direction:column;gap:2px;padding:6px;background:rgba(247,239,221,.97);border-radius:16px;box-shadow:0 10px 28px rgba(0,0,0,.32);pointer-events:auto}#placeMenu[hidden]{display:none}
#placeMenu button{display:none}
#placeMenu button:not([hidden]),#placeMenu #goUp{display:flex;align-items:center;justify-content:flex-start;position:static!important;transform:none!important;width:100%;min-height:44px!important;padding:0 14px;border-radius:11px;background:transparent!important;color:var(--ink)!important;font:600 14.5px 'Pretendard Variable',sans-serif!important;box-shadow:none}
#placeMenu button:active{background:rgba(42,35,27,.08)!important}
#feed{bottom:calc(132px + env(safe-area-inset-bottom))}
#privacy .src{font-size:12px;line-height:1.55;color:#7a6a55}
#gate::after{content:'';position:fixed;left:0;right:0;bottom:0;height:34%;background:linear-gradient(to top,rgba(8,9,14,.55),transparent);pointer-events:none;z-index:-1}
/* 정렬: 위 카드는 내용 폭에 맞추고, 오른쪽 동그란 버튼 3개(44px)와 겹치지 않게 · 아래 두 줄은 좌우 12px로 맞춤 */
.tb-l{width:max-content;max-width:calc(100vw - 24px - 154px);box-sizing:border-box}
#questBtn{position:relative;width:44px;padding:0;justify-content:center;border-radius:50%}#questBtn img{width:34px;height:34px}
#questN{position:absolute;right:-5px;bottom:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#f3ead7;color:#2a231b;font:800 10.5px/18px 'Pretendard Variable',sans-serif;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.3)}
#wxBtn .wx-loc{width:22px;height:22px;padding:0;display:grid;place-items:center;font-size:12px}
#dock{left:12px;right:12px;max-width:476px}
#questBtn{top:auto!important;left:auto!important}
#placeMenu #goUp,#placeMenu #goUp[hidden]{display:flex!important}
/* 위 카드 안 날씨 알약 · 진행 막대 · D-day 배지 가로 길이를 똑같이 */
.tb-l #wxBtn,.tb-l .tb-goal,.tb-l #examBar{width:100%;box-sizing:border-box}
.tb-l #wxBtn .wx-loc{margin-left:auto}
@media (max-width:380px){.tb-l #examBar .ex-t small{display:none}}   /* 좁은 폰은 '수능까지'를 빼서 돌 수가 늘어도 배지 안에 들어가게 */
/* 첫 화면: KIDEM 서명은 돌탑 위가 아니라 맨 아래 '개인정보 · 출처' 바로 위에 */
#sign{position:fixed;left:50%;bottom:calc(40px + env(safe-area-inset-bottom));transform:translateX(-50%);height:12px;opacity:.55}
/* 첫 화면: 수능 기간엔 타이틀 위에 한지 배지 */
#gateExam{display:inline-flex;align-items:center;gap:8px;margin:0 auto 10px;padding:6px 14px 6px 8px;background:#f7efdd;color:#2e241a;border:1.5px solid #b8342a;border-radius:999px;box-shadow:0 4px 18px rgba(0,0,0,.35);white-space:nowrap;font:600 13px/1.2 'Pretendard Variable',system-ui,sans-serif}
#gateExam[hidden]{display:none}
#gateExam .ex-seal{font:700 11px/1 'Gowun Batang',serif;font-style:normal;color:#fff;background:#b8342a;border-radius:999px;padding:5px 7px}
#gateExam b{font:700 17px/1 'Gowun Batang',serif;color:#b8342a}
body>#examBar{display:none!important}   /* 입산 전엔 첫 화면 배지가 대신하니 왼쪽 위 배지는 숨김 */
/* 내 돌탑: 소원 올린 날 돌탑 앞 사진 */
.mine-item .mine-ph{display:block;width:100%;aspect-ratio:6/5;object-fit:cover;cursor:pointer;border-bottom:1px solid var(--line)}
/* 후원: 첫 화면 맨 아래 작은 링크, 소원봉 이야기 안 버튼 */
#credit .sup{color:inherit;font-size:11px;text-decoration:underline;padding:4px;margin-left:6px}
#credit .sup[hidden],#storySupport[hidden]{display:none}
#storySupport{margin-top:6px;padding-top:12px;border-top:1px dashed var(--line)}#storySupport .invite{display:block;text-align:center;text-decoration:none;margin-top:8px}
.sup-in .sup-kp{display:block;text-align:center;text-decoration:none;background:#fee500!important;border-color:#e5cf00!important;color:#191919!important}
.sup-in .invite{display:block;text-align:center;text-decoration:none}
.sup-qr{display:block;width:min(220px,62%);margin:6px auto 2px;border-radius:12px;border:1px solid var(--line)}.sup-note{display:block;text-align:center;color:var(--mute);font-size:11px;margin-bottom:10px}
#support{z-index:30}
.sup-acct{display:flex;align-items:center;gap:10px;margin:4px 0 8px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:12px}.sup-acct span{flex:1;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.sup-acct small{font-size:12px;color:var(--mute)}.sup-acct b{font:700 16px 'Pretendard Variable',sans-serif;letter-spacing:.01em}.sup-acct button{flex:none;min-height:40px;padding:0 12px;font:700 13px 'Pretendard Variable',sans-serif;background:var(--ink);color:#fff;border:0;border-radius:10px;cursor:pointer}
#credit .sup{background:none;border:0;font-family:inherit;cursor:pointer}
/* 오른쪽 위: 후원·의견·소리를 알약 하나로 묶음 */
.tb-pill{display:flex;align-items:center;gap:0;padding:2px 4px;background:var(--glass);border:1px solid rgba(255,255,255,.22);border-radius:999px;pointer-events:auto}
.tb-pill .tb-btn{width:38px;min-height:40px;height:40px;background:none;font-size:16px}
/* 후원 창 v2: 감사 한 줄 → 계좌 카드 → QR 카드(누르면 카카오페이) → 커피 버튼 → 쓰임 한 줄 */
.sup-in .sup-thx{text-align:center;margin:0 0 12px}
.sup-in .sup-acct{background:linear-gradient(135deg,#3a2e22,#5a4632);border:0;color:#f3ead7;padding:14px 14px 14px 16px}
.sup-in .sup-acct span{flex-direction:column;align-items:flex-start;gap:3px}.sup-in .sup-acct small{color:rgba(243,234,215,.75)}.sup-in .sup-acct b{font-size:19px;color:#fff}
.sup-in .sup-acct button{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3)}
.sup-qrcard{display:block;margin:10px 0;padding:12px 12px 10px;background:#fff;border:1px solid var(--line);border-radius:16px;text-align:center;text-decoration:none;color:var(--mute)}
.sup-qrcard .sup-qr{width:min(230px,70%);margin:0 auto 6px;border:0;border-radius:0}.sup-qrcard small{display:block;font-size:11px}
.sup-bmc{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:52px;padding:0 16px;background:linear-gradient(135deg,#e9c46a,#d4a72c);border-radius:14px;color:#2a231b;text-decoration:none;font:700 14px 'Pretendard Variable',sans-serif}.sup-bmc span{font-weight:600}
.sup-in .sup-foot{text-align:center;font-size:12px;color:var(--mute);margin:12px 0 0}
/* 후원 창 v3 (소원봉 고유): 덕뀨 머리글 + 한지 쪽지 계좌 + 두 칸 버튼 + 접힌 QR */
#support .slip{position:relative;padding-top:18px}
.sup-x{position:absolute;top:12px;right:12px}
.sup-hero{display:flex;align-items:center;gap:12px;margin:0 44px 10px 0}.sup-hero img{width:64px;height:64px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.18))}
.sup-hero small{display:block;font:600 12px 'Pretendard Variable',sans-serif;color:var(--mute)}.sup-hero b{display:block;font:700 23px/1.2 'Gowun Batang',serif;color:var(--ink)}
.sup-in .sup-thx{text-align:left;font-size:13.5px;line-height:1.6;margin:0 0 14px;color:#4d4438}
.sup-slip{display:flex;align-items:center;gap:12px;padding:12px 12px 12px 14px;background:#fbf6ea;border:1px solid var(--line);border-left:4px solid #b8342a;border-radius:6px 12px 12px 6px;box-shadow:0 2px 0 rgba(120,96,60,.12)}
.sup-seal{flex:none;width:34px;height:34px;display:grid;place-items:center;font:700 11px 'Gowun Batang',serif;font-style:normal;color:#fff;background:#b8342a;border-radius:6px;transform:rotate(-6deg)}
.sup-slip span{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sup-slip small{font-size:11.5px;color:var(--mute)}.sup-slip b{font:700 18px 'Pretendard Variable',sans-serif;letter-spacing:.01em;color:var(--ink)}
.sup-slip button{flex:none;min-height:38px;padding:0 14px;font:700 13px 'Pretendard Variable',sans-serif;background:var(--ink);color:#fff;border:0;border-radius:10px;cursor:pointer}
.sup-two{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.sup-two a{display:grid;place-items:center;min-height:48px;border-radius:12px;text-decoration:none;font:700 14px 'Pretendard Variable',sans-serif}
.sup-two .sup-kp{background:#fee500;color:#191919}.sup-two .sup-bmc{background:#fff;color:var(--ink);border:1px solid var(--line)}
.sup-qrbox{margin-top:10px;text-align:center}.sup-qrbox summary{cursor:pointer;font-size:12px;color:var(--mute);padding:6px;list-style:none}.sup-qrbox summary::-webkit-details-marker{display:none}.sup-qrbox summary::after{content:' ▾'}.sup-qrbox[open] summary::after{content:' ▴'}
.sup-qrbox img{width:min(220px,66%);margin:4px auto 0;display:block;border-radius:12px;border:1px solid var(--line)}
.tb-pill #btnSupport svg{width:20px;height:20px;fill:#f3ead7}
.sup-two a{align-content:center;padding:0;margin:0;line-height:1.2}
@media (max-width:380px){.tb-pill{padding:2px 2px}.tb-pill .tb-btn{width:32px;font-size:15px}.tb-pill #btnSupport svg{width:18px;height:18px}.sup-slip b{font-size:16px}.sup-slip{gap:10px;padding-left:12px}}
.sup-slip b{white-space:nowrap}
/* 후원 창 v4 — A안(한지): 가운데 정렬 머리글 + 작은 돌탑 장식 */
.sup-in .sup-hero{flex-direction:column;gap:2px;margin:0 0 8px;text-align:center}.sup-in .sup-hero img{width:84px;height:84px;margin-bottom:4px}
.sup-in .sup-hero b{font-size:25px}
.sup-cairn{display:flex;flex-direction:column-reverse;align-items:center;gap:2px;margin-top:8px}.sup-cairn s{display:block;height:7px;border-radius:50%;background:#b9ae9c}.sup-cairn s:nth-child(1){width:34px}.sup-cairn s:nth-child(2){width:24px;background:#cfc5b4}.sup-cairn s:nth-child(3){width:15px;background:#ded6c8}
.sup-in .sup-thx{text-align:center;font-size:13.5px;line-height:1.65;margin:4px 0 16px;word-break:keep-all}
/* B안(먹빛 밤): body.sup-night 일 때 */
.sup-night #support .slip{background:linear-gradient(180deg,#22283a,#1a1d27);color:#efe6d2;border:1px solid rgba(255,255,255,.12)}
.sup-night #support .sup-hero small{color:rgba(239,230,210,.6)}.sup-night #support .sup-hero b{color:#f6eedb}.sup-night #support .sup-thx{color:rgba(239,230,210,.82)}
.sup-night #support .sup-cairn s{background:rgba(239,230,210,.35)}.sup-night #support .sup-cairn s:nth-child(2){background:rgba(239,230,210,.5)}.sup-night #support .sup-cairn s:nth-child(3){background:rgba(239,230,210,.7)}
.sup-night #support .sup-two .sup-bmc{background:rgba(255,255,255,.08);color:#f6eedb;border-color:rgba(255,255,255,.22)}.sup-night #support .sup-qrbox summary{color:rgba(239,230,210,.6)}
.sup-night #support .x-close{background:rgba(255,255,255,.1);color:#f6eedb}
/* 두 칸 버튼: 가운데 정렬 두 줄(이름 + 작은 설명), 높이·여백 통일 */
.sup-two a.sup-kp,.sup-two a.sup-bmc{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:58px;padding:8px 6px;text-align:center;box-sizing:border-box}
.sup-two a b{font:700 15px/1.1 'Pretendard Variable',sans-serif}.sup-two a small{font:500 11px/1.2 'Pretendard Variable',sans-serif;opacity:.7;white-space:nowrap}
.sup-in .sup-cairn{display:none}.sup-in .sup-hero img{width:76px;height:76px}.sup-in .sup-hero b{margin-top:2px}
.sup-in .sup-thx{margin:10px 0 16px}
.sup-in .sup-slip{margin:0}

/* 후원: 소원 직후 한 줄 · 쓰임새 · 고마움 */
.card-sup{display:flex;align-items:center;gap:10px;width:100%;margin-top:10px;padding:8px 10px;border:1px solid rgba(243,234,215,.25);border-radius:14px;background:rgba(20,18,15,.55);color:#f3ead7;text-align:left;cursor:pointer}
.card-sup img{width:38px;height:38px;border-radius:50%;background:#f3ead7;flex:none}
.card-sup span{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.card-sup b{font:700 14px/1.2 'Pretendard Variable',sans-serif}.card-sup small{font:500 12px/1.2 'Pretendard Variable',sans-serif;opacity:.75}
.card-sup i{font:700 12px/1 'Pretendard Variable',sans-serif;font-style:normal;padding:8px 10px;border-radius:999px;background:#c23a2b;color:#fff;white-space:nowrap;flex:none}
.sup-use{list-style:none;margin:-4px 0 14px;padding:10px 12px;border-radius:12px;background:rgba(120,96,60,.08);display:flex;flex-direction:column;gap:8px;text-align:left}
.sup-use li{display:flex;gap:10px;align-items:flex-start}.sup-use i{font-style:normal;font-size:18px;line-height:1.2;flex:none}
.sup-use span{display:flex;flex-direction:column;gap:1px}.sup-use b{font:700 13px/1.3 'Pretendard Variable',sans-serif}.sup-use small{font:500 12px/1.35 'Pretendard Variable',sans-serif;opacity:.72;word-break:keep-all}
.sup-done{margin:12px 0 0;padding:10px;border-radius:12px;background:#c23a2b;color:#fff;font:600 13px/1.4 'Pretendard Variable',sans-serif;text-align:center;word-break:keep-all}

/* 100개마다 연등: 다음 목표까지 남은 수 */
.tb-goaltxt{margin-top:4px;font:600 11px/1.2 'Pretendard Variable',sans-serif;color:rgba(255,246,230,.72);white-space:nowrap}.tb-goaltxt b{color:#f0cf8d;font-weight:700}

/* 밤 10시 탑돌이 버튼 */
#tapBtn{position:fixed;z-index:7;left:50%;transform:translateX(-50%);bottom:calc(132px + env(safe-area-inset-bottom));padding:10px 16px;border:1px solid rgba(255,214,150,.45);border-radius:999px;background:rgba(40,26,14,.78);backdrop-filter:blur(8px);color:#ffe9c4;font:600 13px/1.2 'Pretendard Variable',sans-serif;white-space:nowrap;box-shadow:0 0 18px rgba(255,180,90,.35)}
#tapBtn b{color:#ffd08a}#tapBtn small{margin-left:4px;font-size:11px;opacity:.7}#tapBtn:disabled{opacity:.85;box-shadow:none}
body.pre #tapBtn{display:none}
/* 돌 우체통 */
#post{z-index:30}
.post-in .post-lead{margin:2px 0 12px;font-size:13.5px;line-height:1.6;word-break:keep-all}.post-in .post-lead small{opacity:.65}
.post-in textarea{width:100%;box-sizing:border-box;border:1px solid rgba(120,96,60,.3);border-radius:12px;padding:10px 12px;font:500 15px/1.5 'Pretendard Variable',sans-serif;background:#fffaf0;resize:none}
.post-when{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:10px 0}
.post-when button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border:1px solid rgba(120,96,60,.25);border-radius:12px;background:#fffaf0;color:#3a3026}
.post-when button b{font:700 13px/1.2 'Pretendard Variable',sans-serif}.post-when button small{font:500 11px/1.2 'Pretendard Variable',sans-serif;opacity:.6}
.post-when button.on{border-color:#c23a2b;background:#c23a2b;color:#fff}.post-when button.on small{opacity:.85}
.post-in #postGo{width:100%}
.post-list{margin-top:14px;display:flex;flex-direction:column;gap:6px;max-height:34vh;overflow:auto}
.post-item{display:flex;gap:10px;align-items:flex-start;padding:9px 11px;border-radius:12px;background:rgba(120,96,60,.08)}.post-item i{font-style:normal;font-size:18px}
.post-item span{display:flex;flex-direction:column;gap:2px}.post-item b{font:700 13px/1.4 'Pretendard Variable',sans-serif;word-break:keep-all}.post-item small{font:500 11.5px/1.3 'Pretendard Variable',sans-serif;opacity:.65}
.post-item.open{background:#fff3d6}.post-item.open b{font-weight:500;font-size:14px}
.post-empty{margin:0;text-align:center;font-size:12.5px;opacity:.55}
.mine-post{width:100%;margin-top:8px;padding:10px;border:1px dashed rgba(120,96,60,.4);border-radius:12px;background:none;color:inherit;font:600 13px 'Pretendard Variable',sans-serif}
.post-in #postGo{display:block;width:100%;min-height:46px;border:0;border-radius:12px;background:#221d17;color:#fff7e8;font:700 15px 'Pretendard Variable',sans-serif}

/* 후원 QR 바로 보이기 */
.sup-qr{margin-top:12px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px;border-radius:14px;background:#fff}
.sup-qr img{width:min(150px,46vw);display:block}.sup-qr small{font:500 11.5px/1.3 'Pretendard Variable',sans-serif;color:#6b6155;text-align:center;word-break:keep-all}
/* 홈 화면에 추가 */
#a2hs{position:fixed;z-index:25;left:12px;right:12px;bottom:calc(150px + env(safe-area-inset-bottom));max-width:460px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:14px;border-radius:18px;background:#f3ead7;color:#221d17;box-shadow:0 8px 30px rgba(0,0,0,.35)}
#a2hs[hidden]{display:none}
#a2hs img{width:48px;height:48px;border-radius:12px;flex:none}#a2hs span{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
#a2hs b{font:700 15px/1.25 'Pretendard Variable',sans-serif}#a2hs small{font:500 12.5px/1.35 'Pretendard Variable',sans-serif;opacity:.7;word-break:keep-all}
#a2hs div{width:100%;display:flex;justify-content:flex-end;gap:8px}#a2hs div button{min-height:40px;padding:0 16px;border:0;border-radius:12px;font:700 14px 'Pretendard Variable',sans-serif;background:rgba(34,29,23,.08);color:#221d17}
#a2hs #a2hsGo{background:#221d17;color:#fff7e8}

/* 소원 구경: 이뤄진 소원 */
.w-row.w-bloom{background:linear-gradient(90deg,rgba(255,214,140,.22),rgba(255,214,140,0))}.w-row.w-bloom .cheer{background:#c23a2b;color:#fff}

/* 소원 구경 탭 */
.w-tabs{display:flex;gap:6px;margin:2px 0 8px}.w-tabs button{flex:1;min-height:38px;padding:0 4px;border:1px solid rgba(120,96,60,.25);border-radius:999px;background:#fffaf0;color:#3a3026;font:600 12.5px 'Pretendard Variable',sans-serif;white-space:nowrap}
.w-tabs button.on{background:#221d17;border-color:#221d17;color:#fff7e8}
.w-hint{margin:0 2px 8px;font:500 12px/1.4 'Pretendard Variable',sans-serif;opacity:.65;word-break:keep-all}

/* 합격 돌 */
.wish-exam{display:flex;align-items:center;gap:10px;margin:8px 0 2px;padding:10px 12px;border:1px solid rgba(194,58,43,.35);border-radius:12px;background:#fff5ef;cursor:pointer;text-align:left}
.wish-exam[hidden]{display:none}.wish-exam input{width:20px;height:20px;accent-color:#c23a2b;flex:none;margin:0}
.wish-exam span{display:flex;flex-direction:column;gap:2px}.wish-exam b{font:700 14px/1.2 'Pretendard Variable',sans-serif;color:#a72d22}.wish-exam small{font:500 11.5px/1.3 'Pretendard Variable',sans-serif;opacity:.7;word-break:keep-all}
.w-tabs{display:grid;grid-template-columns:repeat(2,1fr)}.w-tabs button[hidden]{display:none}
.w-row.w-exam{border-left:3px solid #c23a2b}

/* 튜토리얼: 덕뀨가 알려 줘요 */
#tutBox{padding-top:14px}.tut-who{display:flex;align-items:center;gap:8px;margin:-2px 0 8px}
.tut-who img{width:44px;height:44px;border-radius:50%;background:#fff;border:2px solid #e6d6b4;object-fit:cover;flex:none}
.tut-who span{font:700 12.5px 'Pretendard Variable',sans-serif;color:#8a6a3a}

/* 떠오르는 소원 글자: 길면 두 줄로, 화면 안에 */
.label.wl{white-space:normal;max-width:min(78vw,320px);text-align:center;word-break:keep-all;line-height:1.35}

.w-tabs{display:flex;flex-wrap:wrap}.w-tabs button{flex:1 1 calc(50% - 6px)}
/* 탑돌이 버튼은 위 카드 바로 아래로 (아래쪽 알림·갈 곳 메뉴와 겹치지 않게) */
#tapBtn{z-index:5;bottom:auto;top:calc(176px + env(safe-area-inset-top))}
.label.wl{width:max-content}   /* 화면 가장자리에서 글자가 좁게 눌려 여러 줄로 길어지지 않게 */
/* 넓어진 산: 다가가면 뜨는 버튼·주막·산행 수첩 */
#zoneAct{position:fixed;z-index:6;left:50%;transform:translateX(-50%);bottom:calc(132px + env(safe-area-inset-bottom));padding:11px 18px;border:1px solid rgba(255,214,150,.5);border-radius:999px;background:rgba(40,26,14,.82);backdrop-filter:blur(8px);color:#ffe9c4;font:700 14px/1.2 'Pretendard Variable',sans-serif;white-space:nowrap;box-shadow:0 4px 18px rgba(0,0,0,.3);animation:zaIn .35s ease}
#zoneAct.star{border-color:#bfe3ff;color:#eaf6ff;box-shadow:0 0 22px rgba(170,215,255,.7);animation:zaIn .2s ease,zaPulse .6s ease-in-out infinite alternate}
body.pre #zoneAct{display:none}
@keyframes zaIn{from{opacity:0;transform:translate(-50%,8px)}}
@keyframes zaPulse{to{box-shadow:0 0 34px rgba(190,230,255,.95)}}
#jumak,#book{z-index:30}
#jumakList{display:grid;gap:6px;margin:4px 0 6px}
.jm-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid rgba(120,96,60,.25);border-radius:12px;background:#fffaf0;color:#3a3026;text-align:left;font:inherit}
.jm-item i{font-style:normal;font-size:24px}.jm-item span{display:flex;flex-direction:column;gap:2px}.jm-item b{font:700 15px 'Pretendard Variable',sans-serif}.jm-item small{font-size:12.5px;opacity:.7}
.jm-item em{font-style:normal;font-size:10.5px;padding:1px 5px;border-radius:5px;background:#b3362b;color:#fff;vertical-align:2px}
.jm-item.on{border-color:#b3362b;background:#fff3e8}
#bookGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 6px;margin:6px 0 12px}
.bk-st{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.bk-st i{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:2px dashed rgba(120,96,60,.35);font-style:normal;font-size:24px}
.bk-st.on i{border:2.5px solid #a8352a;background:rgba(168,53,42,.07);transform:rotate(-8deg)}
.bk-st b{font:700 12.5px/1.25 'Pretendard Variable',sans-serif;word-break:keep-all}.bk-st small{font-size:11px;opacity:.6}
.bk-st:last-child{grid-column:2}

/* 순위표: 금·은·동, 내 줄, 다음 순위까지 */
#rankChase{margin:0 0 8px;font:800 15px 'Pretendard Variable',sans-serif;color:#c9473a;min-height:1em}
.rk.r1{background:linear-gradient(90deg,#fbefc4,#fff8e3);border-radius:8px}.rk.r2{background:linear-gradient(90deg,#e9edf1,#f7f8fa);border-radius:8px}.rk.r3{background:linear-gradient(90deg,#f3dfcc,#fbf3ea);border-radius:8px}
.rk.r1 b{color:#a8780f}.rk.me{outline:2px solid #c9473a;outline-offset:-2px;border-radius:8px}.rk em{font-style:normal;font-size:11px;font-weight:700;color:#8a7a62;margin-left:2px}.rk.r1 em{color:#a8780f}
/* 새로 생긴 곳·기능에 NEW 표시 (한 번 눌러 보면 사라짐) */
.is-new::after{content:'NEW';margin-left:auto;padding:2px 6px;border-radius:7px;background:#c9703a;color:#fff;font:800 11px 'Pretendard Variable',sans-serif;letter-spacing:.02em;line-height:1.3}
.mine-post.is-new{display:flex;align-items:center;justify-content:center;gap:8px}.mine-post.is-new::after{margin-left:0}
#btnPlace.has-new,#btnMine.has-new{background-image:radial-gradient(circle at calc(100% - 9px) 9px,#e2553f 0 4px,transparent 4.6px)!important}
/* 한글은 낱말 중간에서 줄이 끊기지 않게, 마지막 줄에 한 글자만 남지 않게 */
body{word-break:keep-all;overflow-wrap:break-word}
p,li{text-wrap:pretty}
h1,h2,h3{text-wrap:balance}
#questSay{white-space:pre-line;text-wrap:balance}

/* 산마루: 야호·종이비행기·망원경 */
#ridgeBar{position:fixed;z-index:6;left:50%;transform:translateX(-50%);bottom:calc(184px + env(safe-area-inset-bottom));display:flex;gap:6px}
#ridgeBar button,#yahoRe{padding:9px 13px;border:1px solid rgba(255,214,150,.45);border-radius:999px;background:rgba(36,28,20,.82);color:#fff3dc;font:700 14px 'Pretendard Variable',sans-serif;white-space:nowrap;backdrop-filter:blur(6px)}
body.pre #ridgeBar,body.pre #yahoRe{display:none}
#yahoRe{position:fixed;z-index:7;left:50%;transform:translateX(-50%);top:calc(190px + env(safe-area-inset-top));border-color:#ffd27a;box-shadow:0 0 18px rgba(255,200,110,.6);animation:zaPulse .6s ease-in-out infinite alternate}
#scope{position:fixed;inset:0;z-index:20;touch-action:none;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;padding-bottom:calc(28px + env(safe-area-inset-bottom))}
#scope .sc-ring{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 42%,transparent 0,transparent 36vmin,rgba(10,8,6,.7) 37vmin,rgb(10,8,6) 39vmin)}
#scopeWhat{position:relative;margin:0 0 4px;color:#fff3dc;font:700 15px 'Pretendard Variable',sans-serif;text-shadow:0 1px 4px #000}
#scope .sc-row{position:relative;display:flex;gap:6px}
#scope button{padding:9px 13px;border:1px solid rgba(255,214,150,.45);border-radius:999px;background:rgba(36,28,20,.85);color:#fff3dc;font:700 14px 'Pretendard Variable',sans-serif}
#planeWish{width:100%;box-sizing:border-box;padding:12px;border:1px solid rgba(120,96,60,.3);border-radius:12px;font:500 16px 'Pretendard Variable',sans-serif;margin:4px 0 10px}
.pf-wish{font:700 19px/1.45 'Gowun Batang',serif;color:#3a2a1c;text-align:center;word-break:keep-all;margin:6px 0 2px}.pf-meta{text-align:center;font-size:12.5px;opacity:.6;margin:0 0 10px}
#plane .post-lead,#planeFound .post-lead{margin:2px 0 12px;font-size:13.5px;line-height:1.6;word-break:keep-all}#plane .post-lead small{opacity:.65}

/* 내 돌탑 키우기: 단계·경험치·꾸미기·친구 응원 돌 */
#mineLv{margin:4px 0 10px;padding:12px;border-radius:14px;background:#fbf4e4;border:1px solid rgba(120,96,60,.2)}
.lv-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.lv-top b{font:700 17px 'Gowun Batang',serif;color:#3a2a1c}.lv-top span{font-size:12.5px;color:#8a7a62;white-space:nowrap}
.lv-bar{height:8px;border-radius:99px;background:rgba(120,96,60,.15);overflow:hidden;margin:7px 0 5px}.lv-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#d9a93c,#c9473a);transition:width .6s}
#lvNext{display:block;font-size:12.5px;color:#6b5a48;word-break:keep-all}
.lv-how{margin:6px 0 0;font-size:12px;color:#8a7a62}.lv-how summary{cursor:pointer}.lv-how p{margin:4px 0 0;line-height:1.6;word-break:keep-all}
.lv-deco{margin:10px 0 8px}.lv-deco>b{font-size:14px;color:#3a2a1c}.lv-deco>small{display:block;font-size:12px;color:#8a7a62;margin:1px 0 6px}
#decoList{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.dc{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 2px;border:1px solid rgba(120,96,60,.22);border-radius:12px;background:#fffaf0;color:#3a3026;font:inherit}
.dc i{font-style:normal;font-size:22px}.dc b{font-size:12.5px}.dc small{font-size:11px;color:#8a7a62}.dc.on{border-color:#c9473a;background:#fff1e6}.dc.off{opacity:.55}
#tvCanvas{display:block;width:100%;max-width:320px;height:auto;margin:2px auto 4px;border-radius:12px;background:#efe6d2}
/* 지금 몇 명과 함께 있는지: 날씨 칸과 같은 너비·높이·간격의 초록 배지 */
#liveN{display:flex;align-items:center;width:100%;box-sizing:border-box;min-height:30px;margin-top:6px;padding:0 12px 0 10px;border-radius:999px;background:rgba(74,222,128,.14);border:1px solid rgba(74,222,128,.42);color:#dcf7e3;font:600 12.5px/1 'Pretendard Variable',sans-serif;white-space:nowrap;transform-origin:left center}
#liveN i{flex:none;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#4ade80;animation:livePulse 1.8s ease-out infinite}
#liveN b{margin:0 1px 0 5px;font:800 17px/1 'Pretendard Variable',sans-serif;color:#fff;font-variant-numeric:tabular-nums}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(74,222,128,.75)}70%{box-shadow:0 0 0 7px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
#liveN.bump{animation:liveBump .6s ease-out}#liveN.bump.up{background:rgba(74,222,128,.3)}
@keyframes liveBump{0%{transform:scale(1)}35%{transform:scale(1.06)}100%{transform:scale(1)}}
#roomTag::before{content:'';display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#4ade80;vertical-align:1px;animation:livePulse 1.8s ease-out infinite}
@media (prefers-reduced-motion:reduce){#liveN i,#roomTag::before,#liveN.bump{animation:none}}
/* ===== UI v2: 화면을 덜 가리는 HUD (따뜻한 밤 유리 + 금빛 한 색, 선 아이콘) ===== */
:root{--g2:rgba(22,17,12,.52);--g2line:rgba(255,240,215,.16);--g2muted:rgba(255,240,215,.68);--gold:#f0cf8d;--gold-ink:#3a2a14}
.v2g{background:var(--g2)!important;border:1px solid var(--g2line)!important;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2)}
/* 위 왼쪽 카드 */
.tb-l{width:208px!important;min-width:0!important;padding:12px 14px!important;border-radius:16px!important}
.tb-l .tb-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.tb-l .brand{font-size:19px}.tb-l .tb-stat{margin:0;font-size:12px;color:var(--g2muted);opacity:1}
.tb-l .tb-row{display:flex;gap:6px;margin-top:10px}
.tb-l #liveN{width:auto;margin:0;flex:none;min-height:28px;padding:0 10px 0 9px;font-size:12px}
.tb-l #liveN b{font-size:15px;margin:0 0 0 4px}
.tb-l #wxBtn{width:auto!important;flex:1;min-width:0;margin:0;min-height:28px;padding:0 4px 0 8px;font-size:12px;overflow:hidden}
.tb-l #wxBtn .wx-loc{width:18px;height:18px;font-size:9px;flex:none}.tb-l #wxBtn span:not(.wx-e):not(.wx-loc){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.tb-l .tb-goal{margin-top:10px}.tb-l .tb-goaltxt{font-size:11.5px}
/* 위 오른쪽: 같은 크기 동그라미를 세로로 */
.tb-r{flex-direction:column;align-items:flex-end!important;gap:8px!important}
.tb-pill{flex-direction:column;gap:8px!important;padding:0!important;background:none!important;border:0!important;-webkit-backdrop-filter:none;backdrop-filter:none}
.tb-pill .tb-btn{width:44px!important;height:44px!important;min-height:44px!important;border-radius:50%!important;background:var(--g2)!important;border:1px solid var(--g2line)!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:grid;place-items:center;color:#fff7ea}
.tb-btn svg.ln,#dock svg,#act svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tb-btn svg.ln{width:21px;height:21px}
/* 아래 독 */
#sub{display:none!important}
#dock{bottom:calc(12px + env(safe-area-inset-bottom))!important;grid-template-columns:repeat(5,1fr)!important;height:68px;padding:0 4px!important;border-radius:22px!important}
#dock button{color:var(--g2muted)!important;font-size:11.5px!important;gap:5px!important;min-height:60px!important;position:relative}
#dock button:active{color:#fff!important}
#dock svg{width:22px!important;height:22px!important}
/* 아래 오른쪽 행동 버튼 */
#act{position:fixed;z-index:6;right:14px;bottom:calc(96px + env(safe-area-inset-bottom));width:170px;height:152px;pointer-events:none}
#act button{position:absolute;pointer-events:auto;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#fff7ea;font:600 10.5px 'Pretendard Variable',sans-serif;padding:0;border:1px solid var(--g2line);background:var(--g2);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:52px;height:52px;min-height:0;box-shadow:none;transition:transform .15s ease-out}
#act button:active{transform:scale(.94)}
#act button svg{width:20px;height:20px}
#act #stone{right:0;bottom:0;width:80px;height:80px;border:0;background:radial-gradient(circle at 35% 30%,#fbe6b8,#f0cf8d 55%,#d9ad5f)!important;color:var(--gold-ink)!important;font:800 11.5px 'Pretendard Variable',sans-serif!important;box-shadow:0 6px 18px rgba(0,0,0,.35),inset 0 -3px 0 rgba(0,0,0,.12)!important}
#act #stone svg{width:28px;height:28px;stroke-width:2}
#act #stone span{max-width:72px;white-space:nowrap;font:inherit}
body.exam #act #stone{font-family:'Pretendard Variable',sans-serif!important;font-size:11px!important;border:0!important}
#act #btnHi{right:90px;bottom:2px}#act #btnSit{right:72px;bottom:64px}#act #btnPlace{right:16px;bottom:96px}
#act #btnPlace::after{display:none}
#act button.on,#act #btnSit.on{background:rgba(240,207,141,.28)!important;border-color:rgba(240,207,141,.6)!important}
#placeMenu{position:fixed!important;right:12px!important;left:auto!important;bottom:calc(256px + env(safe-area-inset-bottom))!important;z-index:8}
/* 방향 조이스틱 */
#joy{position:fixed;z-index:6;left:20px;bottom:calc(100px + env(safe-area-inset-bottom));width:116px;height:116px;border-radius:50%;background:rgba(22,17,12,.28);border:1.5px solid rgba(255,240,215,.22);touch-action:none}
#joy i{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(255,247,234,.88);box-shadow:0 4px 14px rgba(0,0,0,.35);transition:transform .12s ease-out;pointer-events:none}
#joy.on i{transition:none}
#joy b{position:absolute;width:0;height:0;border:5px solid transparent;opacity:.55}
#joy b:nth-of-type(1){left:50%;top:9px;margin-left:-5px;border-bottom-color:#fff7ea}#joy b:nth-of-type(2){left:50%;bottom:9px;margin-left:-5px;border-top-color:#fff7ea}#joy b:nth-of-type(3){top:50%;left:9px;margin-top:-5px;border-right-color:#fff7ea}#joy b:nth-of-type(4){top:50%;right:9px;margin-top:-5px;border-left-color:#fff7ea}
@media (hover:hover) and (pointer:fine){#joy{opacity:.75}}
body.pre #act,body.pre #joy,body.visiting #act,body.visiting #joy{display:none}
body:has(.modal:not([hidden])) #joy,body:has(.modal:not([hidden])) #act{visibility:hidden}
/* 겹치지 않게 위로 올린 것들 */
#feed{bottom:calc(232px + env(safe-area-inset-bottom))!important}
#emoBar{bottom:calc(254px + env(safe-area-inset-bottom))!important}
#zoneAct{bottom:calc(262px + env(safe-area-inset-bottom))!important}
#ranger{bottom:calc(232px + env(safe-area-inset-bottom))!important}
#skipBtn{position:fixed!important;bottom:calc(262px + env(safe-area-inset-bottom))!important;z-index:6}
#dock>button{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;width:auto!important;height:auto!important;margin:0!important;background:none!important;box-shadow:none!important;border:0!important;padding:0!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}
#dock>button span{display:block;line-height:1.1}
#ridgeBar{bottom:calc(262px + env(safe-area-inset-bottom))!important}
body:has(#ridgeBar:not([hidden])) #zoneAct{bottom:calc(316px + env(safe-area-inset-bottom))!important}
#yahoRe{bottom:calc(316px + env(safe-area-inset-bottom))!important}
.tb-l #wxBtn{gap:4px;padding-right:3px}.tb-l #wxBtn .wx-loc{margin-left:auto}
/* 장소 칩·안내는 조이스틱·행동 버튼보다 앞에, 모닥불 표정 줄이 있으면 그 위로 / 알림은 위 카드 아래로 */
#zoneAct,#ridgeBar,#skipBtn,#yahoRe,#emoBar,#ranger,#feed,#tapBtn{z-index:8!important}
body:has(#emoBar:not([hidden])) #zoneAct,body:has(#emoBar:not([hidden])) #skipBtn{bottom:calc(304px + env(safe-area-inset-bottom))!important}
#notice{top:calc(var(--hudB,170px) + 8px)!important;max-width:calc(100% - 32px)!important;z-index:9}
/* 다른 사람 돌을 구경하는 동안엔 홈 화면 추가 안내를 숨김 (방문 카드를 가림) */
body.visiting #a2hs{display:none!important}
/* 망원경을 보는 동안엔 망원경 버튼만 (원 안에 위 카드·버튼이 비치지 않게) */
body.scoping :is(#topbar,#examBar,#questBtn,#opBtn,#dock,#sub,#act,#joy,#zoneAct,#ridgeBar,#yahoRe,#skipBtn,#emoBar,#ranger,#feed,#tapBtn,#notice,#placeMenu,#a2hs,#roomTag,.label,.me-mark){visibility:hidden!important}
/* 멍때리기: 화면을 비우고 시간·한 줄만 */
body.meong>*:not(canvas):not(#meong){visibility:hidden!important}
#meong{position:fixed;inset:0;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;padding-bottom:calc(64px + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.35));color:#fff7e6;cursor:pointer}
#meong p{margin:0;font:500 18px/1.5 'Gowun Batang',serif;text-shadow:0 1px 6px rgba(0,0,0,.6);word-break:keep-all;text-align:center;opacity:.95}
#meong p.in{animation:mIn 2.4s ease}@keyframes mIn{from{opacity:0;transform:translateY(6px)}}
#meong b{font:300 34px 'Pretendard Variable',sans-serif;letter-spacing:.04em;text-shadow:0 1px 8px rgba(0,0,0,.5)}
#meong small{font-size:12px;opacity:.6}
.tb-l #liveN{padding:0 9px 0 8px}
/* 위 카드 2줄: 소원봉·지금 N명·날씨(아이콘+기온) / D-day — 누르면 돌 수·초롱 진행이 펼쳐짐 (토스 상단 바 아래에서도 가볍게) */
.tb-l{display:flex!important;flex-wrap:wrap;align-items:center;column-gap:8px;width:auto!important;max-width:calc(100vw - 92px);padding:9px 11px 9px 13px!important;cursor:pointer;-webkit-tap-highlight-color:transparent}
.tb-l .tb-head{flex:none}.tb-l .tb-stat{display:none}
.tb-l .tb-row{margin-top:0!important;flex:none}
.tb-l #wxBtn{flex:none;width:auto!important}.tb-l #wxBtn>span:not(.wx-e):not(.wx-loc){display:inline-block!important;max-width:3.1em;overflow:hidden;text-overflow:clip;white-space:nowrap}.tb-l #wxBtn .wx-loc{display:none!important}   /* 날씨 칸: 아이콘·기온·도시 이름(세 글자까지), 누르면 내 위치 날씨 */
.tb-l .tb-goal,.tb-l .tb-goaltxt{display:none;flex-basis:100%}
.tb-l #examBar{flex-basis:100%;margin-top:7px}
.tb-l.open .tb-stat{display:block}.tb-l.open .tb-goal,.tb-l.open .tb-goaltxt{display:block}
.tb-l .tb-wxtxt{display:none;flex-basis:100%;margin-top:6px;font-size:11.5px;color:var(--g2muted,rgba(255,240,215,.66))}.tb-l.open .tb-wxtxt:not(:empty){display:block}
/* 입산 화면의 홈 화면 추가 안내 (휴대폰 웹) */
#hsGate{position:fixed;z-index:21;left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom));max-width:440px;margin:0 auto;display:grid;grid-template-columns:48px 1fr;gap:10px 12px;padding:14px 14px 12px;border-radius:18px;background:#f3ead7;color:#221d17;box-shadow:0 10px 34px rgba(0,0,0,.45);font-family:'Pretendard Variable',system-ui,sans-serif;word-break:keep-all}
#hsGate[hidden]{display:none}
#hsGate img{width:48px;height:48px;border-radius:12px}
#hsGate .hs-t{display:flex;flex-direction:column;gap:3px;min-width:0}#hsGate .hs-t b{font-size:15.5px;font-weight:800}#hsGate .hs-t small{font-size:12.5px;line-height:1.4;opacity:.72}
#hsHow{grid-column:1/-1;font-size:13.5px;line-height:1.5;background:rgba(34,29,23,.06);border-radius:12px;padding:10px 12px}#hsHow:empty{display:none}
#hsHow ol{margin:0;padding-left:20px}#hsHow li{margin:2px 0}#hsHow .hs-s{font-size:12.5px;opacity:.8}
#hsHow .hs-i{width:17px;height:17px;vertical-align:-3px;stroke:#2f6fd6;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}#hsHow .hs-k{display:inline-block;padding:0 5px;border-radius:5px;background:rgba(34,29,23,.1)}
#hsGate .hs-b{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}
#hsGate .hs-b button{min-height:42px;padding:0 16px;border:0;border-radius:12px;font:700 14px 'Pretendard Variable',system-ui,sans-serif;background:rgba(34,29,23,.08);color:#221d17}
#hsGate #hsGo{background:#221d17;color:#fff7e8}
/* 입산 화면 이어하기 */
#gateRestore{display:flex;flex-direction:column;align-items:center;gap:8px;width:min(320px,100%);color:#f3ead7;text-align:center}#gateRestore[hidden]{display:none}
#gateRestore small{font-size:12.5px;opacity:.85;word-break:keep-all}
#gateRestore .gr-row{display:flex;gap:6px;width:100%}#gateRestore input{flex:1;min-width:0;height:42px;padding:0 12px;border-radius:12px;border:1px solid rgba(243,234,215,.5);background:rgba(10,8,6,.55);color:#fff7ea;font:600 15px 'Pretendard Variable',system-ui,sans-serif}
#gateRestore button{height:42px;padding:0 14px;border:0;border-radius:12px;background:#f3ead7;color:#221d17;font:700 14px 'Pretendard Variable',system-ui,sans-serif}
/* 위 카드 둘째 줄: 지금까지 쌓은 돌 수 + 작은 수능 배지 (막대 대신) */
.tb-l .tb-head{order:1}.tb-l .tb-row{order:2}.tb-l::after{content:'';order:3;flex-basis:100%;height:0}
.tb-l>.tb-stat{display:block!important;order:4;margin-top:7px;font-size:12.5px;font-weight:600;color:rgba(255,240,215,.78);white-space:nowrap}.tb-l>.tb-stat b{color:var(--gold,#f0cf8d);font-size:14px;font-weight:800}
.tb-l #examBar{order:5;flex-basis:auto!important;width:auto!important;margin:7px 0 0 auto!important;padding:2px 8px!important;gap:5px!important;border-radius:999px!important}
.tb-l #examBar .ex-d{font-size:13px!important}.tb-l #examBar .ex-t small{display:none}.tb-l #examBar .ex-t em{font-size:11.5px!important}
.tb-l .tb-wxtxt,.tb-l .tb-goal,.tb-l .tb-goaltxt{order:6}
/* 접혀 있어도 얇은 초롱 진행 막대는 늘 보이게, 오른쪽 아래 작은 펼침 표시 */
.tb-l{position:relative!important;padding-bottom:12px!important}
.tb-l .tb-goal{display:block!important;order:7!important;height:3px!important;margin-top:9px!important;margin-right:18px}
.tb-l .tb-goaltxt{order:6!important;margin-top:7px}
.tb-l::before{content:'';position:absolute;right:11px;bottom:9px;width:6px;height:6px;border-right:1.8px solid rgba(255,240,215,.7);border-bottom:1.8px solid rgba(255,240,215,.7);transform:rotate(45deg);transition:transform .2s ease-out}
.tb-l.open::before{transform:translateY(3px) rotate(-135deg)}
/* 위 카드 정렬: 안쪽 여백 12px, 한 줄 높이 28px(첫 줄)·24px(둘째 줄), 알약 안쪽 간격 통일, 오른쪽 끝선을 한 줄로 */
.tb-l{padding:12px 12px 12px 14px!important;column-gap:0!important}
.tb-l .tb-head{display:flex;align-items:center;height:28px}.tb-l .brand{font-size:20px!important;line-height:28px!important;margin:0!important}
.tb-l .tb-row{display:flex!important;align-items:center;gap:6px!important;margin-left:auto!important;padding-left:10px}
.tb-l #liveN,.tb-l #wxBtn{display:inline-flex!important;align-items:center;justify-content:center;gap:5px!important;height:28px!important;min-height:28px!important;padding:0 11px!important;margin:0!important;border-radius:999px!important;font-size:12.5px!important;line-height:1!important;box-sizing:border-box}
.tb-l #liveN b,.tb-l #wxBtn b{font-size:14.5px!important;line-height:1!important;margin:0!important}
.tb-l #liveN i{margin:0 2px 0 0!important}
.tb-l #wxBtn .wx-e{font-size:15px;line-height:1}
.tb-l>.tb-stat{margin-top:8px!important;height:24px;line-height:24px!important;font-size:12.5px!important}
.tb-l>.tb-stat b{font-size:14.5px!important}
.tb-l #examBar{display:inline-flex!important;align-items:center;height:24px;margin-top:8px!important;padding:0 10px!important;gap:5px!important;box-sizing:border-box}
.tb-l #examBar .ex-d{font-size:13px!important;line-height:1!important}.tb-l #examBar .ex-t{align-items:center!important}.tb-l #examBar .ex-t em{font-size:12px!important;line-height:1!important}
.tb-l .tb-wxtxt,.tb-l .tb-goaltxt{margin-top:8px!important;font-size:12px!important;line-height:18px!important}
.tb-l .tb-goal{margin-top:10px!important;margin-right:22px!important}
.tb-l::before{right:14px!important;bottom:12px!important}
.tb-l.open::before{bottom:9px!important;transform:rotate(-135deg)!important}
.tb-l #liveN{gap:0!important;padding:0 10px 0 9px!important}.tb-l #liveN i{margin-right:6px!important}.tb-l #liveN span:first-of-type{margin-right:4px}.tb-l #liveN b+span{margin-left:1px}
.tb-l #wxBtn{gap:4px!important;padding:0 10px 0 8px!important}
.tb-l .tb-row{padding-left:8px!important;gap:5px!important}
/* ===== 토스판 밝은 테마 (비게임 가이드: 라이트 모드). 3D 풍경은 그대로, 위에 얹는 카드·버튼·창만 밝게 ===== */
html.toss-light{--g2:rgba(255,252,246,.92);--g2line:rgba(60,45,30,.12);--g2muted:rgba(43,34,25,.62)}
html.toss-light .v2g,html.toss-light .tb-pill .tb-btn,html.toss-light #dock,html.toss-light #act button:not(#stone),html.toss-light #zoneAct,html.toss-light #ridgeBar button,html.toss-light #emoBar button,html.toss-light #notice,html.toss-light #yahoRe,html.toss-light #skipBtn,html.toss-light #placeMenu button,html.toss-light #questBtn{background:rgba(255,252,246,.94)!important;color:#2b2219!important;border-color:rgba(60,45,30,.12)!important;box-shadow:0 4px 16px rgba(40,30,20,.16)!important;text-shadow:none!important}
html.toss-light .tb-l .brand{color:#2b2219!important;text-shadow:none!important}
html.toss-light .tb-l>.tb-stat{color:rgba(43,34,25,.7)!important}html.toss-light .tb-l>.tb-stat b{color:#a8761f!important}
html.toss-light .tb-l .tb-wxtxt,html.toss-light .tb-l .tb-goaltxt{color:rgba(43,34,25,.72)!important}html.toss-light .tb-l .tb-goaltxt b{color:#a8761f!important}
html.toss-light .tb-l #liveN{background:#e6f6ea!important;border-color:#9fd8ad!important;color:#1f5a2e!important}html.toss-light .tb-l #liveN b{color:#13401f!important}
html.toss-light .tb-l #wxBtn{background:rgba(43,34,25,.06)!important;border-color:rgba(43,34,25,.1)!important;color:#2b2219!important}
html.toss-light .tb-l .tb-goal{background:rgba(43,34,25,.1)!important}html.toss-light .tb-l .tb-goal i{background:#d9a441!important}
html.toss-light .tb-l::before{border-color:rgba(43,34,25,.55)!important}
html.toss-light #dock button{color:rgba(43,34,25,.6)!important}html.toss-light #dock button:active{color:#2b2219!important}
html.toss-light #act button.on{background:#fbe9c4!important;border-color:#e2bf78!important}
html.toss-light #joy{background:rgba(255,252,246,.55)!important;border-color:rgba(60,45,30,.22)!important}
html.toss-light #joy i{background:#fff!important;box-shadow:0 3px 10px rgba(40,30,20,.25)!important}
html.toss-light #joy b:nth-of-type(1){border-bottom-color:#5a4a38!important}html.toss-light #joy b:nth-of-type(2){border-top-color:#5a4a38!important}html.toss-light #joy b:nth-of-type(3){border-right-color:#5a4a38!important}html.toss-light #joy b:nth-of-type(4){border-left-color:#5a4a38!important}
/* 갈 곳 메뉴를 여는 동안엔 위 알림(도장 쾅 등)을 숨겨 메뉴 항목을 가리지 않게 */
body:has(#placeMenu:not([hidden])) #notice{display:none!important}
/* 갈 곳 메뉴: 위 카드에 겹치지 않게 높이를 화면에 맞추고 넘치면 스크롤 */
#placeMenu{max-height:calc(100dvh - var(--hudB,170px) - 12px - 256px - env(safe-area-inset-bottom))!important;overflow-y:auto!important;overscroll-behavior:contain}
html.toss-light #placeMenu{background:rgba(250,245,235,.97)!important}
/* 야호로 받아치기: 둥근 알약 크기 고정 (밝은 테마·다른 버튼 규칙에 늘어나지 않게) */
#yahoRe{top:auto!important;width:auto!important;height:auto!important;min-height:0!important;max-width:calc(100vw - 32px);white-space:nowrap;line-height:1.2;padding:10px 16px!important;border-radius:999px!important}
html.toss-light #yahoRe{background:#fff7e3!important;border:1px solid #e2bf78!important;color:#5a3d12!important;box-shadow:0 4px 16px rgba(201,150,60,.35)!important}
/* 토스판엔 입산 화면 '이어하기'가 없으니 이어하기 코드 안내도 숨김 (토스 계정으로 저절로 이어짐) */
html.toss-light #mineKeep small{display:none!important}
/* 홈 화면 안내 카드가 뜨면 입산 화면 글자를 위로 올려 카드에 가려지지 않게 */
body:has(#hsGate:not([hidden])) .gate-in{transform:translateY(calc(-1 * min(110px, 13vh)))}
/* 입산 화면: 소리 켜기 안내 한 줄 */
.gate-snd{display:flex;align-items:center;gap:6px;margin-top:-6px;font:500 12.5px/1.4 'Pretendard Variable',system-ui,sans-serif;color:rgba(255,247,234,.82);text-shadow:0 1px 6px rgba(0,0,0,.6);word-break:keep-all;text-align:center}
.gate-snd svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* 소원나무: 소원지 묶기 · 덕담 뽑기 창 */
#wishSlip,#omikuji{z-index:30}
.ws-in{max-width:360px}.ws-q{margin:6px 0 12px;font-weight:700;display:flex;align-items:center;gap:8px;word-break:keep-all}
.ws-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ws-cols button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;border:1px solid var(--line,rgba(0,0,0,.12));border-radius:12px;background:#fffaf0;color:#2b2219;font:700 15px 'Pretendard Variable',system-ui,sans-serif;text-align:left}
.ws-cols button i,#wsDot{display:inline-block;width:18px;height:18px;border-radius:5px;border:1px solid rgba(0,0,0,.15)}.ws-cols button small{font-weight:500;font-size:12px;opacity:.7}.ws-cols .wide{grid-column:1/-1}
#wsStep2 input{width:100%;box-sizing:border-box;height:46px;padding:0 12px;border:1px solid rgba(0,0,0,.15);border-radius:12px;font:600 16px 'Pretendard Variable',system-ui,sans-serif;margin-bottom:10px}
#wsStep2 .go,.omi-in .go{width:100%}#wsMsg{display:block;margin-top:8px;color:#a8322a;min-height:1em}
.omi-in{text-align:center;max-width:320px}.omi-k{display:block;font:700 15px 'Pretendard Variable',sans-serif;color:#a8322a;margin-bottom:10px}#omiText{font:700 22px/1.45 'Gowun Batang',serif;margin:6px 0 12px;word-break:keep-all}.omi-in small{display:block;margin-bottom:12px;opacity:.65}
.omi-in .go,#wsTie{min-height:46px;border:0;border-radius:12px;background:#2b2219;color:#fff7e8;font:700 15px 'Pretendard Variable',system-ui,sans-serif}
/* 별똥별 모임 띠: 위 카드 아래, 한 번 누르면 산마루로 */
#rushBar{position:fixed;z-index:9;left:50%;transform:translateX(-50%);top:calc(var(--hudB,170px) + 8px);display:flex;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:7px 7px 7px 14px;border-radius:999px;background:rgba(22,24,48,.88);color:#fff7ea;border:1px solid rgba(255,226,150,.45);box-shadow:0 6px 20px rgba(0,0,0,.35);font:700 13px 'Pretendard Variable',system-ui,sans-serif;white-space:nowrap}
#rushBar[hidden]{display:none}#rushBar .rb-t{overflow:hidden;text-overflow:ellipsis}
#rushBar button{flex:none;height:32px;padding:0 13px;border:0;border-radius:999px;background:linear-gradient(180deg,#ffe39a,#f0c060);color:#2b2219;font:800 13px 'Pretendard Variable',system-ui,sans-serif}
body:has(#rushBar:not([hidden])) #notice{top:calc(var(--hudB,170px) + 58px)!important}
body.scoping #rushBar,body:has(#play:not([hidden])) #rushBar{visibility:hidden}
.gate-rush{margin-top:-10px;color:rgba(255,236,190,.9)}
/* 안드로이드 웹뷰·크롬에서 누를 때 남는 파란 상자 없애기 (누른 느낌은 각 버튼의 :active 로) */
html{-webkit-tap-highlight-color:transparent}*{-webkit-tap-highlight-color:transparent}
button:active,.modal button:active,#dock button:active{filter:brightness(.92)}
/* 덕담 쪽지: 위에서 아래로 펼쳐짐 */
.omi-in.unroll{animation:omiUnroll .55s cubic-bezier(.2,.8,.2,1)}@keyframes omiUnroll{from{clip-path:inset(0 0 100% 0);transform:translateY(-8px)}to{clip-path:inset(0 0 0 0);transform:none}}
.omi-k #omiNo{font-weight:600;opacity:.7;margin-left:4px}
.omi-row{display:flex;gap:8px}.omi-row button{flex:1;min-height:46px;border-radius:12px;font:700 15px 'Pretendard Variable',system-ui,sans-serif}
#omiShare{border:1px solid rgba(43,34,25,.2);background:#fffaf0;color:#2b2219}
@media (prefers-reduced-motion:reduce){.omi-in.unroll{animation:none}}
