/* Shared look for FlyOmok JS mini games (dark, mobile-first, Pretendard, Omok palette). */
@font-face{font-family:'Pretendard';src:url('/static/fonts/PretendardVariable.woff2') format('woff2');font-weight:45 920;font-display:swap}
@font-face{font-family:"Pretendard Variable";src:url("/static/fonts/PretendardVariable.woff2") format("woff2-variations");font-weight:45 920;font-display:swap}
:root{--bg:#14171C;--panel:#1E232B;--panel2:#252B35;--line:rgba(255,255,255,.10);--text:#E9EDF2;--dim:#A7B0BD;--dim2:#6E7988;--accent:#2EE6C5;--ink:#062A24;--amber:#FFB547;--red:#FF5470;--violet:#A78BFA}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font:15px/1.55 'Pretendard',"Pretendard Variable",system-ui,-apple-system,"Malgun Gothic",sans-serif;word-break:keep-all}
button,input,select{font-family:inherit}
a{color:var(--accent);text-decoration:none}
.g-top{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(20,23,28,.92);backdrop-filter:blur(8px);z-index:5}
.g-top .home{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--text)}
.g-top h1{font-size:16px;margin:0;font-weight:800}
.g-top .sp{flex:1}
.g-wrap{max-width:720px;margin:0 auto;padding:12px 14px 28px}
.g-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px}
.g-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:12px;border:1px solid var(--line);background:var(--panel2);color:var(--text);font:inherit;font-weight:700;cursor:pointer;touch-action:manipulation;transition:transform .12s}
.g-btn.primary{background:var(--accent);color:var(--ink);border-color:transparent}
.g-btn:active{transform:scale(.95)}
.g-stage{position:relative;width:100%;border-radius:14px;overflow:hidden;background:#0B0D11;border:1px solid var(--line);touch-action:none;user-select:none;-webkit-user-select:none}
.g-stage canvas{display:block;width:100%;height:100%}
.g-hud{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0;font-size:14px;color:var(--dim)}
.g-hud b{color:var(--text)}
.g-note{font-size:13px;color:var(--dim);margin-top:10px}
.g-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:rgba(11,13,17,.72);text-align:center;padding:20px}
.g-overlay[hidden]{display:none}
.g-overlay h2{margin:0;font-size:22px}
.g-overlay p{margin:0;color:var(--dim);font-size:14px;max-width:300px}
.g-btn.on{border-color:var(--amber);color:var(--amber)}

/* honesty badge (short: 컴퓨터 / 게임 규칙) */
.fly-badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap;letter-spacing:-.01em}
.fly-badge svg{flex:none}
.fly-badge.b-brain{color:var(--accent);background:rgba(46,230,197,.12);border:1px solid rgba(46,230,197,.4)}
.fly-badge.b-table{color:var(--accent);border:1px dashed rgba(46,230,197,.6)}
.fly-badge.b-engine{color:var(--dim);border:1px solid var(--line);background:rgba(14,17,21,.78)}
.fly-badge.b-staged{color:var(--amber);border:1px solid rgba(255,181,71,.45);background:rgba(14,17,21,.78)}

/* ===== common mini-game page (shooter · race · rps · lighttag) ===== */
.gm-main{max-width:520px;margin:0 auto;padding:6px 10px 24px}
.gm-bar{display:flex;align-items:center;gap:10px;min-height:40px;padding:2px 2px 8px}
.gm-bar a{display:inline-flex;align-items:center;gap:4px;color:var(--dim);font-weight:700;font-size:13.5px;padding:6px 2px}
.gm-bar h1{margin:0;font-size:17px;font-weight:800;letter-spacing:-.02em}
.gm-bar .sp{flex:1}
.gm-stage{position:relative;width:100%;border-radius:18px;overflow:hidden;background:#0F1216;border:1px solid rgba(255,255,255,.08);box-shadow:0 14px 34px rgba(0,0,0,.38);touch-action:none;user-select:none;-webkit-user-select:none}
.gm-stage>canvas{display:block;width:100%;height:100%}
.gm-badge{position:absolute;left:8px;bottom:8px;z-index:15;pointer-events:none}
.gm-note{font-size:13px;color:var(--dim);margin:12px 4px 0;line-height:1.55;text-align:center}
.gm-note b{color:var(--text)}
.gm-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;margin:10px 0 0;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--line)}
.gm-seg button{font:inherit;font-size:14px;font-weight:800;color:var(--dim);background:transparent;border:0;border-radius:10px;padding:10px 4px;cursor:pointer;transition:transform .12s}
.gm-seg button:active{transform:scale(.95)}
.gm-seg button[aria-pressed="true"]{background:var(--panel2);color:var(--text);box-shadow:inset 0 0 0 1px rgba(46,230,197,.45)}
.gm-more{margin:10px 4px 0;font-size:13px;color:var(--dim)}
.gm-more summary{cursor:pointer;font-weight:700;color:var(--dim);list-style:none;text-align:center;padding:6px}
.gm-more summary::-webkit-details-marker{display:none}
.gm-more ol,.gm-more ul{margin:6px 0 0;padding-left:20px;line-height:1.6}
.gm-more b{color:var(--text)}

