/* Shared mobile layout; dungeon HUD responsive rules live in battle.css. */
@media (max-width:760px),(max-height:500px) and (orientation:landscape){body[data-scene="camp"] .game-header{flex-wrap:nowrap;gap:8px}body[data-scene="camp"] .game-brand{gap:7px;min-width:0}body[data-scene="camp"] .game-brand b{font-size:clamp(16px,4.4vw,21px);letter-spacing:.09em}body[data-scene="camp"] .game-brand small{display:none}body[data-scene="camp"] .header-actions{flex-wrap:nowrap;flex-shrink:0;gap:6px}body[data-scene="camp"] .header-actions button{display:grid;width:44px;height:44px;place-items:center;padding:0}body[data-scene="camp"] #journalOpen .ui-icon{width:22px;height:22px}body[data-scene="camp"] .journal-label{display:none}.room-followup button{min-height:44px;font-size:13px}.room-hotspot::after{max-width:none;padding:5px 7px;font-size:12px;white-space:nowrap;opacity:1;transform:translateX(-50%)}.room-hotspot--haru::after{bottom:12%}.room-hotspot--monitor::after{bottom:5%}.room-hotspot--whiteboard::after{bottom:0}.room-hotspot--bestiary::after{right:0;bottom:0;left:auto;transform:none}.room-start{top:auto;bottom:7%;min-height:44px;font-size:13px}:is(#characterDialog,#journalDialog){width:calc(100vw - 12px);max-width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}:is(#characterDialog,#reviewDialog:has(.record-preview))>.dialog-header{position:sticky;z-index:3;top:-15px;margin:-14px -14px 10px;padding:12px 14px;background:#19251f}:is(#characterDialog,#reviewDialog:has(.record-preview)){padding:14px}#skillDialog .skill-art{height:90px}#skillDialog .skill-art img{width:64px;height:64px}}
@media (max-width:760px) and (orientation:portrait){body[data-scene="camp"] .game{display:grid;min-height:100svh;grid-template-areas:"header" "room" "followup" "footer";grid-template-rows:auto 1fr auto auto;gap:0;padding:env(safe-area-inset-top) 0 0;background:#0a1514}body[data-scene="camp"] :is(.game-topbar,.scene-heading,.location){display:contents}body[data-scene="camp"] .game-header{grid-area:header;padding:8px max(14px,env(safe-area-inset-right)) 8px max(14px,env(safe-area-inset-left))}body[data-scene="camp"] :is(#chapterLabel,#locationCopy){display:none}body[data-scene="camp"] #locationName{grid-area:room;align-self:start;z-index:3;display:-webkit-box;max-width:calc(100% - 32px);margin:18px 16px;overflow:hidden;color:#fff0d0;font-size:21px;line-height:1.35;text-shadow:0 2px 8px #000;pointer-events:none;-webkit-box-orient:vertical;-webkit-line-clamp:2}body[data-scene="camp"] #locationName::after{content:'의 방'}body[data-scene="camp"] .scene-area{grid-area:room;display:flex;width:100%;border:0;background:none;box-shadow:none;aspect-ratio:auto}body[data-scene="camp"] #world{display:none}body[data-scene="camp"] .room-hotspots{position:relative;inset:auto;display:flex;flex-direction:column;width:100%}body[data-scene="camp"] .room-art{position:relative;display:block;flex-shrink:0;width:100%;background:url('/assets/gamer/haru-room-mobile-v1.png') center / cover no-repeat;aspect-ratio:2 / 3}body[data-scene="camp"] .room-art::before{content:'';position:absolute;inset:0;background:linear-gradient(#04100d88,transparent 18% 70%,#0a1514);pointer-events:none}body[data-scene="camp"] .room-greeting{z-index:1;right:20px;bottom:16px;left:20px;width:auto;height:auto;overflow:visible;clip:auto;text-shadow:0 2px 8px #000;pointer-events:none}body[data-scene="camp"] #roomGamerName{display:block;overflow:hidden;color:#f1cc81;font-size:18px;text-overflow:ellipsis;white-space:nowrap}body[data-scene="camp"] #roomGamerLine{margin:5px 0 0;color:#fff1d7;font-size:18px;line-height:1.5;word-break:keep-all}body[data-scene="camp"] .room-hotspot{width:clamp(84px,26vw,124px);height:76px;min-width:44px;min-height:44px;transform:translate(-50%,-50%)}body[data-scene="camp"] .room-hotspot::before{top:20px;width:17px;height:17px;border-color:#f0d28c;box-shadow:0 0 0 3px #8b713e99,0 0 13px #ebca7e80}body[data-scene="camp"] .room-hotspot::after{right:auto;bottom:5px;left:50%;padding:6px 8px;border-color:#ab945e;border-radius:3px;font-size:14px;transform:translateX(-50%)}body[data-scene="camp"] .room-hotspot:focus-visible{outline:2px solid #ffe7a9;outline-offset:2px}body[data-scene="camp"] .room-hotspot--haru{left:23%;top:51%}body[data-scene="camp"] .room-hotspot--monitor{left:60%;top:44%}body[data-scene="camp"] .room-hotspot--whiteboard{left:74%;top:23%}body[data-scene="camp"] .room-hotspot--bestiary{left:82%;top:75%}body[data-scene="camp"] .room-hotspot--companions{left:17%;top:24%}body[data-scene="camp"] .room-departure{display:grid;flex:1;align-content:center;gap:12px;padding:14px max(16px,env(safe-area-inset-right)) 18px max(16px,env(safe-area-inset-left));border-top:1px solid #334337;background:#0a1514}body[data-scene="camp"] #roomPreparation{display:flex;align-items:center;justify-content:center;gap:16px;margin:0;color:#e6d8b8;font-size:14px;text-align:center}body[data-scene="camp"] #roomPreparation::before,body[data-scene="camp"] #roomPreparation::after{content:'';flex:1;height:1px;background:#6c6241}body[data-scene="camp"] .room-start{position:static;width:100%;min-height:52px;border-radius:6px;background:linear-gradient(120deg,#dcc486,#b59b61);box-shadow:inset 0 1px #fbe6ae;font-size:18px;transform:none}body[data-scene="camp"] #roomFollowup{grid-area:followup;margin:0;padding:0 16px}body[data-scene="camp"] .room-connection:not(:has([data-attention="true"])){display:none}body[data-scene="camp"] #roomFollowup:has(:is(#roomMemory,#roomPrevious):not([hidden]),[data-attention="true"]){padding-block:8px;border-top:1px solid #334337}body[data-scene="camp"] .camp-footer{grid-area:footer;padding:0 16px max(8px,env(safe-area-inset-bottom))}body[data-scene="camp"] .dev-badge{top:6px;bottom:auto;max-width:48%;font-size:10px}}
@media (max-height:500px) and (orientation:landscape){body[data-scene="camp"] .game{gap:8px;padding:8px max(16px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}body[data-scene="camp"] .scene-heading{margin-top:6px}body[data-scene="camp"] .location h1{margin:0;font-size:20px}body[data-scene="camp"] :is(#chapterLabel,#locationCopy){display:none}body[data-scene="camp"] .room-connection:not(:has([data-attention="true"])){display:none}body[data-scene="camp"] #roomFollowup{margin:0}}
