:root{
  --bone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 52 32'%3E%3Ccircle cx='9' cy='9' r='8'/%3E%3Ccircle cx='9' cy='23' r='8'/%3E%3Ccircle cx='43' cy='9' r='8'/%3E%3Ccircle cx='43' cy='23' r='8'/%3E%3Crect x='8' y='9' width='36' height='14' rx='6'/%3E%3C/svg%3E");
  --ink: #07131d;
  --cream: #f7e6c2;
  --cyan: #2fd6ee;
  --gold: #ffc62e;
  --pink: #ff5c7a;
  --panel: rgba(255, 255, 255, 0.94);
  --shadow: 0 10px 30px rgba(7, 19, 29, 0.25);
  --safe-t: env(safe-area-inset-top, 0px);
  --safe-b: env(safe-area-inset-bottom, 0px);
}*{ box-sizing: border-box; -webkit-tap-highlight-color: transparent; }html,body{ margin: 0; height: 100%; overflow: hidden; background: #6cc6ff; color: var(--ink); font-family: 'Fredoka', 'Jua', system-ui, sans-serif; user-select: none; -webkit-user-select: none; touch-action: none; }html:lang(ko) body,html:lang(ja) body{ font-family: 'Fredoka', 'Jua', system-ui, sans-serif; }#c{ position: fixed; inset: 0; width: 100%; height: 100%; display: block; }button{ font: inherit; color: inherit; border: 0; cursor: pointer; background: none; }a{ color: inherit; text-decoration: none; }[hidden]{ display: none !important; }/* 아이콘 */
i{ display: inline-block; flex: none; }.coin-ic{ width: 26px; height: 16px; background: linear-gradient(180deg, #fff1b0, #ffc62e 55%, #d98b00); -webkit-mask: var(--bone) center/contain no-repeat; mask: var(--bone) center/contain no-repeat; }.card-ic{ width: 18px; height: 23px; border-radius: 5px; background: linear-gradient(135deg, #ffe58a, #ffb800); box-shadow: inset 0 0 0 3px #fff7d6, 0 2px 0 rgba(0,0,0,.15); }.i-play{ width: 0; height: 0; border-left: 22px solid currentColor; border-top: 14px solid transparent; border-bottom: 14px solid transparent; margin-left: 4px; }.i-pause{ width: 16px; height: 18px; border-left: 5px solid currentColor; border-right: 5px solid currentColor; }.i-sound{ width: 24px; height: 22px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 8v8a4.5 4.5 0 0 0 2.5-4zM14 3.2v2.1a7 7 0 0 1 0 13.4v2.1a9 9 0 0 0 0-17.6z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 8v8a4.5 4.5 0 0 0 2.5-4zM14 3.2v2.1a7 7 0 0 1 0 13.4v2.1a9 9 0 0 0 0-17.6z'/%3E%3C/svg%3E") center/contain no-repeat; }.btn-sound.off .i-sound{ opacity: .35; }.i-out{ width: 12px; height: 12px; border-top: 2.5px solid currentColor; border-right: 2.5px solid currentColor; transform: rotate(0deg); margin-left: 4px; }.i-again{ width: 22px; height: 22px; border: 4px solid currentColor; border-top-color: transparent; border-radius: 50%; }.i-share{ width: 20px; height: 20px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 16a3 3 0 0 0-2.4 1.2l-6.7-3.4a3 3 0 0 0 0-1.6l6.7-3.4A3 3 0 1 0 15 7l-6.7 3.4a3 3 0 1 0 0 3.2L15 17a3 3 0 1 0 3-1z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 16a3 3 0 0 0-2.4 1.2l-6.7-3.4a3 3 0 0 0 0-1.6l6.7-3.4A3 3 0 1 0 15 7l-6.7 3.4a3 3 0 1 0 0 3.2L15 17a3 3 0 1 0 3-1z'/%3E%3C/svg%3E") center/contain no-repeat; }.i-home{ width: 22px; height: 20px; background: currentColor; clip-path: polygon(50% 0, 100% 45%, 86% 45%, 86% 100%, 14% 100%, 14% 45%, 0 45%); }.i-x{ width: 18px; height: 18px; background: linear-gradient(45deg, transparent 42%, currentColor 42% 58%, transparent 58%), linear-gradient(-45deg, transparent 42%, currentColor 42% 58%, transparent 58%); }.i-crown{ width: 20px; height: 16px; background: var(--gold); clip-path: polygon(0 100%, 0 20%, 25% 55%, 50% 0, 75% 55%, 100% 20%, 100% 100%); }/* 버튼 */
.big-btn{ display: flex; align-items: center; justify-content: center; gap: 12px; min-width: 220px; height: 70px; padding: 0 34px; border-radius: 999px; font-size: 30px; font-weight: 700; color: #fff; background: linear-gradient(180deg, #ffb13b, #ff7a1a); box-shadow: 0 7px 0 #c4520a, 0 14px 28px rgba(196, 82, 10, .35); text-shadow: 0 2px 0 rgba(0,0,0,.18); transition: transform .08s; animation: pulse 1.6s ease-in-out infinite; }.big-btn:active{ transform: translateY(5px); box-shadow: 0 2px 0 #c4520a; }.mid-btn{ display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 52px; min-width: 52px; padding: 0 18px; border-radius: 18px; font-size: 19px; font-weight: 700; background: #fff; box-shadow: 0 5px 0 rgba(7,19,29,.18), 0 8px 18px rgba(7,19,29,.12); }.mid-btn:active{ transform: translateY(3px); box-shadow: 0 2px 0 rgba(7,19,29,.18); }.ic-btn{ display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: rgba(255,255,255,.9); box-shadow: 0 4px 0 rgba(7,19,29,.15); }
@keyframes pulse { 50% { transform: scale(1.04); } }/* 화면 */
.screen{ position: fixed; inset: 0; display: flex; flex-direction: column; align-items: center; z-index: 10; }.screen.dim{ background: rgba(7, 19, 29, .45); justify-content: center; backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }.row{ display: flex; gap: 12px; justify-content: center; align-items: center; flex-wrap: wrap; }.row.col{ flex-direction: column; gap: 18px; }
@keyframes drop { from { transform: translateY(-60px) scale(.8); opacity: 0; } }/* HUD */
#hud{ position: fixed; inset: 0; pointer-events: none; z-index: 5; }#hud > *{ position: absolute; }#btnPause{ left: 14px; top: calc(14px + var(--safe-t)); pointer-events: auto; }#score{ left: 50%; top: calc(10px + var(--safe-t)); transform: translateX(-50%); font-size: 40px; font-weight: 700; color: #fff; -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; text-shadow: 0 4px 0 rgba(7,19,29,.35); font-variant-numeric: tabular-nums; }#stats{ right: 14px; top: calc(14px + var(--safe-t)); display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }.pill{ display: flex; align-items: center; gap: 6px; padding: 5px 12px 5px 6px; border-radius: 999px; background: rgba(7,19,29,.55); color: #fff; font-size: 19px; font-weight: 700; font-variant-numeric: tabular-nums; }#powers{ left: 14px; top: calc(72px + var(--safe-t)); display: flex; flex-direction: column; gap: 8px; }.pw{ position: relative; width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; font-style: normal; font-weight: 700; color: #fff; overflow: hidden; background: rgba(7,19,29,.55); }.pw::after{ content: ''; position: absolute; left: 0; bottom: 0; height: 4px; width: calc(var(--p) * 100%); background: var(--gold); }.pw.magnet::before{ content: ''; width: 22px; height: 22px; border: 6px solid #ff3b5c; border-top: 0; border-radius: 0 0 14px 14px; }.pw.double{ background: rgba(124, 58, 237, .8); font-size: 18px; }/* 결과 */
#over{ justify-content: flex-end; padding: calc(12px + var(--safe-t)) 16px calc(12px + var(--safe-b)); overflow-y: auto; }.panel{ width: min(100%, 400px); background: var(--panel); border-radius: 28px; padding: 22px 20px 18px; display: flex; flex-direction: column; align-items: center; gap: 12px; box-shadow: var(--shadow); animation: pop .45s cubic-bezier(.2,1.5,.4,1) both; }
@keyframes pop { from { transform: scale(.7); opacity: 0; } }.lbl{ font-size: 16px; font-weight: 600; opacity: .55; letter-spacing: 2px; }.badge{ padding: 4px 14px; border-radius: 999px; background: linear-gradient(90deg, #ff5c7a, #ffb13b); color: #fff; font-weight: 700; letter-spacing: 2px; animation: pulse 1s infinite; }.mini{ display: flex; gap: 22px; font-size: 20px; }.mini span{ display: flex; align-items: center; gap: 6px; }.run-cards{ display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }.run-cards a{ position: relative; width: 52px; height: 52px; border-radius: 14px; overflow: hidden; box-shadow: 0 0 0 3px #ffc62e, 0 4px 10px rgba(0,0,0,.2); }.run-cards a img{ width: 100%; height: 100%; object-fit: cover; }.run-cards a.new::after{ content: 'NEW'; position: absolute; right: -2px; top: -2px; font-size: 9px; font-weight: 700; background: var(--pink); color: #fff; padding: 1px 4px; border-radius: 6px; }.feat-lbl{ margin-top: 4px; font-size: 13px; font-weight: 700; letter-spacing: 2px; opacity: .5; }.feature{ width: 100%; border-radius: 18px; overflow: hidden; position: relative; display: block; aspect-ratio: 16/9; box-shadow: 0 6px 16px rgba(7,19,29,.2); }.feature > img{ width: 100%; height: 100%; object-fit: cover; display: block; }.feature div{ position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: linear-gradient(transparent, rgba(7,19,29,.85)); color: #fff; }.feature .fi{ width: 36px; height: 36px; border-radius: 10px; }.feature b{ flex: 1; font-size: 16px; text-align: left; }.feature span{ width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #ff7a1a; font-size: 14px; }/* 카드 모음 */
.sheet{ width: min(100% - 32px, 520px); max-height: min(86vh, 720px); background: var(--panel); border-radius: 26px; padding: 16px; display: flex; flex-direction: column; box-shadow: var(--shadow); animation: pop .35s cubic-bezier(.2,1.5,.4,1) both; }.sheet-h{ display: flex; justify-content: space-between; align-items: center; padding: 0 4px 12px; font-size: 22px; }.sheet-h b{ display: flex; align-items: center; gap: 8px; }#grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 12px; overflow-y: auto; padding: 4px; }.slot{ display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px 4px; border-radius: 16px; background: #f2f4f8; font-size: 12px; font-weight: 600; text-align: center; line-height: 1.2; }.slot img{ width: 64px; height: 64px; border-radius: 16px; object-fit: cover; }.slot.got{ background: linear-gradient(180deg, #fff5d1, #ffe08a); box-shadow: 0 0 0 2px #ffc62e; }.slot.lock img{ filter: brightness(0) opacity(.25); }.slot.lock span{ opacity: .4; font-size: 18px; }/* 토스트 */
#toast{ position: fixed; left: 50%; top: calc(84px + var(--safe-t)); transform: translate(-50%, -30px) scale(.8); opacity: 0; display: flex; align-items: center; gap: 12px; padding: 10px 18px 10px 10px; border-radius: 22px; background: rgba(255,255,255,.96); box-shadow: 0 0 0 3px #ffc62e, var(--shadow); z-index: 20; pointer-events: none; transition: .35s cubic-bezier(.2,1.6,.4,1); max-width: calc(100% - 32px); }#toast.show{ opacity: 1; transform: translate(-50%, 0) scale(1); }#toast img{ width: 56px; height: 56px; border-radius: 14px; }#toast b{ display: block; font-size: 17px; }#toast em{ font-style: normal; font-weight: 700; font-size: 13px; color: #fff; background: var(--pink); padding: 2px 8px; border-radius: 8px; }#toast em.dup{ background: #ffb13b; }/* 조작 힌트 */
#hint{ position: fixed; left: 50%; bottom: calc(18% + var(--safe-b)); transform: translateX(-50%); display: grid; grid-template-columns: repeat(3, 56px); grid-template-rows: repeat(2, 56px); gap: 6px; z-index: 6; pointer-events: none; animation: fade 3.2s both; }.sw{ width: 56px; height: 56px; border-radius: 16px; background: rgba(255,255,255,.85); position: relative; }.sw::after{ content: ''; position: absolute; left: 50%; top: 50%; border: 12px solid transparent; }.sw.l{ grid-area: 2/1; }.sw.r{ grid-area: 2/3; }.sw.u{ grid-area: 1/2; }.sw.d{ grid-area: 2/2; }.sw.l::after{ border-right: 16px solid var(--ink); transform: translate(-75%, -50%); }.sw.r::after{ border-left: 16px solid var(--ink); transform: translate(-25%, -50%); }.sw.u::after{ border-bottom: 16px solid var(--ink); transform: translate(-50%, -75%); }.sw.d::after{ border-top: 16px solid var(--ink); transform: translate(-50%, -25%); }
@keyframes fade { 0%, 80% { opacity: 1; } 100% { opacity: 0; } }#count{ position: fixed; inset: 0; display: grid; place-items: center; font-size: 120px; font-weight: 700; color: #fff; -webkit-text-stroke: 4px var(--ink); paint-order: stroke fill; z-index: 30; pointer-events: none; }#nogl{ display: none; }body.nogl #nogl{ display: grid; position: fixed; inset: 0; place-items: center; font-size: 24px; }

@media (min-height: 900px) {.big-btn{ height: 78px; } }
@media (max-height: 640px) {.big-btn{ height: 60px; font-size: 26px; }.feature{ aspect-ratio: 21/9; } }/* 보너스·위험·부활·상점 */
#streak{ left: 50%; top: calc(58px + var(--safe-t)); transform: translateX(-50%); font-size: 22px; font-weight: 700; color: #ffe14d; -webkit-text-stroke: 1.5px var(--ink); paint-order: stroke fill; }#pops{ left: 50%; top: 42%; width: 0; height: 0; }.pop{ position: absolute; left: 0; top: 0; transform: translate(-50%, 0); font-size: 30px; font-weight: 700; color: #fff; -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; white-space: nowrap; animation: popUp .9s ease-out forwards; }.pop small{ font-size: 20px; color: #ffe14d; margin-left: 6px; }
@keyframes popUp { 0% { transform: translate(-50%, 10px) scale(.6); opacity: 0; } 20% { transform: translate(-50%, -10px) scale(1.15); opacity: 1; } 100% { transform: translate(-50%, -70px) scale(1); opacity: 0; } }#hud::before{ content: ''; position: absolute; inset: 0; box-shadow: inset 0 0 90px 20px rgba(255, 40, 70, .55); opacity: 0; transition: opacity .2s; }#hud.danger::before{ opacity: 1; animation: blink .5s infinite alternate; }
@keyframes blink { to { opacity: .35; } }.pw.rocket::before{ content: ''; width: 14px; height: 26px; border-radius: 7px 7px 3px 3px; background: linear-gradient(#ff4d4d 0 35%, #fff 35%); box-shadow: 0 6px 0 -2px #ff9a3c; }.pw.rocket{ background: rgba(255, 122, 26, .8); }.i-up{ width: 0; height: 0; border-left: 7px solid transparent; border-right: 7px solid transparent; border-bottom: 10px solid #2bc46a; }.i-heart{ width: 44px; height: 40px; background: #ff4d6d; clip-path: path('M22 40 L4 21 A10 10 0 0 1 22 7 A10 10 0 0 1 40 21 Z'); }.revive-btn{ position: relative; width: 170px; height: 170px; border-radius: 50%; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; box-shadow: var(--shadow); animation: pulse 1s infinite; }.revive-btn svg{ position: absolute; inset: -8px; width: calc(100% + 16px); height: calc(100% + 16px); transform: rotate(-90deg); }.revive-btn circle{ fill: none; stroke: #ffc62e; stroke-width: 6; stroke-linecap: round; stroke-dasharray: 289; stroke-dashoffset: 0; }#revive.run circle{ animation: ring 4s linear forwards; }
@keyframes ring { to { stroke-dashoffset: 289; } }.revive-btn span{ display: flex; align-items: center; gap: 6px; font-size: 24px; font-weight: 700; }.skip{ margin-top: 26px; }#shopList{ display: flex; flex-direction: column; gap: 12px; }.shop-row{ display: flex; align-items: center; gap: 14px; padding: 12px; border-radius: 18px; background: #f2f4f8; }.shop-row .pw{ width: 52px; height: 52px; }.shop-row .pw.magnet{ background: rgba(255, 59, 92, .15); }.shop-row .pw.double{ background: rgba(124, 58, 237, .85); }.pips{ flex: 1; display: flex; gap: 5px; }.pips b{ flex: 1; height: 12px; border-radius: 6px; background: #d6dbe6; }.pips b.on{ background: linear-gradient(90deg, #2bc46a, #9be15d); }.buy{ display: flex; align-items: center; gap: 6px; height: 44px; padding: 0 14px; border-radius: 14px; background: linear-gradient(180deg, #ffb13b, #ff7a1a); color: #fff; font-weight: 700; font-size: 17px; box-shadow: 0 4px 0 #c4520a; }.buy.no{ filter: grayscale(1); opacity: .5; }.max{ font-weight: 700; color: #2bc46a; padding: 0 10px; }.gift-ic{ width: 20px; height: 20px; border-radius: 5px; background: linear-gradient(90deg, transparent 40%, #ffc62e 40% 60%, transparent 60%), linear-gradient(180deg, #ffc62e 0 26%, transparent 26%), #35c7ff; box-shadow: inset 0 -2px 0 rgba(0,0,0,.15); }.pop .coin-ic{ width: 26px; height: 16px; margin-left: 6px; vertical-align: middle; }.i-grid{ width: 20px; height: 20px; background: radial-gradient(circle, currentColor 0 3.5px, transparent 4px) 0 0 / 10px 10px; }/* 자랑·공유 */
.i-flag{ width: 18px; height: 20px; background: linear-gradient(90deg, #07131d 0 3px, transparent 3px), conic-gradient(from 90deg at 50% 50%, #fff 0 25%, #07131d 0 50%, #fff 0 75%, #07131d 0) 3px 0 / 8px 8px no-repeat; background-size: auto, 15px 12px; }.i-down{ width: 18px; height: 20px; background: currentColor; clip-path: polygon(35% 0, 65% 0, 65% 45%, 90% 45%, 50% 85%, 10% 45%, 35% 45%, 35% 0, 0 100%, 0 88%, 100% 88%, 100% 100%, 0 100%); }.i-link{ width: 22px; height: 12px; border: 3.5px solid currentColor; border-radius: 8px; position: relative; }.i-link::after{ content: ''; position: absolute; left: 4px; right: 4px; top: 50%; height: 3px; margin-top: -1.5px; background: currentColor; }#target{ left: 50%; top: calc(88px + var(--safe-t)); transform: translateX(-50%); width: min(60vw, 260px); height: 14px; border-radius: 7px; background: rgba(7,19,29,.45); overflow: visible; }#target span{ position: absolute; left: 0; top: 0; bottom: 0; width: calc(var(--p, 0) * 100%); border-radius: 7px; background: linear-gradient(90deg, #ffb13b, #ff5c7a); }#target .i-flag{ position: absolute; right: -6px; top: -16px; }#target.done span{ background: linear-gradient(90deg, #2bc46a, #9be15d); }.share-sheet{ align-items: center; gap: 14px; width: min(100% - 32px, 400px); }.share-sheet .sheet-h{ width: 100%; padding-bottom: 0; }#shareImg{ width: 100%; max-height: 52vh; object-fit: contain; border-radius: 18px; box-shadow: 0 6px 18px rgba(7,19,29,.2); }#shareImg:not([src]){ display: none; }.mid-btn.hot{ background: linear-gradient(180deg, #ffb13b, #ff7a1a); color: #fff; box-shadow: 0 5px 0 #c4520a; min-width: 90px; }#shareCopy.ok{ background: #2bc46a; color: #fff; }#toast{ position: fixed; left: 50%; bottom: calc(30px + var(--safe-b)); top: auto; transform: translate(-50%, 20px); opacity: 0; padding: 10px 18px; border-radius: 16px; background: #fff; font-weight: 700; z-index: 40; pointer-events: none; transition: .3s; box-shadow: 0 6px 20px rgba(7,19,29,.25); }#toast.show{ opacity: 1; transform: translate(-50%, 0); }
@media (max-height: 640px) { }/* 왼쪽 위 버튼(게임 목록·일시정지): 크게,누르는 범위 넓게 */
.hub-link,#btnPause{ width: 54px !important; height: 54px !important; border-radius: 16px !important; top: calc(16px + env(safe-area-inset-top, 0px)) !important; left: calc(14px + env(safe-area-inset-left, 0px)) !important; z-index: 20 !important; touch-action: manipulation; }#btnPause::before{ content: ''; position: absolute; inset: -14px; }
@media (max-height: 760px) { }
@media (max-width: 400px) { }/* ---------- KEKE BONE SHOP ---------- */
html,body{ background: #ffcf9a; }.i-cal{ width: 20px; height: 20px; border-radius: 5px; background: linear-gradient(180deg, #ff5c7a 0 32%, #fff 32%); box-shadow: inset 0 0 0 2px rgba(7,19,29,.25); position: relative; }.i-cal::after{ content: ''; position: absolute; left: 5px; right: 5px; top: 10px; height: 6px; background: radial-gradient(circle, #07131d 0 1.4px, transparent 1.8px) 0 0 / 5px 6px; opacity: .6; }.i-bag{ width: 20px; height: 22px; border-radius: 3px 3px 5px 5px; background: linear-gradient(180deg, #e9c48d, #c99a5a); position: relative; box-shadow: inset 0 3px 0 rgba(255,255,255,.35); }.i-bag::before{ content: ''; position: absolute; left: 5px; right: 5px; top: -6px; height: 9px; border: 2.5px solid #9a6a34; border-bottom: 0; border-radius: 6px 6px 0 0; }.i-heart-s{ width: 22px; height: 20px; background: #ff4d6d; clip-path: path('M11 20 L2 10.5 A5 5 0 0 1 11 3.5 A5 5 0 0 1 20 10.5 Z'); }.i-angry{ width: 22px; height: 22px; border-radius: 50%; background: radial-gradient(circle at 50% 72%, #07131d 0 3px, transparent 3.5px), radial-gradient(circle at 32% 45%, #07131d 0 2.2px, transparent 2.6px), radial-gradient(circle at 68% 45%, #07131d 0 2.2px, transparent 2.6px), #ff6b4a; }.i-fire{ width: 18px; height: 24px; background: radial-gradient(circle at 50% 70%, #fff4a8 0 22%, #ffb13b 23% 50%, #ff5c3a 51%); clip-path: path('M9 0 C12 6 18 9 18 15 A9 9 0 0 1 0 15 C0 10 4 9 5 4 C7 7 8 8 9 9 Z'); }.coin-ic.big{ width: 40px; height: 25px; }#playLbl small{ font-size: 18px; opacity: .85; margin-left: 6px; }/* HUD */
#hud .tl{ left: calc(14px + env(safe-area-inset-left, 0px)); top: calc(16px + var(--safe-t)); display: flex; gap: 10px; pointer-events: auto; z-index: 20; }#hud .tl .ic-btn{ position: relative; width: 54px; height: 54px; border-radius: 16px; touch-action: manipulation; }#hud .tl .ic-btn::before{ content: ''; position: absolute; inset: -8px; }#btnPause{ position: relative !important; top: auto !important; left: auto !important; }#dayBox{ left: 50%; top: calc(14px + var(--safe-t)); transform: translateX(-50%); width: 62px; height: 62px; display: grid; place-items: center; }#dayBox svg{ position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }#dayBox circle{ fill: none; stroke-width: 5; }#dayBox .bg{ fill: rgba(7,19,29,.55); stroke: rgba(255,255,255,.25); }#clockArc{ stroke: #ffd23f; stroke-linecap: round; stroke-dasharray: 100.5; stroke-dashoffset: 0; transition: stroke .3s; }#dayBox.late #clockArc{ stroke: #ff5c7a; }#dayBox b{ position: relative; color: #fff; font-size: 24px; font-weight: 700; }#money{ right: calc(14px + env(safe-area-inset-right, 0px)); top: calc(16px + var(--safe-t)); display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }.m-row{ display: flex; align-items: center; gap: 6px; padding: 5px 12px 5px 8px; border-radius: 999px; background: rgba(7,19,29,.6); color: #fff; font-weight: 700; font-variant-numeric: tabular-nums; }.m-row b{ font-size: 24px; color: #ffe14d; }.m-row small{ font-size: 15px; opacity: .8; }#goalBar{ position: relative; width: 130px; height: 10px; border-radius: 5px; background: rgba(7,19,29,.45); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.5); }#goalBar span{ position: absolute; left: 0; top: 0; bottom: 0; width: calc(var(--p, 0) * 100%); border-radius: 5px; background: linear-gradient(90deg, #ffb13b, #ffd23f); transition: width .25s; }#goalBar.done span{ background: linear-gradient(90deg, #2bc46a, #9be15d); }#goalBar .i-flag{ position: absolute; right: -7px; top: -14px; transform: scale(.8); }#money.bump .m-row{ animation: mbump .3s ease-out; }
@keyframes mbump { 40% { transform: scale(1.12); } }#comboB{ right: calc(14px + env(safe-area-inset-right, 0px)); top: calc(86px + var(--safe-t)); display: flex; align-items: center; gap: 4px; padding: 4px 12px 4px 8px; border-radius: 999px; background: linear-gradient(90deg, #ff7a1a, #ff3b6b); color: #fff; font-size: 20px; font-weight: 700; box-shadow: 0 3px 0 rgba(0,0,0,.15); }#comboB.bump{ animation: mbump .3s ease-out; }/* 손님 말풍선 */
#bubbles{ position: fixed; inset: 0; pointer-events: none; z-index: 4; overflow: hidden; }.bub{ position: absolute; left: 0; top: 0; transform-origin: 50% 100%; pointer-events: auto; cursor: pointer; touch-action: manipulation; }.bub .in{ position: relative; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 8px 7px; border-radius: 16px; background: #fff; box-shadow: 0 4px 0 rgba(7,19,29,.18), 0 6px 14px rgba(7,19,29,.18); transition: transform .15s; }.bub .in::after{ content: ''; position: absolute; left: 50%; bottom: -9px; margin-left: -9px; border: 9px solid transparent; border-bottom: 0; border-top-color: #fff; }.bub .items{ display: flex; gap: 2px; }.bub .it{ position: relative; width: 38px; height: 38px; }.bub .it img{ width: 100%; height: 100%; display: block; }.bub .it b{ position: absolute; right: -3px; bottom: -4px; min-width: 19px; height: 19px; padding: 0 4px; border-radius: 10px; background: #07131d; color: #fff; font-size: 13px; font-weight: 700; line-height: 19px; text-align: center; }.bub .it.ok::before{ content: ''; position: absolute; inset: -2px; border-radius: 12px; background: rgba(43,196,106,.22); box-shadow: inset 0 0 0 2.5px #2bc46a; }.bub .it.miss{ animation: shakeX .35s; }.bub .it.miss::before{ content: ''; position: absolute; inset: -2px; border-radius: 12px; box-shadow: inset 0 0 0 2.5px #ff3b5c; }.bub .pat{ width: 100%; height: 6px; border-radius: 3px; background: #e7ebf1; overflow: hidden; }.bub .pat span{ display: block; height: 100%; width: calc(var(--p, 1) * 100%); border-radius: 3px; background: #2bc46a; }.bub.warn .pat span{ background: #ffb13b; }.bub.hot .pat span{ background: #ff3b5c; }.bub.hot .in{ animation: shakeX .5s infinite; }.bub.ready .in{ box-shadow: 0 0 0 3px #2bc46a, 0 4px 0 rgba(7,19,29,.18), 0 0 18px rgba(43,196,106,.6); animation: readyP 1s ease-in-out infinite; }
@keyframes readyP { 50% { transform: scale(1.07); } }.bub .reg{ position: absolute; left: -8px; top: -10px; width: 22px; height: 18px; background: var(--gold); clip-path: polygon(0 100%, 0 20%, 25% 55%, 50% 0, 75% 55%, 100% 20%, 100% 100%); filter: drop-shadow(0 1px 0 rgba(0,0,0,.3)); }.bub.no .in{ animation: shakeX .35s; }
@keyframes shakeX { 20% { transform: translateX(-5px); } 40% { transform: translateX(5px); } 60% { transform: translateX(-3px); } 80% { transform: translateX(3px); } }.bub.gone{ opacity: 0; transition: opacity .25s; pointer-events: none; }/* 떠오르는 숫자 */
#pops{ position: fixed; left: 0; top: 0; width: 0; height: 0; z-index: 6; pointer-events: none; }.pop{ position: absolute; left: 0; top: 0; transform: translate(-50%, 0); font-size: 26px; font-weight: 700; color: #ffe14d; -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; white-space: nowrap; animation: popUp .95s ease-out forwards; display: flex; align-items: center; gap: 4px; }.pop small{ font-size: 18px; color: #fff; margin-left: 4px; }.pop.perfect{ color: #fff; font-size: 22px; }.pop.bad{ color: #ff8a8a; font-size: 22px; }.pop .i-heart-s{ transform: scale(1.3); }.pop.heart{ animation: heartUp 1.1s ease-out forwards; }
@keyframes heartUp { 0% { transform: translate(-50%, 0) scale(.3); opacity: 0; } 25% { transform: translate(-50%, -16px) scale(1.25); opacity: 1; } 100% { transform: translate(-50%, -80px) scale(1); opacity: 0; } }
@keyframes popUp { 0% { transform: translate(-50%, 10px) scale(.6); opacity: 0; } 20% { transform: translate(-50%, -10px) scale(1.15); opacity: 1; } 100% { transform: translate(-50%, -70px) scale(1); opacity: 0; } }#banner{ position: fixed; left: 50%; top: 38%; transform: translate(-50%, -50%); z-index: 7; pointer-events: none; opacity: 0; font-family: 'Jua', 'Fredoka', sans-serif; font-size: 64px; color: #fff; -webkit-text-stroke: 4px var(--ink); paint-order: stroke fill; white-space: nowrap; display: flex; align-items: center; gap: 12px; }#banner.show{ animation: banner 1.8s ease-out forwards; }
@keyframes banner { 0% { opacity: 0; transform: translate(-50%, -50%) scale(2); } 14% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 78% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, -62%) scale(.9); } }/* 하루 끝·가게 */
#dayEnd{ overflow-y: auto; justify-content: flex-start; padding: calc(12px + var(--safe-t)) 12px calc(14px + var(--safe-b)); }#dayEnd .panel{ margin: auto 0; gap: 10px; width: min(100%, 420px); }.de-h{ display: flex; align-items: center; gap: 8px; font-family: 'Jua', 'Fredoka', sans-serif; font-size: 28px; }.de-h em{ font-style: normal; font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: 16px; padding: 3px 10px; border-radius: 9px; color: #fff; }.de-h em.win{ background: #2bc46a; }.de-h em.lose{ background: #ff3b5c; }.de-earn{ display: flex; align-items: center; gap: 8px; font-variant-numeric: tabular-nums; }.de-earn b{ font-size: 48px; line-height: 1; }.de-earn small{ font-size: 20px; opacity: .55; }.de-bar{ width: 100%; height: 14px; border-radius: 7px; background: #e7ebf1; overflow: hidden; }.de-bar span{ display: block; height: 100%; width: calc(var(--p, 0) * 100%); border-radius: 7px; background: linear-gradient(90deg, #2bc46a, #9be15d); transition: width .8s cubic-bezier(.2,.8,.3,1); }.de-bar.lose span{ background: linear-gradient(90deg, #ff7a1a, #ff3b5c); }.wallet{ display: flex; align-items: center; gap: 6px; padding: 5px 14px 5px 10px; border-radius: 999px; background: var(--ink); color: #ffe14d; font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; }.wallet.bump{ animation: mbump .3s; }#upList{ width: 100%; display: flex; flex-direction: column; gap: 8px; }.up{ display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 10px; border-radius: 18px; background: #f2f4f8; }.up .uic{ width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; background: #fff; box-shadow: 0 2px 0 rgba(7,19,29,.1); flex: none; position: relative; }.up .uic img{ width: 38px; height: 38px; }.up .ubody{ flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }.up .uname{ font-weight: 700; font-size: 16px; display: flex; align-items: center; gap: 6px; white-space: nowrap; }.up .uname small{ font-size: 13px; opacity: .55; font-variant-numeric: tabular-nums; }.up .pips{ flex: none; display: flex; gap: 4px; }.up .pips b{ width: 18px; height: 9px; border-radius: 5px; background: #d6dbe6; }.up .pips b.on{ background: linear-gradient(90deg, #2bc46a, #9be15d); }.up .buy{ flex: none; min-width: 92px; height: 48px; justify-content: center; font-size: 18px; touch-action: manipulation; }.up .buy .coin-ic{ width: 22px; height: 14px; background: #fff; }.up.flash{ animation: upFlash .5s; }
@keyframes upFlash { 40% { background: #fff3c4; transform: scale(1.03); } }.ui-slots{ width: 34px; height: 26px; border-radius: 6px; background: radial-gradient(ellipse 5px 4px, #07131d 80%, transparent 90%) 0 0 / 11px 13px, #5b5f66; box-shadow: inset 0 0 0 2px #3a3d42; }.ui-heat{ width: 26px; height: 34px; background: radial-gradient(circle at 50% 72%, #fff4a8 0 20%, #ffb13b 21% 48%, #ff4d2a 49%); clip-path: path('M13 0 C17 8 26 12 26 21 A13 13 0 0 1 0 21 C0 14 6 12 7 5 C10 9 11 11 13 13 Z'); }.ui-sign{ width: 36px; height: 26px; border-radius: 6px; background: linear-gradient(180deg, #ffd23f, #ffb13b); box-shadow: inset 0 0 0 3px #9a6a34, 0 0 10px rgba(255,210,63,.8); }.ui-flyer{ width: 28px; height: 34px; border-radius: 3px; background: linear-gradient(180deg, #fff 0 60%, #2fd6ee 60%); box-shadow: inset 0 0 0 2px #c3ccd8; transform: rotate(-8deg); }.ui-flyer::after{ content: ''; position: absolute; left: 50%; top: 40%; width: 14px; height: 9px; transform: translate(-50%, -50%); background: #c99a5a; -webkit-mask: var(--bone) center/contain no-repeat; mask: var(--bone) center/contain no-repeat; }#btnNext{ margin-top: 4px; }
@media (max-height: 700px) {.de-earn b{ font-size: 38px; }#dayEnd .panel{ gap: 7px; padding: 14px 14px 12px; }.up{ padding: 6px 6px 6px 8px; }.up .uic{ width: 40px; height: 40px; }.up .buy{ height: 42px; } }
@media (orientation: landscape) and (max-height: 520px) {#dayEnd .panel{ width: min(100%, 760px); display: grid; grid-template-columns: 1fr 1.35fr; column-gap: 14px; align-items: center; }#dayEnd .panel > :not(#upList):not(#btnNext){ grid-column: 1; justify-self: center; }#upList{ grid-column: 2; grid-row: 1 / span 6; }#btnNext{ grid-column: 1 / span 2; justify-self: center; }.up{ padding: 4px 6px 4px 8px; }.up .uic{ width: 36px; height: 36px; }.up .uic img{ width: 30px; height: 30px; }.up .buy{ height: 38px; min-width: 84px; }#upList{ gap: 5px; }.de-earn b{ font-size: 34px; }
}
@media (orientation: landscape) and (max-height: 520px) {#dayBox{ width: 54px; height: 54px; left: calc(150px + env(safe-area-inset-left, 0px)); transform: none; top: calc(16px + var(--safe-t)); }
}#btnNew{ height: 42px; font-size: 16px; opacity: .9; }body.playing #c{ touch-action: none; }.i-star{ width: 22px; height: 22px; background: linear-gradient(180deg, #fff1b0, #ffc62e); clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }.bub .items.grid{ display: grid; grid-template-columns: repeat(2, auto); gap: 3px; }
@media (max-width: 500px) {.bub .it{ width: 33px; height: 33px; }.bub .in{ padding: 5px 6px 6px; border-radius: 14px; }.bub .it b{ min-width: 17px; height: 17px; line-height: 17px; font-size: 12px; } }/* 틀 위 표시 */
#marks{ position: fixed; inset: 0; pointer-events: none; z-index: 3; }.mk{ position: absolute; left: 0; top: 0; width: 0; height: 0; }.mk .ic{ position: absolute; left: -24px; top: -58px; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; transition: transform .15s; }.mk .ic svg{ width: 30px; height: 30px; }.mk .bar{ position: absolute; left: -27px; top: -6px; width: 54px; height: 9px; border-radius: 5px; background: rgba(7,19,29,.6); box-shadow: 0 0 0 2px rgba(255,255,255,.75); overflow: hidden; }.mk .bar span{ position: absolute; left: 0; top: 0; bottom: 0; background: #ff9a3c; border-radius: 5px; }.mk .bar i{ position: absolute; top: 0; bottom: 0; background: rgba(255,255,255,.45); }.mk.flip .bar span,.mk.hand .bar span{ background: #3fe060; }.mk.fire .bar span{ background: #ff3b3b; }.mk.plus .ic{ top: -30px; background: rgba(255,255,255,.18); width: 40px; height: 40px; left: -20px; }.mk.plus .ic svg{ width: 22px; height: 22px; opacity: .8; }.mk.flip .ic,.mk.hand .ic{ background: radial-gradient(circle at 40% 35%, #8dff9a, #20b84a); box-shadow: 0 0 0 4px #fff, 0 0 22px 6px rgba(63,224,96,.85); animation: mkPop .7s ease-in-out infinite; }.mk.perf .ic{ background: radial-gradient(circle at 40% 35%, #f0ffb0, #3fe060); box-shadow: 0 0 0 4px #fff, 0 0 30px 10px rgba(180,255,120,.95); animation-duration: .35s; }.mk.hand .ic svg{ width: 36px; height: 36px; }.mk.fire .ic{ background: radial-gradient(circle at 40% 35%, #ffb09a, #ff2a2a); box-shadow: 0 0 0 4px #fff, 0 0 22px 6px rgba(255,40,40,.85); animation: mkBlink .3s steps(2) infinite; }.mk.trash .ic{ top: -48px; background: #5a5f68; box-shadow: 0 0 0 3px #fff; width: 40px; height: 40px; left: -20px; }.mk.trash .ic svg{ width: 22px; height: 22px; }
@keyframes mkPop { 50% { transform: scale(1.18); } }
@keyframes mkBlink { 50% { opacity: .35; } }/* 말풍선 크게 */
.bub .it{ width: 46px; height: 46px; }.bub .it b{ min-width: 24px; height: 24px; line-height: 24px; font-size: 16px; border-radius: 12px; right: -5px; bottom: -5px; }.bub .pat{ height: 8px; border-radius: 4px; }.bub .pat span{ border-radius: 4px; }.bub{ pointer-events: none; }
@media (max-width: 500px) {.bub .it{ width: 40px; height: 40px; }.bub .it b{ min-width: 21px; height: 21px; line-height: 21px; font-size: 14px; } }/* 전략: 날씨·별·결산·아침 메뉴 */
#wxI{ position: absolute; right: -14px; bottom: -8px; font-size: 22px; filter: drop-shadow(0 2px 2px rgba(0,0,0,.35)); white-space: nowrap; }#goalBar .st,.de-bar .st{ position: absolute; top: 50%; width: 16px; height: 16px; margin: -8px 0 0 -8px; background: #c3ccd8; clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }.st.s1{ left: 50%; }.st.s2{ left: 75%; }.st.s3{ left: 98%; }.st.on{ background: #ffd23f; filter: drop-shadow(0 0 4px #ffd23f); }.de-bar{ position: relative; overflow: visible; }.de-bar .st{ width: 20px; height: 20px; margin: -10px 0 0 -10px; }.de-stars{ display: flex; align-items: center; gap: 6px; }.de-stars i{ width: 34px; height: 34px; background: #d6dbe6; clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }.de-stars i.on{ background: linear-gradient(180deg, #fff1b0, #ffc62e); animation: pop .4s cubic-bezier(.2,1.6,.4,1) both; }.de-stars b{ font-size: 18px; color: #2bc46a; margin-left: 4px; }.de-sold{ display: flex; gap: 8px; align-items: flex-end; justify-content: center; height: 64px; }.de-sold .col{ display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 13px; font-weight: 700; }.de-sold .col span{ width: 22px; border-radius: 6px 6px 2px 2px; background: linear-gradient(0deg, #ffb13b, #ffd23f); transition: height .7s cubic-bezier(.2,.8,.3,1); }.de-sold .col img{ width: 24px; height: 24px; }.de-hearts{ display: flex; gap: 3px; }.de-hearts i{ width: 22px; height: 20px; background: #e2e6ee; clip-path: path('M11 20 L2 10.5 A5 5 0 0 1 11 3.5 A5 5 0 0 1 20 10.5 Z'); }.de-hearts i.on{ background: #ff4d6d; }.fc,.fc-mini{ display: flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 16px; background: linear-gradient(180deg, #e9f6ff, #d2ebff); box-shadow: inset 0 0 0 2px #b8dcfa; font-size: 26px; font-weight: 700; }.fc-mini{ font-size: 20px; padding: 4px 12px; }.fc-mini::before{ content: '🌙'; font-size: 18px; margin-right: 2px; }.fc img,.fc-mini img{ width: 30px; height: 30px; }.fc small,.fc-mini small{ font-size: 16px; color: #2bc46a; }.loc-row{ display: flex; gap: 8px; }.loc-row button{ width: 58px; height: 58px; border-radius: 16px; background: #f2f4f8; font-size: 30px; box-shadow: 0 3px 0 rgba(7,19,29,.12); touch-action: manipulation; }.loc-row button.on{ background: #fff3c4; box-shadow: 0 0 0 3px #ffc62e; }.cards{ display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }.card{ position: relative; width: 96px; padding: 8px 6px 6px; border-radius: 18px; background: #f2f4f8; display: flex; flex-direction: column; align-items: center; gap: 3px; font-weight: 700; font-size: 15px; box-shadow: 0 4px 0 rgba(7,19,29,.12); touch-action: manipulation; transition: transform .12s; }.card img{ width: 56px; height: 56px; }.card .r{ display: flex; align-items: center; gap: 4px; }.card .r .coin-ic{ width: 20px; height: 12px; }.card .fan{ font-size: 22px; line-height: 1; }.card .hot{ position: absolute; right: -4px; top: -6px; font-size: 20px; }.card.on{ background: #fff3c4; box-shadow: 0 0 0 3px #ffc62e, 0 4px 0 rgba(7,19,29,.12); transform: translateY(-3px); }.card.on::after{ content: ''; position: absolute; left: 6px; top: 6px; width: 20px; height: 20px; border-radius: 50%; background: #2bc46a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10l3 3 7-7' stroke='white' stroke-width='3' fill='none'/%3E%3C/svg%3E") center/contain no-repeat; }.card.lock{ opacity: .4; pointer-events: none; }.pick-n{ display: flex; gap: 6px; }#morning{ overflow-y: auto; justify-content: flex-start; padding: calc(12px + var(--safe-t)) 12px calc(14px + var(--safe-b)); }#morning .panel{ margin: auto 0; gap: 12px; width: min(100%, 420px); }.bub .trait{ position: absolute; right: -10px; top: -12px; font-style: normal; font-size: 22px; filter: drop-shadow(0 2px 2px rgba(0,0,0,.3)); }.bub .it.big{ font-size: 34px; display: grid; place-items: center; }.bub.thief .in{ box-shadow: 0 0 0 3px #ff3b5c, 0 4px 0 rgba(7,19,29,.18); animation: shakeX .6s infinite; }
@media (orientation: landscape) and (max-height: 520px) {#morning .panel{ width: min(100%, 760px); display: grid; grid-template-columns: 1fr 1.6fr; column-gap: 14px; align-items: center; }#morning .panel > .de-h,#morning .panel > #moFc,#morning .panel > #moLoc,#morning .panel > #moSlots{ grid-column: 1; justify-self: center; }#moCards{ grid-column: 2; grid-row: 1 / span 5; }#btnGo{ grid-column: 1 / span 2; justify-self: center; }.card{ width: 86px; }.card img{ width: 44px; height: 44px; }.de-sold{ height: 48px; }
}.ui-emo{ font-style: normal; font-size: 28px; line-height: 1; }/* 메뉴 고르기 강조 */
.mo-slots{ display: flex; gap: 10px; }.mo-slots i{ width: 44px; height: 44px; border-radius: 50%; border: 3px dashed #c3ccd8; display: grid; place-items: center; background: #fff; }.mo-slots i.on{ border: 3px solid #2bc46a; background: #eafbea; animation: pop .35s cubic-bezier(.2,1.6,.4,1) both; }.mo-slots i img{ width: 32px; height: 32px; }.cards.choosing .card:not(.on):not(.lock){ opacity: .62; filter: saturate(.7); }.cards.choosing .card.on{ transform: translateY(-8px) scale(1.07); }.card.on::after{ width: 28px; height: 28px; left: -6px; top: -8px; box-shadow: 0 0 0 3px #fff; }.cards.choosing .card.hotc:not(.on){ opacity: 1; filter: none; box-shadow: 0 0 0 3px #ff7a1a, 0 0 16px rgba(255,122,26,.6), 0 4px 0 rgba(7,19,29,.12); animation: hotP 1s ease-in-out infinite; }.card.hotc.on{ box-shadow: 0 0 0 3px #ff7a1a, 0 0 0 6px #ffc62e, 0 4px 0 rgba(7,19,29,.12); }.card .hot{ font-size: 26px; right: -8px; top: -12px; }
@keyframes hotP { 50% { transform: scale(1.05); } }#btnGo.off{ opacity: .45; filter: grayscale(.6); animation: none; }/* ---------- 점수판 (영업 중) ---------- */
#hud #dayBox{ left: calc(14px + env(safe-area-inset-left, 0px)); top: calc(80px + var(--safe-t)); transform: none; width: auto; height: auto; display: flex; flex-direction: column; gap: 5px; place-items: initial; }#dayBox .dn,#dayBox .tm{ display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px 4px 7px; border-radius: 999px; background: rgba(7,19,29,.6); color: #fff; font-weight: 700; font-size: 18px; font-variant-numeric: tabular-nums; width: max-content; }#dayBox b{ font-size: 18px; }#dayBox #wxI{ position: static; font-size: 17px; }#dayBox .tm b{ min-width: 26px; }#dayBox.late .tm{ background: #ff3b5c; animation: mbump .5s infinite; }.i-clock{ width: 18px; height: 18px; border-radius: 50%; border: 3px solid #fff; position: relative; box-sizing: border-box; }.i-clock::after{ content: ''; position: absolute; left: 50%; top: 2px; width: 2px; height: 6px; margin-left: -1px; background: #fff; box-shadow: 2px 4px 0 0 #fff; }.i-trophy{ width: 20px; height: 20px; background: linear-gradient(180deg,#ffe58a,#ffb800); clip-path: polygon(10% 0,90% 0,88% 30%,100% 30%,96% 52%,78% 58%,62% 72%,62% 84%,78% 84%,78% 100%,22% 100%,22% 84%,38% 84%,38% 72%,22% 58%,4% 52%,0 30%,12% 30%); }#hud #score{ left: 50%; top: calc(10px + var(--safe-t)); transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 3px; -webkit-text-stroke: 0; color: inherit; font-size: inherit; }.sc-big{ display: flex; align-items: center; gap: 6px; padding: 2px 16px 2px 10px; border-radius: 999px; background: rgba(7,19,29,.62); box-shadow: 0 3px 0 rgba(7,19,29,.25); }.sc-big .coin-ic{ width: 34px; height: 21px; }.sc-big b{ font-size: 34px; line-height: 1.15; color: #ffe14d; font-weight: 700; font-variant-numeric: tabular-nums; min-width: 40px; text-align: center; }#score.bump .sc-big{ animation: scBump .28s ease-out; }
@keyframes scBump { 40% { transform: scale(1.2); } }#hud #goalBar{ width: 132px; }#goalV{ font-size: 13px; font-weight: 700; color: #fff; -webkit-text-stroke: 2.5px rgba(7,19,29,.6); paint-order: stroke fill; line-height: 1; font-variant-numeric: tabular-nums; }#totalBox{ right: calc(14px + env(safe-area-inset-right, 0px)); top: calc(16px + var(--safe-t)); display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }#totalBox span{ display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px 4px 7px; border-radius: 999px; background: rgba(7,19,29,.6); color: #fff; font-weight: 700; font-size: 17px; font-variant-numeric: tabular-nums; }#totalBox .i-star{ width: 18px; height: 18px; }#totalBox.bump span:first-child{ animation: mbump .3s; }#hud #comboB{ top: calc(110px + var(--safe-t)); }#hud #money{ display: none; }/* 날아가는 점수 */
#flyers{ position: fixed; inset: 0; pointer-events: none; z-index: 8; }.fly{ position: absolute; left: 0; top: 0; display: flex; align-items: center; gap: 4px; font-size: 24px; font-weight: 700; color: #fff; -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; white-space: nowrap; transition: transform .62s cubic-bezier(.5,-0.3,.6,1), opacity .62s; will-change: transform; }.fly .coin-ic{ width: 24px; height: 15px; }.fly.perf{ color: #ffe14d; font-size: 28px; }.fly.tip{ color: #ff8fb1; }.fly.combo{ color: #ffa53b; font-size: 26px; }.pop.lose{ color: #ff4a5a; font-size: 26px; }
@media (max-width: 380px) {.sc-big b{ font-size: 28px; }#hud #goalBar{ width: 110px; }#totalBox span{ font-size: 15px; } }
@media (orientation: landscape) and (max-height: 520px) {#hud #dayBox{ left: calc(136px + env(safe-area-inset-left, 0px)); top: calc(16px + var(--safe-t)); flex-direction: row; }#hud #score{ top: calc(6px + var(--safe-t)); }#totalBox{ flex-direction: row; }#hud #comboB{ top: calc(58px + var(--safe-t)); }
}.sc-big b.long{ font-size: 27px; }
@media (orientation: portrait), (min-height: 521px) {#hud #score{ left: calc(50% + 32px); }#totalBox{ top: calc(80px + var(--safe-t)); }#hud #comboB{ top: calc(150px + var(--safe-t)); }
}/* 틀에 들어간 재료 아이콘 + 말풍선 같은 테두리 */
.mk .fi{ position: absolute; left: 11px; top: -42px; width: 26px; height: 26px; z-index: 1; padding: 2px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px var(--fc, #fff), 0 3px 6px rgba(7,19,29,.35); }.mk .fi.drop{ animation: fiDrop .38s cubic-bezier(.3,1.6,.5,1) both; }
@keyframes fiDrop { 0% { transform: translateY(-40px) scale(1.5); opacity: 0; } 60% { opacity: 1; } 100% { transform: none; } }.bub .it{ border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px var(--fc, transparent); }.bub .it img{ padding: 3px; box-sizing: border-box; }/* 효과: 만화 글자·번쩍·화면 흔들림 */
.pop.comicB{ font-family: 'Jua', 'Fredoka', sans-serif; font-size: 40px; color: #ffd23f; -webkit-text-stroke: 3px var(--ink); text-shadow: 3px 4px 0 #ff3b6b; }#c.shk{ animation: shk .28s; }
@keyframes shk { 20% { transform: translate(-6px, 3px); } 40% { transform: translate(5px, -4px); } 60% { transform: translate(-4px, 2px); } 80% { transform: translate(3px, -2px); } }#fxGlow{ position: fixed; inset: 0; z-index: 3; pointer-events: none; opacity: 0; background: radial-gradient(circle at 50% 55%, transparent 40%, rgba(var(--g, 255,210,63), .55) 100%); }#fxGlow.on{ animation: fxg .7s ease-out; }
@keyframes fxg { 0% { opacity: 1; } 100% { opacity: 0; } }/* 스토리 컷신 */
.story{ position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; background: rgba(7,19,29,.72); animation: fxg .01s; }.story .sp{ width: min(86vw, 380px); background: #fff; border: 6px solid var(--ink, #07131d); border-radius: 22px; padding: 22px 18px 18px; text-align: center; box-shadow: 0 10px 0 rgba(0,0,0,.35); animation: stIn .35s; }
@keyframes stIn { from { transform: scale(.7) rotate(-4deg); opacity: 0; } }.story .si{ font-size: 76px; line-height: 1.1; }.story .sb{ margin: 14px 0; padding: 12px 14px; background: #ffe9a8; border: 4px solid var(--ink, #07131d); border-radius: 18px; font: 700 24px Jua, Fredoka, sans-serif; color: #07131d; }.story .sn{ width: 120px; height: 64px; border-radius: 32px; border: 0; background: linear-gradient(180deg, #ffb13b, #ff7a1a); color: #fff; font-size: 30px; box-shadow: 0 6px 0 #c4520a; }.story .sn:active{ transform: translateY(4px); box-shadow: 0 2px 0 #c4520a; }