/* shooter */
.sh-stage{aspect-ratio:9/14;max-height:calc(100svh - 190px);min-height:420px;margin:0 auto}

/* race */
.rc-stage{height:min(calc(100svh - 150px),700px);min-height:440px}
.rc-prog{position:absolute;right:7px;top:52px;bottom:104px;width:6px;border-radius:3px;background:rgba(255,255,255,.12);pointer-events:none;z-index:5}
.rc-prog i{position:absolute;left:-3px;width:12px;height:12px;border-radius:50%;margin-bottom:-6px;box-shadow:0 0 0 2px rgba(14,17,21,.8)}
.rc-dash{position:absolute;right:16px;bottom:18px;z-index:12;width:78px;height:78px;border-radius:50%;border:2px solid rgba(46,230,197,.85);background:radial-gradient(circle at 50% 35%,rgba(46,230,197,.35),rgba(46,230,197,.12));color:var(--accent);font:inherit;font-weight:850;font-size:15px;touch-action:none;box-shadow:0 8px 22px rgba(46,230,197,.22);transition:transform .1s}
.rc-dash:active{transform:scale(.92)}
.rc-dash.cool{border-color:var(--line);color:var(--dim);background:rgba(14,17,21,.7);box-shadow:none}
.rc-dash[hidden]{display:none}
.rc-msg{position:absolute;left:50%;top:26%;transform:translate(-50%,-50%);z-index:12;font-size:22px;font-weight:850;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.75);opacity:0;pointer-events:none;white-space:nowrap}
.rc-msg.on{animation:rcMsg 1.1s ease-out}
@keyframes rcMsg{0%{opacity:0;transform:translate(-50%,-30%) scale(.8)}15%{opacity:1;transform:translate(-50%,-50%) scale(1)}75%{opacity:1}100%{opacity:0}}

