:root{color-scheme:light;--ink:#34483d;--muted:#748174;--paper:#f7f5ec;--line:#dddccf;--green:#405d4b;--accent:#c3925e;font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#c5cfb8}button{font:inherit;color:inherit;border:1px solid var(--line);border-radius:12px;background:#f7f5ec;min-height:46px;padding:11px 18px;cursor:pointer;transition:background .2s,transform .2s}button:hover:not(:disabled){background:#e6eadf;transform:translateY(-1px)}button:focus-visible{outline:3px solid #b28852;outline-offset:3px}button:disabled{opacity:.4;cursor:default}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover:not(:disabled){background:#314c3c}button[hidden],[hidden]{display:none!important}#scene,#labels{position:fixed;inset:0}#scene canvas{display:block;width:100%;height:100%;touch-action:none}#labels{pointer-events:none;overflow:hidden}.topbar{position:fixed;top:max(26px,env(safe-area-inset-top));left:32px;right:32px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand{display:flex;gap:15px;align-items:center}.brand-mark{display:block;font-size:48px;font-weight:200;position:relative;color:#536957;line-height:1}.brand-mark i{font-size:17px;position:absolute;top:11px;left:-4px;font-style:normal;color:#c28a5c}h1{font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;font-size:32px;font-weight:500;letter-spacing:4px;margin:0}h1 span{font:11px "Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;letter-spacing:3px;margin-left:10px}h2{font-size:25px;font-weight:500;margin:10px 0 16px}.brand p{font-size:11px;letter-spacing:2px;margin:8px 0 0}.weather{display:flex;gap:6px;align-items:flex-end;flex-direction:column;font-size:12px}.weather time{font-size:23px;font-variant-numeric:tabular-nums;letter-spacing:2px}.weather #population{color:#5c715e;font-size:11px}.scene-note{position:fixed;top:121px;left:34px;display:flex;gap:7px;align-items:center;font-size:11px;letter-spacing:.4px}.dot{height:5px;width:5px;background:#719273;border-radius:50%}.panel{border:1px solid #ffffffa1;background:#f7f5ecf5;box-shadow:0 18px 65px #263c2920;border-radius:22px}.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:flex-start;padding-left:9vw;background:linear-gradient(90deg,#d7ddc88a,transparent 70%)}.welcome{width:350px;padding:32px}.eyebrow{font-size:9px;letter-spacing:2px;color:#88917f}.welcome h2{font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;font-size:43px;line-height:1.4;letter-spacing:-2px;margin:22px 0}.welcome p{font-size:13px;line-height:1.9;color:#758071}.welcome fieldset{border:0;margin:25px 0;padding:0}.welcome legend{font-size:11px;margin-bottom:11px;color:#778372}#colors{display:flex;gap:12px}#colors button{width:28px;height:28px;min-height:0;padding:0;border-radius:50%;border:3px solid var(--paper)}#colors button[aria-pressed=true]{outline:1px solid #526647;outline-offset:3px}.welcome .primary{width:100%;margin:0 0 14px}.panel small{display:block;font-size:10px;color:#838c7d;line-height:1.6}.welcome small{text-align:center}.intro-caption{position:absolute;bottom:40px;right:40px;font-size:11px;letter-spacing:3px}.bottom{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 28px);text-align:center}.toolbar{display:flex;gap:7px;padding:10px;border:1px solid #ffffffb3;border-radius:19px;background:#f5f3e9ed;box-shadow:0 12px 50px #263c2920}.toolbar button{white-space:nowrap;border-color:transparent;font-size:13px}.toolbar .primary{border-color:var(--green)}.status-line{margin-bottom:12px;display:flex;justify-content:center;gap:14px;font-size:12px;text-shadow:0 1px 6px #fff}.status-line #my-name{color:#556955}.hint{font-size:10px;color:#657462;margin:10px 0 0;letter-spacing:.6px}.floating{position:fixed;bottom:155px;right:30px;width:310px;padding:20px}.sheet-title{display:flex;align-items:center;justify-content:space-between}.sheet-title h2{font-size:20px}.sheet-title button{border:0;background:transparent;font-size:24px;padding:2px 12px}.floating h2{font-size:16px}#phrase-list{display:grid;gap:6px}#phrase-list button{text-align:left;font-size:12px;min-height:36px;padding:8px 12px}.gestures{display:flex;gap:8px;margin:12px 0}.gestures button{flex:1;font-size:12px}.name-label{position:absolute;top:0;left:0;text-align:center;white-space:nowrap;font-size:10px;will-change:transform}.name-label span{padding:4px 8px;border-radius:10px;background:#f6f5ebd4;color:#52654d}.name-label.mine span{background:#48654f;color:white}.bubble{position:absolute;bottom:29px;left:50%;transform:translateX(-50%);background:#fffdf3;border-radius:12px;padding:10px 14px;font-size:12px;box-shadow:0 4px 20px #263c2920}.bubble:after{content:"";position:absolute;bottom:-5px;left:calc(50% - 5px);border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #fffdf3}dialog{color:var(--ink);padding:30px;width:370px;max-width:calc(100% - 30px);max-height:80dvh}dialog::backdrop{background:#1d352653;backdrop-filter:blur(5px)}#catch-card{text-align:center}#catch-card h2{font-size:30px;margin:0}.fish-art{font-size:80px;margin:20px 0;filter:saturate(.6)}#fish-length{font-size:19px;letter-spacing:2px}#fish-description{font-size:12px;color:var(--muted);line-height:1.7}.card-actions{display:flex;gap:8px;margin:25px 0 15px}.card-actions button{flex:1}#net{width:490px}#net p{font-size:12px;color:var(--muted)}#collection{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:24px 0}.entry{border:1px solid var(--line);border-radius:12px;padding:12px;font-size:12px}.entry span{display:block;color:var(--muted);font-size:10px;margin-top:8px}.entry.empty{background:#e9ede3}.entry .collection-art{font-size:32px;margin:0 0 8px;line-height:1.2}.entry.empty .collection-art{filter:grayscale(1) brightness(0);opacity:.3}.entry strong{font-weight:500}.entry .collection-grade{display:inline-block;border:1px solid var(--line);border-radius:8px;padding:2px 6px;margin:6px 0 0 6px;color:var(--ink)}#toast{position:fixed;left:50%;bottom:165px;transform:translateX(-50%);border-radius:30px;padding:12px 22px;background:#334f40ee;color:white;font-size:13px;text-align:center;max-width:90%;pointer-events:none;opacity:0;transition:opacity .25s;z-index:10}#toast.show{opacity:1}#fatal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:30px;width:320px;z-index:30}#fatal p{line-height:1.7;font-size:13px}.zen .hud,.zen #labels,.zen #toast{visibility:hidden;pointer-events:none}.zen #scene{cursor:crosshair}.night .topbar,.night .scene-note,.night .status-line,.night .hint{color:#e1e3ce;text-shadow:none}.night .weather #population,.night .status-line #my-name{color:#c0cebb}.night .brand-mark{color:#c0cebb}
@media(max-width:640px){.topbar{left:20px;right:20px;top:max(22px,env(safe-area-inset-top))}h1{font-size:27px}.brand p{font-size:9px;letter-spacing:1px}.brand-mark{font-size:40px}h1 span{font-size:9px;letter-spacing:2px}.scene-note{left:21px;top:110px}.weather time{font-size:19px}.overlay{padding:0 24px;justify-content:center;background:#aabda32a}.welcome{width:320px;padding:26px;background:#f7f5eceb}.welcome h2{font-size:37px;margin:17px 0}.intro-caption{bottom:25px;right:auto;left:0;width:100%;text-align:center;font-size:9px;letter-spacing:2px}.bottom{bottom:max(14px,env(safe-area-inset-bottom));width:calc(100% - 24px);max-width:450px}.toolbar{display:grid;grid-template-columns:1fr 1.4fr 1fr;padding:8px;gap:4px}.toolbar button{font-size:12px;padding:10px 5px;min-height:45px}.status-line{font-size:10px;gap:10px;margin-bottom:9px}.hint{font-size:9px}.floating{left:14px;right:14px;bottom:190px;width:auto;max-height:calc(100dvh - 220px);overflow:auto}#phrase-list{grid-template-columns:1fr 1fr}#phrase-list button{font-size:10px;padding:9px 6px}#toast{bottom:190px;width:max-content;font-size:12px}.weather{font-size:10px}.weather #population{font-size:9px}}
@media(prefers-reduced-motion:reduce){button,#toast{transition:none}}
/* 밤바다 위에서도 제목·시계는 독립된 불투명 판에 남깁니다. */
.topbar{z-index:12;background:#172e3fef;color:#f2e8d2;border-bottom:1px solid #b5d4df33;padding-top:max(16px,env(safe-area-inset-top));pointer-events:none}.topbar p,.weather{color:#c6d5dc}.scene-note{top:112px}.night .topbar{color:#f2e8d2}.brand h1,.brand p,.weather span{color:inherit}
#map-views{position:fixed;top:150px;left:16px;display:flex;gap:5px;z-index:8;flex-wrap:wrap}#map-views button{font-size:12px;padding:6px 10px;min-height:36px;background:#183747;color:#f1e5cb;border-color:#658493}.zen #map-views{display:none}
.entry{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.collection-art{width:100%;height:70px;object-fit:contain;display:block}.silhouette,.empty .collection-art{filter:brightness(0);opacity:.75}.fish-art img{height:110px;width:210px;object-fit:contain}#detail-image{display:block;width:min(100%,400px);height:190px;object-fit:contain;margin:auto}#detail-card{max-width:500px;text-align:center}#close-detail{float:right}#probabilities{width:min(94vw,740px);max-height:85dvh;overflow:auto}#probability-table{overflow:auto}#probability-table table{width:100%;border-collapse:collapse;font-size:13px}#probability-table th,#probability-table td{padding:8px 5px;border-bottom:1px solid #d4d8d2;white-space:nowrap;text-align:right}#probability-table td:first-child,#probability-table th:first-child{text-align:left}
#aquarium{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;padding:0;background:#082d44;color:#e3f1ed;overflow:hidden}#aquarium::backdrop{background:#082d44}.aquarium-head{position:absolute;top:0;left:0;right:0;z-index:3;padding:18px max(20px,env(safe-area-inset-right));padding-top:max(18px,env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:center;background:#102c3dbb}.aquarium-head h2{margin:0}.aquarium-head p{font-size:12px;margin:5px 0}#tank{position:absolute;inset:95px 0 90px;background:repeating-conic-gradient(from -10deg at 50% -10%,#bce7df10 0deg 8deg,transparent 8deg 22deg),linear-gradient(#145571,#08283f 85%,#8a947b 86%,#c0b493);overflow:hidden;touch-action:none}.swimmer{position:absolute;left:0;z-index:1;padding:0;min-height:28px;border:0;background:none!important;transition:none;cursor:pointer}.swimmer img{height:auto;width:100%;filter:drop-shadow(0 5px 5px #001d3244)}.swimmer:hover:not(:disabled){background:none;transform:none}.tank-empty{position:absolute;top:35%;width:100%;padding:24px;text-align:center;color:#e2e8d9}.tank-bubble{position:absolute;bottom:0;width:7px;height:7px;border:1px solid #c5f5ff66;border-radius:50%;animation:bubble 11s linear infinite;pointer-events:none}@keyframes bubble{to{transform:translateY(-80vh);opacity:0}}#stored-list{position:absolute;bottom:0;left:0;right:0;z-index:4;max-height:40vh;overflow:auto;background:#132f40;padding:18px}#stored-fish{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}#stored-fish button{font-size:12px}#legacy-records{font-size:12px;color:#cedbdc}
@media(max-width:640px){.topbar{padding:12px 14px;padding-top:max(12px,env(safe-area-inset-top));min-height:94px}.scene-note{top:104px;font-size:11px}#map-views{top:137px;left:10px;right:10px;justify-content:center}.toolbar{flex-wrap:wrap;justify-content:center;gap:5px}.toolbar button{padding:8px 10px;font-size:12px;min-height:40px}.hint{font-size:10px}.bottom{padding-bottom:max(10px,env(safe-area-inset-bottom))}#collection{grid-template-columns:repeat(3,minmax(0,1fr))}.entry{padding:8px;font-size:12px}.entry span{font-size:10px}}
@media(prefers-reduced-motion:reduce){.tank-bubble{animation:none}}
.topbar{top:0;left:0;right:0;padding:18px 26px;min-height:100px;background:#172e3f}.scene-note{top:113px}.toolbar{display:flex;flex-wrap:wrap}.brand,.weather{flex-shrink:0}
@media(max-width:640px){.topbar{padding:12px;min-height:96px}.brand{gap:6px}.brand h1{font-size:24px;letter-spacing:2px}.weather{font-size:9px}.weather #population{font-size:9px}.scene-note{top:108px}}

/* 폰에서도 낚시 동작 다섯 개는 한 줄에 둡니다. */
.toolbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));flex-wrap:nowrap;background:#172b35eb;border-color:#becdc35c;gap:3px}
.toolbar button{padding:10px 8px;font-size:12px;background:transparent;color:#eee9d4;border-radius:10px;min-width:0}
.toolbar .primary{background:#627a68;border-color:transparent}.toolbar button:hover:not(:disabled){background:#3c5358}
#map-views{right:16px;gap:4px}#map-views button{font-size:11px;padding:5px 9px;background:#182a35df}
.bottom{min-width:420px}.hint{letter-spacing:0}.name-label.mine span{background:#dddcc4;color:#283d36}
@media(max-width:640px){.bottom{min-width:0;width:calc(100% - 20px)}.toolbar{grid-template-columns:repeat(5,minmax(0,1fr));padding:6px}.toolbar button{font-size:11px;padding:9px 2px;min-height:48px}#map-views{top:133px;left:12px;right:12px}#map-views button{min-height:32px;padding:5px 8px}.hint{font-size:8px}.floating{bottom:136px}.status-line{padding:0 8px}}

/* 위쪽은 작은 「메뉴」 하나만 — 누르면 보기·도감·확률표·소리가 펼쳐집니다(기획 v2 1-1). */
#map-views{left:auto;right:12px;flex-direction:column;align-items:flex-end;flex-wrap:nowrap}#menu-items{display:none;flex-direction:column;gap:4px;align-items:stretch;margin-top:4px}#map-views.open #menu-items{display:flex}#menu-toggle{min-width:76px}
@media(max-width:640px){#map-views{left:auto;right:10px;top:106px}#map-views button{min-height:34px}.scene-note{max-width:60%}}

/* 바탕은 밤바다 색 — 폰 주소창이 접히며 잠깐 드러나도 티 나지 않게. */
body{background:#101e32}

/* 폰 방향키 — 산사 버튼처럼 반투명 원, 선 화살표. */
#stick{position:fixed;left:16px;bottom:calc(max(14px,env(safe-area-inset-bottom)) + 128px);width:112px;height:112px;border-radius:50%;background:#172b35a8;border:1px solid #becdc35c;z-index:9;touch-action:none;user-select:none;-webkit-user-select:none}
#stick i{position:absolute;width:11px;height:11px;border:solid #e8e3cc;border-width:2px 2px 0 0;opacity:.75}
#stick .up{top:12px;left:50%;transform:translateX(-50%) rotate(-45deg)}#stick .down{bottom:12px;left:50%;transform:translateX(-50%) rotate(135deg)}
#stick .left{left:12px;top:50%;transform:translateY(-50%) rotate(-135deg)}#stick .right{right:12px;top:50%;transform:translateY(-50%) rotate(45deg)}
#stick-knob{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:#e8e3ccd9;box-shadow:0 3px 12px #0006;pointer-events:none}
#stick.active{background:#172b35d9}
/* 폰 안내 문구는 위쪽에 — 앉은 화면에서 캐릭터 머리를 가리지 않게. */
@media(max-width:640px){#toast{bottom:auto;top:150px}}

/* 수족관 바닥 — 글자 기호 대신 선 그림 다시마·돌. 물고기보다 뒤에 둡니다. */
.tank-weed{position:absolute;bottom:9%;width:34px;margin-left:-17px;fill:none;stroke:#3f8a6b;stroke-width:5;stroke-linecap:round;opacity:.8;transform-origin:50% 100%;animation:weed 6s ease-in-out infinite alternate;pointer-events:none;z-index:0}
.tank-weed path+path{stroke:#5aa27f;stroke-width:4}
@keyframes weed{from{transform:rotate(-4deg)}to{transform:rotate(5deg)}}
.tank-rock{position:absolute;bottom:7%;margin-left:-20px;border-radius:50% 50% 42% 42%;background:radial-gradient(circle at 35% 30%,#7d8a86,#3e4b4c 70%);box-shadow:0 6px 10px #0004;pointer-events:none;z-index:0}
#close-aquarium{background:#ffffff1a;color:#eef5f0;border-color:#cfe6e4;min-height:40px;padding:8px 16px}
#close-aquarium:hover:not(:disabled){background:#ffffff33}
.fish-art img{display:block;margin:0 auto}
@media(prefers-reduced-motion:reduce){.tank-weed{animation:none}}

/* 매점(11/7 3D 실내) — 계산대 팔기 창 · 문 지날 때 어둡게 · 안에서는 낚시 버튼 대신 「매점 나가기」 */
#points{color:#f3d48a;font-size:11px;font-variant-numeric:tabular-nums}
#shop-dialog,#bag,#hall-dialog{position:fixed;inset:auto 0 0 0;margin:0 auto;width:min(560px,100%);max-width:100%;height:min(80dvh,720px);max-height:none;overflow:auto;border-radius:20px 20px 0 0;padding:16px 16px max(16px,env(safe-area-inset-bottom))}
#shop-dialog .sheet-title h2,#bag .sheet-title h2,#hall-dialog .sheet-title h2{font-size:18px;margin:4px 0}#close-shop,#close-bag,#close-hall,#hall-back{color:var(--ink);background:transparent;border:0;font-size:24px;min-height:0}
#shop-points{margin:0 0 10px;font-size:13px;color:#9a6a2a}
#shop-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;background:#ebe5d4;border-radius:12px;padding:4px;margin-bottom:12px;position:sticky;top:-16px;z-index:2}
.shop-tab{min-height:38px;padding:6px 4px;border:0;background:transparent;font-size:14px;color:#6c6555}.shop-tab[aria-selected=true]{background:#fffaf0;color:var(--ink);font-weight:600;box-shadow:0 1px 4px #0002}
.shop-sub{font-size:14px;margin:14px 0 6px;color:#6c6555;font-weight:600}.shop-empty{text-align:center;color:var(--muted);padding:40px 0}
.sell-common{width:100%;margin:2px 0 8px}
.item-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.item-card{display:flex;flex-direction:column;gap:4px;border:1px solid #e4dccb;border-radius:14px;padding:10px;background:#fffdf6}
.item-card strong{font-size:14px}.item-note{font-size:11px;color:var(--muted);line-height:1.4;min-height:30px}.item-card button{margin-top:4px;font-size:13px;min-height:40px;padding:8px}
.item-art{width:100%;aspect-ratio:1;object-fit:contain;background:radial-gradient(circle at 50% 45%,#f6e7c8,#eadbbd);border-radius:10px}
.sell-row .item-art{width:76px;height:52px;aspect-ratio:auto}
#sell-art{display:block;width:120px;height:120px;margin:0 auto 6px;border-radius:12px;background:#f0e4c9}
.sell-row{display:grid;grid-template-columns:76px 1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #e4dccb}
.sell-row img{width:76px;height:38px;object-fit:contain}.sell-row strong{display:block;font-size:14px}.sell-row span{font-size:12px;color:var(--muted)}
.sell-row button{min-height:38px;padding:6px 14px}
.sell-empty{padding:24px 4px;text-align:center;color:var(--muted);font-size:13px}
#sell-confirm{text-align:center;width:330px}#sell-confirm p{font-size:16px;line-height:1.6}
/* 해안길 건물 이름표 — 누르면 그 건물로 걸어갑니다(11/7). #labels 는 누름을 막아 두므로 이 단추만 살립니다. */
.place-label{position:absolute;top:0;left:0;pointer-events:auto;white-space:nowrap;min-height:0;padding:6px 10px;font-size:13px;font-weight:600;color:#2a1c12;background:#f3d48a;border:1px solid #fff4d6;border-radius:12px;box-shadow:0 4px 14px #0007;will-change:transform;transition:none}
.place-label:after{content:"";position:absolute;bottom:-6px;left:calc(50% - 6px);border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #f3d48a}
.place-label:hover:not(:disabled){background:#f7dfa3;transform:none}
#fade{position:fixed;inset:0;z-index:40;background:#0b0704;opacity:0;pointer-events:none;transition:opacity .28s}#fade.on{opacity:1}
#exit-shop{display:none}.inshop #exit-shop{display:inline-flex;align-items:center;justify-content:center}
.inshop #seat-button,.inshop #cast,.inshop #zen,.inshop [data-view],.inshop #shop-shortcut{display:none}
.spot-label{font-size:12px;padding:5px 9px;background:#f6ead2;opacity:.94}.spot-label:after{border-top-color:#f6ead2}
.name-label.keeper span{background:#6b4428;color:#f6ead2}
.shop-hint{font-size:12px;color:#7a6a4a;background:#f6ecd4;border-radius:10px;padding:8px 10px;margin:0 0 10px}
/* 폭죽·풍등(11/7) — 화면 위 띠 · 쏘기 창 */
#launch-banner{position:fixed;left:50%;top:calc(max(26px,env(safe-area-inset-top)) + 118px);transform:translate(-50%,-12px);z-index:20;max-width:92%;padding:10px 18px;border-radius:22px;background:#1b1430e6;color:#ffe9b0;border:1px solid #ffd34a88;font-size:14px;text-align:center;box-shadow:0 8px 30px #0008;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}
#launch-banner.show{opacity:1;transform:translate(-50%,0)}
#launch-dialog{position:fixed;inset:auto 0 0 0;margin:0 auto;width:min(520px,100%);max-width:100%;max-height:80dvh;overflow:auto;border-radius:20px 20px 0 0;padding:16px 16px max(16px,env(safe-area-inset-bottom))}
#close-launch{color:var(--ink);background:transparent;border:0;font-size:24px;min-height:0}
#launch-kinds{display:grid;grid-template-columns:1fr 1fr;gap:6px}.launch-kind[aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green)}
.launch-help{font-size:12px;color:var(--muted);margin:10px 0 6px}
#launch-lines{display:grid;grid-template-columns:1fr 1fr;gap:6px}.launch-line{font-size:13px;min-height:44px;padding:8px 6px}
.item-count{font-size:12px;color:#9a6a2a;font-weight:600}
#launch-banner small{display:block;font-size:11px;color:#d8c9a0;margin-bottom:2px}#launch-banner b{font-size:16px;font-weight:600}
/* 「불꽃」 버튼이 생겨 6개가 되면 한 줄에 들어가게 줄입니다. */
@media(max-width:640px){.toolbar:has(#launch-button:not([hidden])){display:flex;flex-wrap:nowrap;gap:2px}.toolbar:has(#launch-button:not([hidden])) button{flex:1 1 0;min-width:0;padding:8px 2px;font-size:11px;white-space:nowrap}}
.ride-button{width:100%;margin:-6px 0 12px;background:#1f4d6b;color:#fff;border-color:#1f4d6b}

/* 명예의 전당 창(11/8) — 큰 어탁 · 저장 · 탑10(내 기록은 초록) / 안내 데스크는 32종 목록 */
#hall-dialog .sheet-title h2{flex:1;text-align:center}
#hall-art{display:block;width:100%;height:auto;border-radius:6px;box-shadow:0 0 0 6px #4a2f1c,0 0 0 8px #c9a24e,0 10px 30px #0004;margin:10px 0 14px}
#hall-save{width:100%;margin-bottom:12px}
#hall-list{display:grid;gap:6px;margin-bottom:10px}
.hall-rank,.hall-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;text-align:left;min-height:44px;padding:8px 12px;font-size:13px}
.hall-rank b{font-size:15px;color:#8a2a22;text-align:center}.hall-rank span,.hall-row span{font-size:11px;color:var(--muted)}
.hall-rank.picked{border-color:#b28852;background:#efe4cc}.hall-rank.mine strong{color:#2f6a45}.hall-rank.mine strong:after{content:" · 나";font-size:11px}
.hall-row{grid-template-columns:52px 1fr auto}.hall-row img{width:52px;height:26px;object-fit:contain}.hall-row.empty{background:#ecebe2}.hall-row.empty strong{color:var(--muted)}

/* 11/8 상단 바가 메뉴를 가리던 것 — 바를 낮추고(높이 고정값 없앰), 메뉴·안내·토스트를 바의 실제 아래 끝(--topbar, app.mjs 가 잼)에 붙입니다. */
@media(max-width:640px){
 .topbar{min-height:0;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top))}
 .brand-mark{font-size:30px}.brand h1{font-size:21px}.brand p{margin-top:3px}.weather time{font-size:17px}
 #map-views{top:calc(var(--topbar,96px) + 6px)}
 .scene-note{top:calc(var(--topbar,96px) + 14px)}
 #toast{top:calc(var(--topbar,96px) + 54px)}
}
/* 줌 ＋/－ — 오른쪽, 아래 버튼 줄 위. */
#zoom-buttons{position:fixed;right:12px;bottom:200px;display:flex;flex-direction:column;gap:6px;z-index:8}
#zoom-buttons button{width:42px;height:42px;min-height:0;padding:0;border-radius:50%;font-size:20px;line-height:1;background:#183747e6;color:#f1e5cb;border-color:#658493}
.zen #zoom-buttons{visibility:hidden}

/* 로고(11/8 지피카소 1장 — art/logo_v1.png 를 잘라 줄인 public/logo.png). 남색 판이 상단 바 색과 같아 바에 녹아듭니다. */
.brand-logo{margin:0;line-height:0}.brand-logo img{height:64px;width:auto;display:block}
.brand{align-items:center;gap:10px}.brand p{margin:0}
.welcome-logo{display:block;width:min(240px,70%);margin:0 auto 6px}
@media(max-width:640px){.brand-logo img{height:52px}.brand{flex-direction:column;align-items:flex-start;gap:2px}.brand p{font-size:9px}}

/* 입장 이름 — 폰 키보드가 떠도 아래 버튼까지 스크롤할 수 있게. */
#intro{top:var(--topbar,120px);bottom:0;overflow-y:auto;padding-top:24px;padding-bottom:24px}.welcome{max-height:100%;overflow-y:auto;flex-shrink:0}#nickname-field{margin:16px 0}#nickname-field label{display:block;font-size:13px;margin-bottom:8px}#nickname{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fffdf6;border:1px solid var(--line);border-radius:10px;padding:12px}#nickname:focus-visible{outline:3px solid #b28852;outline-offset:2px}#nickname-help{text-align:left;margin-top:7px}#saved-name-row{margin:12px 0}#saved-name-row p{margin:0 0 8px}#change-name,#cancel-name{font-size:12px;padding:8px 12px}#cancel-name{margin-top:8px}#join-error{color:#9b392d}
.name-label .owner-title{display:block;width:max-content;margin:0 auto 3px;padding:2px 7px;border-radius:8px;background:#2c3f5c;color:#ffd98a;font-size:9px;font-weight:600;letter-spacing:.5px}.name-label.owner span{background:#ffd98a;color:#2c3f5c;font-weight:600}.name-label.owner .bubble{bottom:47px}
