:root{--bg: #0a0c10;--bg2: #0f1218;--card: #14171e;--line: #232833;--fg: #f0ede8;--muted: #8b9199;--accent: #30b8ff;--accent-deep: #006aaa;--yes: #2fbf71;--no: #e25555;--first: #30b8ff;--warn: #e0a92e;--font-display: "Syne", "Pretendard Variable", system-ui, sans-serif;--font-mono: "Space Mono", ui-monospace, "Pretendard Variable", monospace;--font-body: "Pretendard Variable", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", sans-serif;--ease: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overflow:hidden;overscroll-behavior:none}body{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;background:radial-gradient(900px 520px at 50% -8%,#16202e 0%,transparent 60%),var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;font-family:var(--font-body)}.app{height:var(--app-h, 100dvh);position:relative;overflow:hidden}.loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000;transition:opacity .6s var(--ease);will-change:opacity}.loader.fade{opacity:0;pointer-events:none}.loader-cv{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;image-rendering:pixelated}.loader-txt{position:absolute;left:0;right:0;bottom:16%;text-align:center;font-family:var(--font-mono);letter-spacing:.28em;color:var(--accent);font-size:13px;animation:blink 1.1s steps(2,jump-none) infinite}.loader-count{position:absolute;right:18px;font-family:var(--font-mono);color:var(--accent);font-size:12px;letter-spacing:.2em;opacity:.65;top:calc(env(safe-area-inset-top,0px) + 16px)}@keyframes blink{50%{opacity:.25}}.stage{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:calc(env(safe-area-inset-top,0px) + 16px) 16px calc(env(safe-area-inset-bottom,0px) + 16px)}.h2,.hint,.food,.badge-guest,.orb-label,button.ghost,.chip,.set label,.fu-q{font-family:var(--font-mono)}.hamburger{position:fixed;z-index:30;top:calc(env(safe-area-inset-top,0px) + 14px);left:calc(env(safe-area-inset-left,0px) + 16px);width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:#f0ede80a;display:grid;place-content:center;gap:4px;cursor:pointer;transition:border-color .3s var(--ease),background .3s var(--ease)}.hamburger:hover{border-color:var(--accent)}.hamburger span{display:block;width:18px;height:2px;background:var(--fg);border-radius:2px;transition:transform .3s var(--ease),opacity .2s var(--ease)}.hamburger.open{border-color:var(--accent)}.hamburger.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.ask{width:100%;max-width:460px;display:flex;flex-direction:column;align-items:center;gap:22px}.orb-wrap{position:relative;flex:0 0 auto;width:min(320px,calc(var(--app-h, 100dvh) * .42));height:min(320px,calc(var(--app-h, 100dvh) * .42))}.orb-canvas{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none}.orb-label{position:absolute;bottom:6px;left:0;width:100%;text-align:center;color:var(--muted);font-size:12px;letter-spacing:.12em;text-transform:uppercase;pointer-events:none}button{font:inherit;cursor:pointer}.start{font-family:var(--font-display);font-weight:800;letter-spacing:.14em;text-transform:uppercase;border:0;border-radius:999px;padding:15px 46px;font-size:16px;color:#04222f;background:var(--accent);box-shadow:0 12px 34px -12px var(--accent);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.start:hover{transform:translateY(-2px);box-shadow:0 18px 40px -12px var(--accent)}.panel-in{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;animation:rise .35s var(--ease)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}textarea,input[type=text],input[type=number]{width:100%;background:#0c0f15;color:var(--fg);border:1px solid var(--line);border-radius:12px;padding:13px 14px;font-size:16px;font-family:var(--font-body);transition:border-color .3s var(--ease)}textarea{resize:none}textarea:focus,input:focus{outline:none;border-color:var(--accent)}.thumb{max-height:140px;border-radius:12px;border:1px solid var(--line)}.row{display:flex;gap:10px;width:100%}.row>button{flex:1}.primary{border:0;border-radius:12px;padding:13px;font-weight:700;color:#04222f;background:var(--accent);transition:transform .2s var(--ease),opacity .2s var(--ease)}.primary:hover:not(:disabled){transform:translateY(-1px)}.primary:disabled{opacity:.4}.ghost{border:1px solid var(--line);border-radius:12px;padding:13px;background:#14171e;color:var(--fg);letter-spacing:.03em;transition:border-color .3s var(--ease)}.ghost:hover:not(:disabled){border-color:var(--accent)}.link{background:none;border:0;color:var(--muted);font-size:12px;font-family:var(--font-mono);letter-spacing:.06em}.q{font-size:18px;line-height:1.55;text-align:center;margin:0 0 4px;max-width:380px}.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.chip{border:1px solid var(--line);background:#14171e;color:var(--fg);border-radius:999px;padding:9px 16px;font-size:13px;transition:border-color .3s var(--ease)}.chip:hover{border-color:var(--accent)}.result{gap:10px}.result .food{font-size:11px;color:var(--accent);letter-spacing:.14em;text-transform:uppercase}.result .msg{font-size:16px;line-height:1.6;text-align:center;margin:2px 0 6px;max-width:380px}.hint{color:var(--muted)}.hint.sm{font-size:11px;letter-spacing:.04em}.ok{color:var(--yes);font-weight:600;font-family:var(--font-mono)}.err{color:var(--no);font-size:13px}.followlog{width:100%;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:12px}.fu{display:flex;flex-direction:column;gap:3px}.fu-q{margin:0;font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.fu-a{margin:0;font-size:14px;line-height:1.55}.followrow{margin-top:4px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;opacity:0;pointer-events:none;transition:opacity .3s var(--ease);z-index:20}.scrim.show{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;left:0;height:100%;width:268px;z-index:25;background:var(--bg2);border-right:1px solid var(--line);padding:calc(env(safe-area-inset-top,0px) + 78px) 16px calc(env(safe-area-inset-bottom,0px) + 16px);transform:translate(-100%);transition:transform .42s var(--ease)}.drawer.open{transform:none}.drawer-h{font-family:var(--font-display);font-weight:800;font-size:18px;letter-spacing:.02em;margin:0 8px 18px;color:var(--fg)}.drawer-item{width:100%;text-align:left;border:0;background:none;color:var(--fg);padding:14px 10px;border-radius:10px;font-size:15px;display:flex;gap:12px;align-items:center;transition:background .25s var(--ease)}.drawer-item:hover{background:#f0ede80d}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:35;display:flex;align-items:flex-end}.sheet{width:100%;max-height:80%;overflow:auto;background:var(--card);border-radius:18px 18px 0 0;border-top:1px solid var(--line);padding:16px 18px 28px;animation:rise .3s var(--ease)}@media (min-width: 560px){.sheet-scrim{align-items:center}.sheet{max-width:440px;margin:0 auto;border-radius:18px}}.sheet-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.sheet-h b{font-family:var(--font-display);font-weight:700;font-size:17px}.x{background:none;border:0;color:var(--muted);font-size:16px}.hist{list-style:none;margin:0;padding:0}.hist li{display:flex;justify-content:space-between;gap:10px;padding:12px 2px;border-bottom:1px solid var(--line);font-size:14px}.hist .t{color:var(--muted);white-space:nowrap;font-family:var(--font-mono);font-size:12px}.set{display:flex;flex-direction:column;gap:14px}.set label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.acc-row{display:flex;align-items:center;gap:10px}.badge-guest{background:#30b8ff24;color:var(--accent);border:1px solid rgba(48,184,255,.4);border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.set button:disabled{opacity:.55;cursor:not-allowed}