/* mjp (묵찌빠) */
.mj-stage{height:360px;background:radial-gradient(120% 80% at 50% 0%,#20343A 0%,#161B21 62%,#121519 100%)}
.mj-stage canvas#mjFly{position:absolute;left:0;right:0;top:44px;height:150px;width:100%}
.mj-att{position:absolute;left:50%;top:48px;transform:translateX(-50%);z-index:6;font-size:12.5px;font-weight:800;padding:4px 10px;border-radius:999px;background:rgba(14,17,21,.75);color:var(--dim);border:1px solid var(--line);white-space:nowrap}
.mj-att.player{color:var(--accent);border-color:rgba(46,230,197,.5)}
.mj-att.fly{color:#FF8A9C;border-color:rgba(255,84,112,.5)}
.mj-chant{position:absolute;left:0;right:0;top:128px;text-align:center;font-size:44px;font-weight:900;color:#FFE066;text-shadow:0 3px 14px rgba(0,0,0,.75);pointer-events:none;opacity:0;z-index:6}
.mj-chant.on{animation:mjBeat .34s ease-out forwards}
@keyframes mjBeat{0%{opacity:0;transform:scale(1.5)}40%{opacity:1;transform:scale(1)}100%{opacity:1}}
.mj-vs{position:absolute;left:0;right:0;bottom:16px;display:flex;align-items:flex-end;justify-content:center;gap:14px}
.mj-side{display:flex;flex-direction:column;align-items:center;gap:3px}
.mj-side .lab{font-size:12px;font-weight:800;color:var(--dim)}
.mj-hand{width:96px;height:96px;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.03));border:1px solid var(--line);display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.mj-hand svg{width:74px;height:74px}
.mj-hand.shake svg{animation:mjShake .34s ease-in-out infinite}
@keyframes mjShake{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.mj-mid{font-size:22px;font-weight:900;color:var(--amber);min-width:28px;text-align:center;padding-bottom:34px}
.mj-timer{position:absolute;left:16px;right:16px;bottom:6px;height:4px;border-radius:2px;background:rgba(255,255,255,.08);overflow:hidden;opacity:0;transition:opacity .2s}
.mj-timer.on{opacity:1}
.mj-timer i{display:block;height:100%;width:100%;background:var(--amber);transform-origin:left}
.mj-status{text-align:center;font-weight:750;margin:12px 0 10px;min-height:24px;font-size:14.5px}
.mj-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mj-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-height:112px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(180deg,#2A303A,#222831);color:var(--text);font:inherit;cursor:pointer;touch-action:manipulation;box-shadow:0 6px 16px rgba(0,0,0,.25);transition:transform .1s,border-color .15s}
.mj-btn .ic svg{width:54px;height:54px;display:block}
.mj-btn b{font-size:20px;font-weight:900;line-height:1.2}
.mj-btn small{font-size:11.5px;color:var(--dim)}
.mj-btn:active{transform:scale(.95)}
.mj-btn:disabled{opacity:.45;cursor:default}
.mj-btn.picked{border-color:var(--accent);opacity:1;background:rgba(46,230,197,.14)}
.mj-card{margin-top:10px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.mj-card-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:space-between;margin-bottom:6px}
.mj-cname{font-weight:850;font-size:14px}
.mj-cdesc{margin:0 0 6px;font-size:13px;color:var(--dim)}
.mj-bar{display:grid;grid-template-columns:44px 1fr 40px;align-items:center;gap:8px;font-size:12.5px;margin:4px 0}
.mj-bar i{height:9px;border-radius:5px;background:var(--panel2);overflow:hidden}
.mj-bar em{display:block;height:100%;background:var(--accent);border-radius:5px;transition:width .3s}
.mj-bar em.q{background:repeating-linear-gradient(45deg,rgba(255,255,255,.12) 0 6px,var(--panel2) 6px 12px)}
.mj-bar b{text-align:right;font-size:12px}

/* lighttag */
.lt-stage{aspect-ratio:360/520;width:min(100%,calc((100svh - 150px) * 360 / 520));min-width:300px;margin:0 auto}
.lt-meterbox{position:absolute;right:8px;bottom:8px;z-index:15;display:flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;background:rgba(14,17,21,.78);border:1px solid var(--line);font-size:11px;color:var(--dim);pointer-events:none}
.lt-meterbox i{display:block;width:54px;height:6px;border-radius:3px;background:var(--panel2);overflow:hidden}
.lt-meterbox i b{display:block;height:100%;width:0;background:var(--accent);transition:background .2s}
.lt-meterbox i b.fast{background:var(--red)}
.lt-meterbox em{font-style:normal;font-weight:750;color:var(--text);min-width:58px}

/* hide (kept for hide.js) */
.hide-stage{aspect-ratio:3/4}
.hide-stage .g-overlay[hidden]{display:none}
.hide-stage .g-overlay p{margin:0;max-width:300px}
.hide-tl{position:absolute;left:8px;top:8px;pointer-events:none}
.hide-tl .fly-badge{background:rgba(20,23,28,.82)}
.hide-sm{font-size:13px;color:var(--dim)}
.hide-score{font-size:44px;font-weight:900;color:var(--accent);line-height:1}
.hide-score small{font-size:16px;margin-left:2px;color:var(--dim)}
.hide-new{color:var(--amber);font-weight:800}
.hide-ctl{display:flex;gap:8px;margin-top:10px}
.hide-ctl .g-btn{flex:1}
.hide-ctl .g-btn:disabled{opacity:.45;cursor:default}
.hide-h3{font-size:14px;margin:16px 0 8px}
.hide-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.hide-card{display:flex;flex-direction:column;gap:1px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:7px 9px;font-size:12px;color:var(--dim)}
.hide-card b{color:var(--text);font-size:13px}
.hide-card em{font-style:normal;font-weight:750;color:var(--amber)}
.hide-card.done em{color:var(--accent)}
/* /hide */
