:root {
  --cg-cream:#fff7ed;
  --cg-surface:#fffdf9;
  --cg-coral:#f26545;
  --cg-coral-dark:#c84b34;
  --cg-navy:#172a43;
  --cg-navy-soft:#29415e;
  --cg-gold:#f5b942;
  --cg-green:#28886b;
  --cg-peach:#ffe2cf;
  --cg-border:rgba(23,42,67,.12);
  --cg-muted:#6d7480;
  --cg-shadow:0 16px 38px rgba(23,42,67,.09);
  --cg-shadow-soft:0 8px 22px rgba(23,42,67,.07);
  --red:var(--cg-coral-dark);
  --blue:#315f91;
  --green:var(--cg-green);
  --amber:#9b6413;
  --ink:var(--cg-navy);
  --muted:var(--cg-muted);
  --line:var(--cg-border);
  --bg:var(--cg-cream);
  --card:var(--cg-surface);
  --soft:#f7efe6;
}
* { box-sizing:border-box; }
html, body { max-width:100%; overflow-x:hidden; }
body { margin:0; font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif; background:var(--bg); color:var(--ink); line-height:1.65; }
a { color:inherit; }
.skip-link { position:fixed; z-index:100; top:8px; left:12px; padding:10px 14px; border-radius:10px; background:var(--cg-navy); color:#fff; font-weight:800; text-decoration:none; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.site-header { padding:0 24px; background:var(--cg-surface); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:10; overflow:visible; }
.site-header-inner { width:min(1180px, 100%); margin:0 auto; display:flex; justify-content:space-between; gap:18px; align-items:center; padding:16px 0; min-width:0; }
.brand { display:flex; gap:11px; align-items:center; font-weight:800; text-decoration:none; min-width:0; max-width:100%; overflow:visible; }
.brand-mark { display:block; flex:0 0 40px; width:40px; height:40px; border-radius:12px; box-shadow:0 5px 12px rgba(242,101,69,.18); }
.brand-text { display:flex; flex-direction:column; color:var(--cg-navy); font-size:18px; line-height:1.05; min-width:0; overflow:visible; }
.brand-text small { color:var(--cg-muted); font-size:11px; font-weight:650; margin-top:5px; }
.site-nav { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end; min-width:0; }
.site-nav a, .link-button { display:inline-flex; min-height:44px; align-items:center; justify-content:center; text-decoration:none; border:1px solid transparent; border-radius:12px; background:transparent; padding:9px 11px; font:inherit; font-weight:750; cursor:pointer; color:var(--cg-navy); }
.site-nav a:hover, .link-button:hover { background:var(--cg-peach); }
.site-nav a[aria-current="page"] { background:var(--cg-peach); color:var(--cg-coral-dark); }
.site-nav .site-nav-cta { border-color:var(--cg-coral); background:var(--cg-coral); color:#fff; box-shadow:0 6px 16px rgba(200,75,52,.18); }
.site-nav .site-nav-cta:hover { border-color:var(--cg-coral-dark); background:var(--cg-coral-dark); }
.brand:focus-visible, .site-nav a:focus-visible, .link-button:focus-visible { outline:3px solid #b93424; outline-offset:3px; }
.skip-link:focus-visible, .site-footer a:focus-visible { outline:3px solid #f5b942; outline-offset:3px; }
.inline-form { display:inline; margin:0; }
.container { width:min(1120px, calc(100vw - 32px)); margin:0 auto; padding:42px 0 64px; }
.hero { padding:48px 0; }
.eyebrow, .badge { display:inline-block; padding:5px 10px; background:#fff8f2; color:var(--cg-coral-dark); border:1px solid rgba(200,75,52,.2); border-radius:999px; font-weight:800; font-size:13px; }
.badge.published, .badge.issued, .badge.viewed, .badge.available { color:var(--green); border-color:#b7ded8; background:#f0fdfa; }
.badge.used { color:var(--blue); border-color:#bdd2ff; background:#eff6ff; }
.badge.expired, .badge.closed, .badge.cancelled { color:var(--muted); border-color:var(--line); background:#f8fafc; }
.badge.paused { color:var(--amber); border-color:#f2d1a8; background:#fff7ed; }
.badge.not_yet_usable { color:var(--amber); border-color:#f2d1a8; background:#fff7ed; }
h1 { font-size:clamp(32px, 4.5vw, 48px); line-height:1.12; margin:12px 0; color:var(--cg-navy); word-break:keep-all; }
h2 { margin-top:0; }
h3 { margin:10px 0; }
.lead { font-size:20px; color:var(--muted); max-width:720px; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 15px; border-radius:12px; border:1px solid var(--line); text-decoration:none; background:var(--cg-surface); cursor:pointer; font-weight:750; color:var(--ink); transition:transform .18s ease, border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
.btn.primary { background:var(--cg-coral); color:#fff; border-color:var(--cg-coral); box-shadow:0 7px 16px rgba(200,75,52,.17); }
.btn.primary:hover { background:var(--cg-coral-dark); border-color:var(--cg-coral-dark); }
.btn.danger { border-color:#db837a; color:#b91c1c; }
.btn:hover { transform:translateY(-1px); }
.btn:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline:3px solid var(--cg-coral-dark); outline-offset:3px; }
.cta-row, .button-row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:18px 0; }
.grid { display:grid; gap:18px; }
.grid.two { grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); }
.grid.three { grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); }
.grid.four { grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); }
.card, .panel, .form-card, .coupon-detail { background:var(--card); border:1px solid var(--line); border-radius:20px; padding:24px; box-shadow:var(--cg-shadow-soft); }
.panel { margin:24px 0; }
.card { overflow:hidden; padding:0; }
.card-body { padding:18px; }
.card-img, .game-hero img, .title-asset { width:100%; max-width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:16px; background:var(--soft); }
.game-card .card-img { aspect-ratio:16/9; object-position:center; }
.template-card .card-img { aspect-ratio:16/7; max-height:150px; object-fit:contain; padding:10px; }
.title-asset { flex:0 1 220px; max-width:min(220px, 30vw); min-width:0; max-height:150px; object-fit:contain; padding:8px; }
.placeholder-img { display:flex; align-items:center; justify-content:center; min-height:180px; border-radius:8px; background:var(--soft); font-weight:800; }
.placeholder-img.large { min-height:260px; }
.form-card { max-width:560px; margin:0 auto; min-width:0; }
.form-card.wide { max-width:960px; width:100%; }
.form-card form { min-width:0; max-width:100%; }
.owner-account-required { width:min(720px, 100%); margin:0; padding:clamp(24px, 5vw, 48px); border:1px solid var(--line); border-radius:20px; background:var(--card); box-shadow:var(--cg-shadow); }
.owner-account-required .lead { max-width:640px; }
.owner-account-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:24px; }
.owner-account-actions form { display:inline-flex; margin:0; }
.owner-account-required .btn { min-height:44px; }
.owner-account-required .btn:focus-visible { outline:3px solid #b93424; outline-offset:3px; }
form label { display:block; margin:12px 0; font-weight:700; }
input, textarea, select { width:100%; max-width:100%; min-width:0; padding:12px 13px; border:1px solid rgba(23,42,67,.18); border-radius:12px; margin-top:6px; font:inherit; background:#fff; color:var(--cg-navy); }
input:hover, textarea:hover, select:hover { border-color:rgba(23,42,67,.32); }
input[type="checkbox"] { width:auto; margin:0; }
input[type="file"] { overflow:hidden; }
.form-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap:8px 18px; min-width:0; }
.form-grid > label { min-width:0; max-width:100%; }
.form-section { border:1px solid var(--line); border-radius:18px; padding:20px; margin:0 0 18px; min-width:0; max-width:100%; background:#fffefa; }
.form-section legend { padding:0 8px; color:var(--cg-navy); font-weight:850; }
.optional-section { background:#fff8f2; }
.optional-section > summary { cursor:pointer; font-weight:800; }
.optional-section-body { padding-top:12px; }
.guide-preview { display:grid; gap:8px; margin:12px 0 16px; padding:16px; border:1px solid rgba(245,185,66,.45); border-radius:14px; background:#fffaf0; }
.guide-preview p { margin:0; color:var(--muted); }
[data-probability-field][hidden] { display:none; }
.benefit-fields { min-width:0; margin:10px 0; }
.benefit-group { padding:12px 0; border-top:1px solid var(--line); }
.benefit-group[hidden] { display:none; }
.legacy-benefit-note { padding:12px; background:#f8fafc; border-left:3px solid var(--red); color:var(--muted); }
.coupon-benefit-preview { margin-top:16px; padding-top:16px; border-top:1px solid var(--line); }
.coupon-benefit-preview dl { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px 18px; margin:10px 0 0; }
.coupon-benefit-preview dl > div { min-width:0; }
.coupon-benefit-preview dt { color:var(--muted); font-size:13px; font-weight:700; }
.coupon-benefit-preview dd { margin:3px 0 0; font-weight:800; overflow-wrap:anywhere; }
.checkbox-label { display:flex; align-items:flex-start; gap:10px; font-weight:600; }
.signup-honeypot { position:absolute !important; left:-10000px !important; top:auto !important; width:1px !important; height:1px !important; overflow:hidden !important; opacity:0 !important; pointer-events:none !important; }
.legal-readiness-notice { width:min(720px, 100%); margin:24px auto; }
.help { display:block; color:var(--muted); font-size:13px; font-weight:500; margin-top:5px; }
.form-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; justify-content:flex-end; }
.error { display:block; color:#b91c1c; font-size:13px; margin-top:4px; }
.message { padding:13px 15px; border-radius:14px; background:var(--cg-surface); border:1px solid var(--line); margin:8px 0; box-shadow:var(--cg-shadow-soft); }
.message.success { border-color:#86efac; background:#f0fdf4; }
.message.error { border-color:#fca5a5; background:#fef2f2; }
.muted { color:var(--muted); }
.page-title { margin-bottom:28px; }
.split-title { display:flex; justify-content:space-between; align-items:center; gap:20px; min-width:0; }
.split-title > * { min-width:0; }
.split-title p { max-width:720px; color:var(--muted); }
.stats-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(130px,1fr)); gap:12px; margin:20px 0; }
.stat { background:var(--cg-navy); border:1px solid var(--cg-navy); border-radius:16px; padding:17px; color:#fff; box-shadow:var(--cg-shadow-soft); }
.stat strong { display:block; font-size:28px; color:#fff; }
.stat span { color:#d9e2ec; }
.next-action, .empty-state { display:grid; grid-template-columns:140px minmax(0, 1fr); gap:22px; align-items:center; background:#fffaf4; }
.next-action img, .empty-state img { width:140px; max-width:100%; border-radius:18px; }
.empty-state { grid-column:1 / -1; }
.empty-state img { width:min(220px, 100%); }
.game-shell { min-width:0; padding:26px; border:1px solid var(--line); border-radius:24px; background:var(--cg-surface); box-shadow:var(--cg-shadow); }
.game-hero { display:grid; grid-template-columns:minmax(220px, .8fr) minmax(0, 1.2fr); gap:26px; align-items:center; min-width:0; padding:22px; border:1px solid var(--line); border-radius:20px; background:#fffaf4; }
.game-hero > * { min-width:0; }
.coupon-box { border:1px solid rgba(242,101,69,.35); background:#fff3eb; padding:15px; border-radius:14px; color:var(--cg-navy); }
.sample-store-label, .game-store-label { margin:7px 0 4px; color:var(--muted); font-size:14px; font-weight:800; }
.mini-guide { display:grid; gap:8px; margin:12px 0 16px; }
.mini-guide p { margin:0; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--muted); }
.game-area { margin:24px 0; padding:24px; border-radius:20px; background:#fff; color:var(--ink); border:1px solid var(--line); min-height:190px; display:flex; justify-content:center; align-items:center; text-align:center; box-shadow:var(--cg-shadow-soft); }
.sample-playground { display:grid; grid-template-columns:150px minmax(0, 1fr); gap:24px; text-align:left; background:#f8fafc; }
.coupon-draw-stage { display:grid; grid-template-columns:150px minmax(0, 1fr); gap:24px; text-align:left; background:#f8fafc; }
.coupon-wheel { width:150px; height:150px; max-width:100%; border-radius:50%; border:10px solid #fff; background:conic-gradient(var(--red) 0 25%, var(--blue) 0 50%, var(--green) 0 75%, var(--amber) 0); box-shadow:0 10px 24px rgba(32,36,44,.12); position:relative; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:900; }
.coupon-wheel.is-spinning { animation:coupon-wheel-spin .8s linear infinite; }
.coupon-wheel span { background:rgba(32,36,44,.82); padding:8px 12px; border-radius:999px; }
.coupon-wheel i { position:absolute; width:14px; height:14px; border-radius:50%; background:#fff; }
.coupon-wheel i:nth-child(2) { top:18px; }
.coupon-wheel i:nth-child(3) { right:18px; }
.coupon-wheel i:nth-child(4) { bottom:18px; }
@keyframes coupon-wheel-spin { to { transform:rotate(360deg); } }
.luck-roulette-stage { width:100%; min-width:0; display:grid; grid-template-columns:minmax(260px, .9fr) minmax(0, 1.1fr); gap:28px; text-align:left; background:#f8fafc; }
.luck-roulette-stage > * { min-width:0; }
.luck-roulette-wheel-wrap { position:relative; width:min(100%, 320px); aspect-ratio:1; justify-self:center; }
.luck-roulette-wheel { position:absolute; inset:14px; border:10px solid #fff; border-radius:50%; box-shadow:0 12px 28px rgba(32,36,44,.16); overflow:hidden; transform:rotate(0deg); will-change:transform; }
.luck-roulette-pointer { position:absolute; z-index:3; top:0; left:50%; width:0; height:0; transform:translateX(-50%); border-left:14px solid transparent; border-right:14px solid transparent; border-top:32px solid var(--ink); filter:drop-shadow(0 3px 2px rgba(32,36,44,.2)); }
.luck-roulette-hub { position:absolute; z-index:2; top:50%; left:50%; width:70px; height:70px; transform:translate(-50%, -50%); display:flex; align-items:center; justify-content:center; border:7px solid #fff; border-radius:50%; background:var(--ink); color:#fff; font-size:14px; font-weight:900; box-shadow:0 4px 14px rgba(32,36,44,.22); }
.luck-roulette-segment-label { position:absolute; top:50%; left:50%; width:42%; padding:4px 6px; overflow:hidden; color:var(--ink); background:rgba(255,255,255,.88); border-radius:4px; font-size:11px; font-weight:900; line-height:1.2; text-align:center; text-overflow:ellipsis; white-space:nowrap; transform-origin:0 50%; }
.luck-roulette-copy { align-self:center; }
.luck-roulette-copy h2 { margin-top:0; }
.luck-roulette-status { color:var(--muted); }
.luck-roulette-notice { padding:10px 12px; border-left:3px solid var(--amber); background:#fff; color:var(--muted); font-size:14px; }
.luck-roulette-notice p { margin:0; }
.luck-roulette-notice p + p { margin-top:4px; }
.meat-flip-stage {
  --grill-ink:#17191a;
  --grill-panel:#242729;
  --grill-metal:#8f918d;
  --grill-copy:#f9fafb;
  --grill-muted:#d2d5d8;
  --grill-ember:#f97316;
  width:min(760px, 100%);
  min-width:0;
  margin:24px auto;
  padding:20px;
  display:grid;
  gap:14px;
  align-items:stretch;
  overflow:hidden;
  border:1px solid #3d4244;
  border-radius:8px;
  background:linear-gradient(150deg, #282c2e 0%, #17191a 70%);
  box-shadow:0 18px 36px rgba(25,28,30,.22);
  color:var(--grill-copy);
  text-align:left;
}
.meat-flip-stage.theme-charcoal { background:linear-gradient(150deg, #202224 0%, #101112 72%); }
.meat-flip-stage.theme-fresh { background:linear-gradient(150deg, #26312f 0%, #171d1c 72%); }
.meat-flip-stage > * { min-width:0; }
.meat-flip-header { display:grid; gap:4px; }
.meat-flip-header h2, .meat-flip-header p { margin:0; }
.meat-flip-header h2 { color:#fff; font-size:24px; line-height:1.25; overflow-wrap:anywhere; }
.meat-flip-kicker { color:#fbbf24; font-size:12px; font-weight:900; letter-spacing:0; }
.meat-flip-status { min-height:22px; color:var(--grill-muted); overflow-wrap:anywhere; }
.meat-flip-hud { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
.meat-flip-hud-item { min-width:0; display:flex; align-items:baseline; justify-content:space-between; gap:8px; padding:10px 12px; border:1px solid #4b5052; border-radius:6px; background:#202325; }
.meat-flip-hud-label { color:#c8cccf; font-size:12px; font-weight:700; }
.meat-flip-hud-item strong { color:#fff; font-size:19px; line-height:1; white-space:nowrap; }
.meat-flip-hud-item.is-urgent { border-color:#f97316; background:#3a241c; }
.meat-flip-hud-item.is-urgent strong { color:#fdba74; animation:meat-flip-warning .55s ease-in-out infinite alternate; }
.meat-flip-success.is-bumped { animation:meat-flip-hud-bump .24s ease-out; }
.meat-flip-progress { height:8px; overflow:hidden; border:1px solid #505456; border-radius:4px; background:#101213; }
.meat-flip-progress-bar { display:block; width:100%; height:100%; transform:scaleX(1); transform-origin:left center; background:linear-gradient(90deg, #fbbf24, #f97316); transition:transform .1s linear, background-color .2s ease; }
.meat-flip-progress.is-urgent .meat-flip-progress-bar { background:#ef4444; }
.meat-flip-grill { position:relative; min-width:0; padding:16px; overflow:hidden; border:2px solid var(--grill-metal); border-radius:8px; background:repeating-linear-gradient(90deg, #292c2d 0 5px, #111314 5px 16px); box-shadow:inset 0 0 0 4px #151718, inset 0 10px 24px rgba(0,0,0,.48); }
.meat-flip-grill::before { content:""; position:absolute; inset:auto 0 0; height:42%; background:linear-gradient(180deg, transparent, rgba(249,115,22,.18)); pointer-events:none; }
.meat-flip-heat { position:absolute; z-index:0; left:18%; right:18%; bottom:8px; height:4px; background:linear-gradient(90deg, transparent, #f97316 22%, #fbbf24 50%, #f97316 78%, transparent); box-shadow:0 -12px 28px rgba(249,115,22,.42); opacity:.8; }
.meat-flip-board { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; min-width:0; }
.meat-flip-start-guide { grid-column:1 / -1; min-height:210px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; padding:22px; border:1px solid rgba(255,255,255,.2); border-radius:6px; background:rgba(16,18,19,.78); color:#fff; text-align:center; }
.meat-flip-start-guide p { max-width:520px; margin:0; color:#d5d8da; line-height:1.5; }
.meat-flip-start-kicker { display:inline-flex; padding:5px 9px; border:1px solid #f59e0b; border-radius:999px; color:#fde68a; font-size:12px; font-weight:900; }
.meat-flip-start-title { font-size:20px; }
.meat-flip-start-rule { font-size:13px; }
.meat-flip-piece { position:relative; width:100%; min-width:64px; min-height:112px; padding:6px 4px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; overflow:visible; border:0; border-radius:8px; background:transparent; color:#fff; cursor:pointer; font:inherit; transform:translateZ(0); }
.meat-flip-piece:not(:disabled):hover { transform:translateY(-2px); }
.meat-flip-piece:focus-visible { outline:3px solid #fff; outline-offset:2px; box-shadow:0 0 0 5px #f59e0b; }
.meat-flip-piece:disabled { cursor:default; }
.meat-flip-cut { position:relative; width:82%; max-width:132px; min-width:58px; aspect-ratio:1.18; display:flex; align-items:center; justify-content:center; overflow:hidden; border:3px solid #f0a49d; border-radius:48% 52% 45% 55% / 55% 43% 57% 45%; background:linear-gradient(145deg, #f7b0a8 0%, #dd766f 58%, #b94f49 100%); box-shadow:0 7px 13px rgba(0,0,0,.36); transition:transform .2s ease, filter .2s ease, border-color .2s ease, box-shadow .2s ease; }
.meat-flip-piece:nth-child(3n+2) .meat-flip-cut { border-radius:55% 45% 52% 48% / 45% 57% 43% 55%; transform:rotate(3deg); }
.meat-flip-piece:nth-child(3n) .meat-flip-cut { border-radius:44% 56% 48% 52% / 58% 44% 56% 42%; transform:rotate(-3deg); }
.meat-flip-cut::before { content:""; position:absolute; left:18%; top:9%; width:16%; height:78%; border-radius:999px; background:rgba(255,238,220,.55); transform:rotate(18deg); }
.meat-flip-cut::after { content:""; position:absolute; inset:19% 13%; background:repeating-linear-gradient(125deg, transparent 0 12px, rgba(55,29,20,.7) 12px 16px, transparent 16px 26px); opacity:.12; }
.meat-flip-piece-icon { position:relative; z-index:2; display:flex; width:30px; height:30px; align-items:center; justify-content:center; border:2px solid rgba(255,255,255,.72); border-radius:50%; background:rgba(44,22,19,.46); color:#fff; font-size:20px; font-weight:900; line-height:1; }
.meat-flip-piece-caption { min-width:0; display:flex; align-items:center; justify-content:center; gap:5px; padding:4px 7px; border-radius:6px; background:rgba(10,12,13,.84); }
.meat-flip-piece-number { display:inline-flex; flex:0 0 20px; width:20px; height:20px; align-items:center; justify-content:center; border-radius:50%; background:#f3f4f6; color:#25292b; font-size:11px; font-weight:900; }
.meat-flip-piece-label { min-width:0; max-width:100%; overflow-wrap:anywhere; color:#fff; font-size:12px; font-weight:800; line-height:1.2; text-align:center; }
.meat-flip-piece.is-raw .meat-flip-cut { animation:meat-flip-raw 1.8s ease-in-out infinite alternate; }
.meat-flip-piece.is-ready::before { content:""; position:absolute; z-index:3; top:3px; left:50%; width:34px; height:20px; border-left:2px solid rgba(255,255,255,.7); border-right:2px solid rgba(255,255,255,.45); opacity:.8; animation:meat-flip-heat 1s ease-out infinite; }
.meat-flip-piece.is-ready .meat-flip-cut { border-color:#facc15; background:linear-gradient(145deg, #f6b46e 0%, #d97632 55%, #9f3f21 100%); box-shadow:0 0 0 3px rgba(250,204,21,.35), 0 0 22px rgba(249,115,22,.75), 0 7px 13px rgba(0,0,0,.4); animation:meat-flip-ready .55s ease-in-out infinite alternate; }
.meat-flip-piece.is-ready .meat-flip-piece-caption { background:#7c3f12; }
.meat-flip-piece.is-cooked .meat-flip-cut { border-color:#d6a066; background:linear-gradient(145deg, #b86b39 0%, #7f3f23 58%, #512b1d 100%); box-shadow:0 0 0 3px rgba(34,197,94,.25), 0 7px 13px rgba(0,0,0,.42); animation:meat-flip-cooked .28s ease-out; }
.meat-flip-piece.is-cooked .meat-flip-cut::after { opacity:.78; }
.meat-flip-piece.is-cooked .meat-flip-piece-icon { border-color:#86efac; background:#166534; }
.meat-flip-piece.is-cooked .meat-flip-piece-caption { background:#14532d; }
.meat-flip-piece.is-missed { animation:meat-flip-missed .28s ease-out; }
.meat-flip-piece.is-missed .meat-flip-cut { border-color:#9ca3af; background:linear-gradient(145deg, #8f827b, #5f5854); filter:saturate(.3); }
.meat-flip-piece.is-missed .meat-flip-piece-caption { background:#4b5563; }
.meat-flip-piece.is-late .meat-flip-cut { border-color:#6b3a2d; background:linear-gradient(145deg, #5c3326 0%, #241817 58%, #0f1112 100%); box-shadow:0 0 0 2px rgba(239,68,68,.22), 0 8px 16px rgba(0,0,0,.5); filter:saturate(.45); }
.meat-flip-piece.is-late .meat-flip-cut::after { opacity:.95; background:repeating-linear-gradient(125deg, transparent 0 8px, rgba(0,0,0,.92) 8px 13px, transparent 13px 22px); }
.meat-flip-piece.is-late .meat-flip-piece-caption { background:#3f1d1b; }
.meat-flip-piece.is-untouched .meat-flip-cut { border-color:#6b7280; background:linear-gradient(145deg, #746a66, #3f3b3a); filter:grayscale(.75); opacity:.72; }
.meat-flip-piece.is-untouched .meat-flip-piece-caption { background:#374151; }
.meat-flip-result-stars { display:flex; min-height:40px; align-items:center; justify-content:center; gap:7px; color:#fbbf24; font-size:34px; line-height:1; }
.meat-flip-result-stars.is-empty, .meat-flip-result-stars .is-empty { color:#74787b; }
.meat-flip-notice { margin:0; padding:9px 11px; border-left:3px solid #f59e0b; background:#202325; color:#d6d9db; font-size:13px; line-height:1.45; }
.meat-flip-start-button { width:100%; min-height:52px; justify-self:stretch; border-color:#dc4a32 !important; background:#dc4a32 !important; color:#fff !important; font-size:16px; }
.meat-flip-stage.is-playing .meat-flip-start-button, .meat-flip-stage.is-judging .meat-flip-start-button, .meat-flip-stage.is-result .meat-flip-start-button { display:none; }
.game-shell.game-result-integrated .meat-flip-stage { margin-bottom:0; border-bottom-right-radius:0; border-bottom-left-radius:0; }
.game-shell.game-result-integrated #game-result { width:min(760px, 100%); margin:-1px auto 24px; border-color:#3d4244; border-top-right-radius:0; border-top-left-radius:0; box-shadow:0 18px 36px rgba(25,28,30,.14); }
.game-shell.game-result-integrated #game-result h2 { margin-bottom:8px; }
.game-shell.game-result-integrated #game-result .button-row { margin-bottom:0; }
@keyframes meat-flip-raw { from { transform:scale(.98); } to { transform:scale(1.02); } }
@keyframes meat-flip-ready { from { transform:scale(1); } to { transform:scale(1.06); } }
@keyframes meat-flip-cooked { 0% { transform:scaleX(1); } 45% { transform:scaleX(.18); } 100% { transform:scaleX(1); } }
@keyframes meat-flip-missed { 0%,100% { transform:translateX(0); } 35% { transform:translateX(-5px); } 70% { transform:translateX(5px); } }
@keyframes meat-flip-heat { from { transform:translate(-50%, 7px) scaleY(.7); opacity:0; } to { transform:translate(-50%, -9px) scaleY(1.15); opacity:.8; } }
@keyframes meat-flip-hud-bump { 50% { transform:scale(1.14); color:#86efac; } }
@keyframes meat-flip-warning { from { opacity:.72; } to { opacity:1; } }

/* Meat flip realism and game-feel layer. */
.meat-flip-stage { --grill-metal:#97938d; --grill-muted:#ddd7d1; border-color:#4d4641; background:linear-gradient(100deg, rgba(146,61,32,.2), transparent 34%), linear-gradient(150deg, #302b27 0%, #171412 70%); box-shadow:0 18px 36px rgba(25,18,14,.24); }
.meat-flip-stage.theme-charcoal { background:linear-gradient(100deg, rgba(132,51,24,.18), transparent 34%), linear-gradient(150deg, #262321 0%, #11100f 72%); }
.meat-flip-stage.theme-fresh { background:linear-gradient(100deg, rgba(183,93,48,.18), transparent 34%), linear-gradient(150deg, #34302a 0%, #1b1916 72%); }
.meat-flip-hud-item { border-color:#554d47; background:#211e1c; transition:border-color .2s ease, background-color .2s ease; }
.meat-flip-hud-item.is-tense { border-color:#c97b35; }
.meat-flip-hud-item.is-urgent { background:#3b241b; }
.meat-flip-hud-item.is-urgent strong { animation:none; }
.meat-flip-hud-item.is-final-second strong { animation:meat-flip-warning .7s ease-in-out infinite alternate; }
.meat-flip-progress.is-tense .meat-flip-progress-bar { background:linear-gradient(90deg, #eab64d, #f97316); }
.meat-flip-progress.is-final-second { box-shadow:0 0 0 1px rgba(239,68,68,.45); }
.meat-flip-grill { min-height:286px; padding:18px; border-width:3px; background:#151311; box-shadow:inset 0 0 0 4px #312d2a, inset 0 10px 22px rgba(0,0,0,.62), 0 8px 16px rgba(0,0,0,.24); isolation:isolate; }
.meat-flip-grill::before { z-index:0; inset:0; height:auto; background:linear-gradient(105deg, rgba(255,173,92,.14), transparent 34%, rgba(0,0,0,.16)); }
.meat-flip-grill::after { content:""; position:absolute; z-index:5; left:8%; right:8%; top:8%; height:2px; background:linear-gradient(90deg, transparent, rgba(255,225,181,.7), transparent); opacity:0; pointer-events:none; }
.meat-flip-stage.is-judging .meat-flip-grill::after { opacity:.8; animation:meat-flip-judge-scan .85s ease-in-out infinite alternate; }
.meat-flip-table-glow { position:absolute; z-index:0; inset:0; background:linear-gradient(180deg, rgba(255,255,255,.05), transparent 22%, rgba(190,65,24,.12)); pointer-events:none; }
.meat-flip-coals { position:absolute; z-index:0; inset:24px 28px; display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); grid-template-rows:repeat(2, 1fr); gap:12px 18px; opacity:.82; animation:meat-flip-coal-breathe 4.8s ease-in-out infinite alternate; pointer-events:none; }
.meat-flip-coal { align-self:center; justify-self:center; width:80%; height:58%; min-height:38px; clip-path:polygon(8% 20%, 30% 3%, 74% 10%, 96% 40%, 82% 90%, 42% 98%, 4% 70%); background:linear-gradient(145deg, #2a1712 4%, #9d351d 45%, #f06428 68%, #3b1b13 100%); box-shadow:0 0 12px rgba(241,92,33,.42); }
.meat-flip-coal:nth-child(2n) { width:68%; height:72%; transform:rotate(12deg); background:linear-gradient(155deg, #241512 5%, #7e2f1d 38%, #e95f26 72%, #301714); }
.meat-flip-coal:nth-child(3n) { width:88%; height:52%; transform:rotate(-8deg); }
.meat-flip-heat { z-index:1; inset:18% 12% 12%; height:auto; background:linear-gradient(180deg, transparent 12%, rgba(239,87,28,.1) 62%, rgba(249,115,22,.24)); box-shadow:none; }
.meat-flip-grate { position:absolute; z-index:2; inset:8px; border:1px solid #b1aca5; border-radius:5px; background:repeating-linear-gradient(90deg, transparent 0 15px, rgba(203,200,194,.8) 15px 18px), repeating-linear-gradient(0deg, transparent 0 24px, rgba(119,116,111,.72) 24px 27px); box-shadow:inset 0 0 18px rgba(0,0,0,.62); opacity:.9; pointer-events:none; }
.meat-flip-board { z-index:3; min-height:244px; align-content:center; }
.meat-flip-start-guide { min-height:230px; border-color:rgba(255,226,195,.28); background:rgba(20,17,15,.88); box-shadow:0 8px 20px rgba(0,0,0,.28); }
.meat-flip-start-guide p { color:#ded7d0; }
.meat-flip-countdown { position:absolute; z-index:6; inset:12px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,215,170,.28); border-radius:6px; background:rgba(18,14,12,.86); color:#ffe7bd; font-size:52px; font-weight:900; text-align:center; animation:meat-flip-countdown-pop .38s ease-out; }
.meat-flip-countdown.hidden { display:none; }
.meat-flip-stage.is-countdown .meat-flip-coals { opacity:1; }
.meat-flip-stage.is-countdown .meat-flip-start-button, .meat-flip-stage.is-playing .meat-flip-start-button, .meat-flip-stage.is-judging .meat-flip-start-button, .meat-flip-stage.is-result .meat-flip-start-button { display:none; }
.meat-flip-piece { min-height:118px; touch-action:manipulation; }
.meat-flip-stage.is-playing .meat-flip-piece.is-raw { animation:meat-flip-place .3s ease-out both; animation-delay:calc(var(--piece-index) * 45ms); }
.meat-flip-piece:not(:disabled):active { transform:translateY(1px) scale(.98); }
.meat-flip-cut { width:86%; max-width:134px; aspect-ratio:1.16; border-width:4px; border-color:#e7b0a0; background:linear-gradient(150deg, rgba(255,222,207,.42) 0 8%, transparent 8% 100%), linear-gradient(140deg, #ee9a91 0%, #d96a62 52%, #a83d39 100%); box-shadow:0 4px 0 #843b32, 0 10px 15px rgba(0,0,0,.44); }
.meat-flip-piece.shape-2 .meat-flip-cut { width:78%; border-radius:56% 44% 50% 50% / 43% 58% 42% 57%; transform:rotate(4deg); }
.meat-flip-piece.shape-3 .meat-flip-cut { width:90%; border-radius:41% 59% 46% 54% / 61% 39% 57% 43%; transform:rotate(-3deg); }
.meat-flip-piece.shape-4 .meat-flip-cut { width:82%; border-radius:52% 48% 59% 41% / 48% 56% 44% 52%; transform:rotate(2deg); }
.meat-flip-cut::before { z-index:1; left:7%; right:7%; top:auto; bottom:4%; width:auto; height:12%; background:rgba(71,25,22,.38); transform:none; }
.meat-flip-cut::after { z-index:3; inset:16% 9%; opacity:.1; transition:opacity .2s ease; }
.meat-flip-fat-rim { position:absolute; z-index:1; inset:2px; border:3px solid rgba(255,225,205,.42); border-radius:inherit; pointer-events:none; }
.meat-flip-marbling { position:absolute; z-index:2; inset:13% 12%; border-radius:inherit; background:repeating-linear-gradient(118deg, transparent 0 9px, rgba(255,231,219,.55) 9px 12px, transparent 12px 20px), repeating-linear-gradient(38deg, transparent 0 17px, rgba(255,205,194,.34) 17px 20px, transparent 20px 31px); opacity:.78; pointer-events:none; }
.meat-flip-juice { position:absolute; z-index:2; top:16%; right:20%; width:22%; height:9%; border-radius:50%; background:rgba(255,235,221,.46); transform:rotate(-18deg); transition:opacity .2s ease, background-color .2s ease; pointer-events:none; }
.meat-flip-piece-icon { z-index:4; background:rgba(52,23,20,.54); }
.meat-flip-piece-caption { position:relative; z-index:6; background:rgba(12,10,9,.88); }
.meat-flip-piece.is-raw .meat-flip-cut { animation-duration:2.2s; }
.meat-flip-piece.is-pre-ready .meat-flip-cut { border-color:#d8a06a; background:linear-gradient(150deg, rgba(255,226,203,.34) 0 8%, transparent 8% 100%), linear-gradient(140deg, #e99a79 0%, #c86545 54%, #8f392c 100%); box-shadow:0 4px 0 #733a2b, 0 10px 15px rgba(0,0,0,.44); }
.meat-flip-piece.is-pre-ready .meat-flip-juice { background:#ffe0b2; opacity:.78; }
.meat-flip-piece.is-pre-ready .meat-flip-piece-caption { background:#59301f; }
.meat-flip-piece.is-ready::before { z-index:5; top:0; height:22px; border-color:rgba(255,244,220,.65); animation-duration:1.1s; }
.meat-flip-piece.is-ready .meat-flip-cut { border-color:#ffd15c; background:linear-gradient(150deg, rgba(255,230,176,.3) 0 8%, transparent 8% 100%), linear-gradient(140deg, #d98a4e 0%, #ae522d 54%, #71301f 100%); box-shadow:0 0 0 3px rgba(250,204,21,.28), 0 0 18px rgba(249,115,22,.62), 0 5px 0 #66301f, 0 10px 15px rgba(0,0,0,.46); animation-duration:.62s; }
.meat-flip-piece.is-ready .meat-flip-marbling { opacity:.45; }
.meat-flip-piece.is-cooked .meat-flip-cut { box-shadow:0 0 0 3px rgba(34,197,94,.22), 0 5px 0 #3b241b, 0 10px 15px rgba(0,0,0,.46); animation-duration:.34s; }
.meat-flip-piece.is-cooked .meat-flip-marbling { opacity:.28; }
.meat-flip-piece.is-cooked .meat-flip-juice { background:#e8a665; opacity:.52; }
.meat-flip-piece.is-missed .meat-flip-cut { border-color:#d2a49b; background:linear-gradient(145deg, #dc8d83, #a95750); filter:saturate(.72); }
.meat-flip-piece.is-missed .meat-flip-piece-caption { background:#5f3430; }
.meat-flip-piece.is-late::before { content:""; position:absolute; z-index:5; top:1px; left:50%; width:30px; height:20px; border-left:2px solid rgba(190,190,190,.42); opacity:.55; animation:meat-flip-heat 1.4s ease-out infinite; }
.meat-flip-piece.is-late .meat-flip-marbling, .meat-flip-piece.is-late .meat-flip-juice { opacity:.12; }
.meat-flip-ember-particle { position:absolute; z-index:7; left:50%; top:38%; width:5px; height:5px; border-radius:50%; background:#ffd166; box-shadow:0 0 5px #f97316; pointer-events:none; animation:meat-flip-ember-burst .68s ease-out forwards; }
.meat-flip-result-stars span { animation:meat-flip-star-reveal .32s ease-out both; animation-delay:calc(var(--star-index) * 120ms); }
.game-shell.meat-flip-coupon-result.game-result-integrated #game-result { border-color:#d69b36; box-shadow:0 18px 36px rgba(116,62,22,.2); }
.game-shell.meat-flip-retry-result.game-result-integrated #game-result .btn.primary { border-color:#c2412d; background:#c2412d; }
@keyframes meat-flip-place { from { opacity:0; transform:translateY(-10px) scale(.94); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes meat-flip-countdown-pop { from { opacity:.5; transform:scale(.96); } to { opacity:1; transform:scale(1); } }
@keyframes meat-flip-coal-breathe { from { opacity:.72; } to { opacity:.9; } }
@keyframes meat-flip-judge-scan { from { transform:translateY(12px); } to { transform:translateY(214px); } }
@keyframes meat-flip-star-reveal { from { opacity:0; transform:translateY(5px) scale(.72); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes meat-flip-ember-burst { from { opacity:1; transform:translate(-50%, 0) scale(1); } to { opacity:0; transform:translate(calc(-50% + var(--ember-x, 12px)), var(--ember-y, -28px)) scale(.45); } }

/* Meat flip v2 keeps nine fixed grill slots and mounts only active pieces. */
.meat-flip-stage.is-v2 { width:min(820px, 100%); }
.meat-flip-stage.is-v2 .meat-flip-v2-hud { grid-template-columns:repeat(5, minmax(0, 1fr)); }
.meat-flip-stage.is-v2 .meat-flip-hud-item { min-height:58px; align-items:flex-start; flex-direction:column; justify-content:center; gap:5px; }
.meat-flip-stage.is-v2 .meat-flip-v2-grill { min-height:410px; padding:20px; }
.meat-flip-rush-notice { margin:2px 0 0; padding:9px 11px; border-left:3px solid #f59e0b; background:#fff7ed; color:#7c2d12; font-size:13px; font-weight:800; }
.meat-flip-stage.is-v2.is-rush .meat-flip-v2-grill { border-color:rgba(245,158,11,.72); animation:meat-flip-v2-rush-pulse 1.8s ease-in-out infinite; }
.meat-flip-stage.is-v2 .meat-flip-v2-board { grid-template-columns:repeat(3, minmax(0, 1fr)); grid-template-rows:repeat(3, minmax(108px, 1fr)); min-height:360px; gap:8px; align-content:stretch; }
.meat-flip-slot { position:relative; min-width:0; min-height:108px; overflow:visible; border:1px solid rgba(219,215,207,.16); border-radius:6px; background:linear-gradient(145deg, rgba(255,255,255,.025), rgba(0,0,0,.1)); box-shadow:inset 0 0 14px rgba(0,0,0,.24); }
.meat-flip-slot::after { content:""; position:absolute; inset:8px; border:1px dashed rgba(255,225,181,.08); border-radius:50%; pointer-events:none; }
.meat-flip-stage.is-v2 .meat-flip-v2-piece { position:absolute; z-index:2; inset:0; width:100%; min-width:64px; min-height:64px; height:100%; padding:4px 2px; animation:meat-flip-v2-spawn .28s ease-out both; }
.meat-flip-stage.is-v2 .meat-flip-v2-piece .meat-flip-cut { width:76%; max-width:112px; min-width:54px; }
.meat-flip-stage.is-v2 .meat-flip-v2-piece .meat-flip-piece-caption { width:96%; padding:3px 4px; }
.meat-flip-stage.is-v2 .meat-flip-v2-piece .meat-flip-piece-label { font-size:11px; }
.meat-flip-stage.is-v2 .meat-flip-v2-piece.is-leaving { pointer-events:none; animation:meat-flip-v2-leave .28s ease-in forwards; }
.meat-flip-stage.is-v2 .meat-flip-v2-piece.is-untouched::before { content:""; position:absolute; z-index:5; top:5px; left:50%; width:28px; height:20px; border-left:2px solid rgba(210,210,210,.36); border-right:1px solid rgba(160,160,160,.22); opacity:.58; animation:meat-flip-heat 1.2s ease-out infinite; }
.meat-flip-v2-guide { position:absolute; z-index:7; inset:20px; min-height:0; }
.meat-flip-final-countdown { position:absolute; z-index:8; right:18px; top:16px; display:flex; width:58px; height:58px; align-items:center; justify-content:center; border:2px solid #fecaca; border-radius:50%; background:rgba(78,18,14,.9); color:#fff; font-size:30px; font-weight:900; line-height:1; box-shadow:0 0 0 5px rgba(239,68,68,.16); pointer-events:none; }
.meat-flip-final-countdown.hidden { display:none; }
.meat-flip-v2-result-overlay { position:absolute; z-index:7; inset:auto 18px 18px; padding:12px; border:1px solid rgba(255,218,154,.34); border-radius:6px; background:rgba(23,17,13,.9); color:#ffe7bd; font-weight:900; text-align:center; }
.meat-flip-v2-result-overlay.hidden { display:none; }
.meat-flip-stage.is-v2 .meat-flip-streak { color:#fde68a; }
@keyframes meat-flip-v2-spawn { from { opacity:0; transform:translateY(-10px) scale(.92); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes meat-flip-v2-leave { from { opacity:1; transform:translateY(0) scale(1); } to { opacity:0; transform:translateY(10px) scale(.9); } }
@keyframes meat-flip-v2-rush-pulse { 0%,100% { box-shadow:inset 0 0 28px rgba(251,146,60,.08), 0 0 0 rgba(245,158,11,0); } 50% { box-shadow:inset 0 0 32px rgba(251,146,60,.14), 0 0 0 2px rgba(245,158,11,.14); } }
.hidden { display:none; }
.result { background:#fffaf3; border:1px solid rgba(245,185,66,.45); border-radius:18px; padding:20px; margin:16px 0; }
.coupon-list { display:grid; gap:12px; }
.copy-input { font-size:15px; }
.copy-status { min-height:20px; }
.share-header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; flex-wrap:wrap; }
.step-list { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; padding:0; margin:18px 0; list-style:none; }
.step-list li { display:flex; align-items:center; gap:10px; padding:12px; border:1px solid var(--line); border-radius:14px; background:#fffaf4; }
.step-list strong { display:inline-flex; width:28px; height:28px; align-items:center; justify-content:center; border-radius:999px; background:var(--cg-coral); color:#fff; }
.wallet-guide { display:flex; gap:14px; align-items:center; }
.coupon-meta { display:grid; gap:10px; margin:18px 0; }
.coupon-meta div { display:flex; justify-content:space-between; gap:12px; padding:12px; border:1px solid var(--line); border-radius:8px; background:#f8fafc; }
.coupon-meta dt { color:var(--muted); font-weight:700; }
.coupon-meta dd { margin:0; font-weight:800; text-align:right; }
.coupon-timing { margin:8px 0; color:var(--muted); }
.staff-check input { max-width:260px; }
.poster-actions { display:flex; justify-content:flex-end; gap:10px; margin-bottom:16px; }
.print-poster { width:min(760px, 100%); margin:0 auto; padding:44px; background:#fffdf9; border:2px solid var(--cg-coral); border-radius:24px; text-align:center; box-shadow:var(--cg-shadow); }
.print-poster h1 { font-size:40px; margin:12px 0 6px; }
.print-poster h2 { font-size:24px; margin:0 0 28px; color:var(--cg-navy-soft); }
.poster-kicker { font-weight:850; color:var(--cg-coral-dark); margin:0; }
.poster-qr { width:max-content; max-width:100%; margin:0 auto; padding:18px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.poster-qr img { display:block; width:280px; height:280px; max-width:100%; image-rendering:pixelated; }
.poster-main { font-size:22px; font-weight:800; margin:28px 0 16px; }
.poster-note, .poster-url { color:var(--muted); }
.poster-url { word-break:break-all; font-size:13px; }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; }
th,td { padding:10px; border-bottom:1px solid var(--line); text-align:left; }
.panel-heading-row { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.panel-heading-row h2 { margin-bottom:6px; }
.panel-heading-row p { margin:0; }
.promotion-status-list { display:grid; gap:0; margin:20px 0 14px; border-top:1px solid var(--line); }
.promotion-status-item { display:grid; grid-template-columns:minmax(140px, 1fr) auto; align-items:center; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); }
.promotion-status-item dt { font-weight:800; }
.promotion-status-item dd { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin:0; }
.promotion-status-item a { color:var(--blue); font-weight:800; text-decoration:none; }
.promotion-status { display:inline-flex; align-items:center; min-height:28px; padding:4px 9px; border-radius:999px; font-size:13px; font-weight:800; }
.promotion-status.connected { background:#f0fdfa; color:var(--green); }
.promotion-status.disconnected { background:#f1f5f9; color:var(--muted); }
.pin { display:inline-block; font-size:32px; letter-spacing:6px; padding:10px 16px; border-radius:8px; background:#f1f5f9; }
.site-footer { padding:38px 24px 26px; background:var(--cg-navy); color:#d9e2ec; }
.site-footer-inner { width:min(1180px, 100%); margin:0 auto; display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.site-footer-brand { display:grid; gap:5px; }
.site-footer-brand strong { color:#fff; font-size:19px; }
.site-footer-brand span { color:#b8c6d5; font-size:13px; }
.site-footer-nav { display:flex; flex-wrap:wrap; gap:8px 20px; justify-content:flex-end; }
.site-footer-nav a { min-height:44px; display:inline-flex; align-items:center; color:#f6f0e8; font-size:14px; font-weight:700; text-decoration:none; }
.site-footer-nav a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.site-footer-meta { width:min(1180px, 100%); margin:24px auto 0; padding-top:18px; border-top:1px solid rgba(255,255,255,.16); color:#aebdcb; font-size:12px; }

.cg-auth-layout { width:min(980px, 100%); margin:18px auto; display:grid; grid-template-columns:minmax(0, 1fr) minmax(280px, .8fr); gap:32px; align-items:center; }
.cg-auth-layout .form-card { width:100%; margin:0; }
.cg-auth-layout--account { grid-template-columns:minmax(0, 1.25fr) minmax(260px, .75fr); }
.cg-auth-visual { margin:0; padding:18px; border-radius:24px; background:#ffe9d9; }
.cg-auth-visual img { display:block; width:100%; height:auto; aspect-ratio:8/5; object-fit:cover; border-radius:18px; }
.cg-account-security-mark { position:relative; width:min(240px, 72vw); aspect-ratio:1; justify-self:center; border:1px solid var(--cg-border); border-radius:50%; background:#fff3e8; box-shadow:var(--cg-shadow-soft); }
.cg-account-security-mark::before { position:absolute; top:31%; left:50%; width:72px; height:62px; border:5px solid var(--cg-navy); border-radius:18px; background:var(--cg-surface); content:""; transform:translateX(-50%); }
.cg-account-security-mark::after { position:absolute; top:20%; left:50%; width:46px; height:50px; border:5px solid var(--cg-navy); border-bottom:0; border-radius:28px 28px 0 0; content:""; transform:translateX(-50%); }
.cg-account-security-mark span { position:absolute; z-index:1; top:47%; left:50%; width:12px; height:12px; border-radius:50%; background:var(--cg-coral-dark); transform:translate(-50%, -50%); }
.cg-owner-promotion-visual { float:right; width:min(310px, 42%); margin:0 0 20px 24px; padding:10px; border-radius:18px; background:#fff3e8; }
.cg-owner-promotion-visual img { display:block; width:100%; height:auto; aspect-ratio:8/5; object-fit:cover; border-radius:14px; }
.owner-share-panel::after { display:block; clear:both; content:""; }
.owner-promotion-panel { border-left:4px solid var(--cg-gold); }
.danger-zone { border-color:rgba(185,28,28,.24); background:#fffafa; box-shadow:none; }
.table-wrap { border:1px solid var(--line); border-radius:14px; background:#fff; }
th { background:#f7efe6; color:var(--cg-navy); }
@media (max-width:760px) {
  .site-header { padding:0 16px; }
  .site-header-inner { align-items:flex-start; flex-direction:column; gap:7px; padding:10px 0; }
  .brand, .site-nav { width:100%; }
  .site-nav { justify-content:flex-start; flex-wrap:wrap; overflow:visible; }
  .site-nav a, .link-button { padding:8px 9px; font-size:14px; }
  .site-footer-inner { flex-direction:column; }
  .site-footer-nav { width:100%; justify-content:flex-start; }
  .container { padding:30px 0 48px; }
  .cg-auth-layout, .cg-auth-layout--account { grid-template-columns:1fr; gap:20px; }
  .cg-auth-visual { max-width:360px; justify-self:center; }
  .cg-account-security-mark { width:min(180px, 52vw); }
  .game-shell { padding:16px; border-radius:18px; }
  .game-hero { padding:16px; }
  .cg-owner-promotion-visual { float:none; width:100%; max-width:420px; margin:0 auto 20px; }
  .split-title, .game-hero, .sample-playground, .coupon-draw-stage, .luck-roulette-stage, .next-action, .empty-state { grid-template-columns:1fr; display:grid; }
  .title-asset { max-width:100%; justify-self:start; }
  .template-card .card-img { max-height:130px; }
  .step-list { grid-template-columns:1fr; }
  .coupon-benefit-preview dl { grid-template-columns:1fr; }
  .meat-flip-stage { margin:18px auto; padding:14px; gap:12px; }
  .meat-flip-grill { padding:12px; }
  .meat-flip-board { grid-template-columns:repeat(3, minmax(0, 1fr)); gap:8px; }
  .meat-flip-piece { min-height:102px; padding:4px 2px; }
  .meat-flip-cut { width:86%; }
  .meat-flip-stage.is-v2 .meat-flip-v2-hud { grid-template-columns:repeat(3, minmax(0, 1fr)); }
  .meat-flip-stage.is-v2 .meat-flip-v2-grill { min-height:360px; padding:12px; }
  .meat-flip-stage.is-v2 .meat-flip-v2-board { grid-template-columns:repeat(3, minmax(0, 1fr)); grid-template-rows:repeat(3, minmax(96px, 1fr)); min-height:320px; gap:7px; }
  .meat-flip-v2-guide { inset:12px; }
  .game-shell.game-result-integrated #game-result { margin-bottom:18px; }
  .form-actions { justify-content:flex-start; }
  .panel-heading-row { flex-direction:column; }
  .promotion-status-item { grid-template-columns:1fr; gap:8px; }
  .promotion-status-item dd { justify-content:flex-start; }
}
@media (max-width:520px) {
  .site-nav-optional { display:none !important; }
  .site-nav { justify-content:flex-end; }
  .site-nav a, .link-button { flex:0 1 auto; }
  h1 { font-size:34px; }
  .card, .panel, .form-card, .coupon-detail { padding:18px; border-radius:16px; }
  .form-section { padding:16px; border-radius:15px; }
  .print-poster { padding:24px 18px; border-radius:16px; }
}
@media (max-width:430px) {
  .meat-flip-stage { width:100%; padding:12px; }
  .meat-flip-header h2 { font-size:21px; }
  .meat-flip-hud-item { padding:9px; align-items:flex-start; flex-direction:column; gap:4px; }
  .meat-flip-hud-item strong { font-size:17px; }
  .meat-flip-grill { padding:9px; }
  .meat-flip-coals { inset:18px; gap:9px; }
  .meat-flip-board { gap:6px; }
  .meat-flip-start-guide { min-height:180px; padding:16px 12px; }
  .meat-flip-countdown { font-size:42px; }
  .meat-flip-start-title { font-size:18px; }
  .meat-flip-piece { min-height:94px; }
  .meat-flip-piece-caption { width:100%; gap:3px; padding:4px; }
  .meat-flip-piece-number { flex-basis:18px; width:18px; height:18px; font-size:10px; }
  .meat-flip-piece-label { font-size:11px; }
  .meat-flip-result-stars { font-size:30px; }
  .meat-flip-stage.is-v2 .meat-flip-v2-hud { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .meat-flip-stage.is-v2 .meat-flip-hud-item { min-height:50px; padding:7px 8px; }
  .meat-flip-stage.is-v2 .meat-flip-v2-grill { min-height:316px; padding:8px; }
  .meat-flip-stage.is-v2 .meat-flip-v2-board { grid-template-columns:repeat(3, minmax(0, 1fr)); grid-template-rows:repeat(3, minmax(90px, 1fr)); min-height:292px; gap:5px; }
  .meat-flip-stage.is-v2 .meat-flip-v2-piece { min-width:64px; min-height:64px; }
  .meat-flip-stage.is-v2 .meat-flip-v2-piece .meat-flip-cut { width:72%; min-width:48px; }
  .meat-flip-stage.is-v2 .meat-flip-v2-piece .meat-flip-piece-caption { gap:2px; padding:3px; }
  .meat-flip-stage.is-v2 .meat-flip-v2-piece .meat-flip-piece-label { font-size:10px; }
  .meat-flip-stage.is-v2 .meat-flip-v2-piece .meat-flip-piece-number { flex-basis:16px; width:16px; height:16px; font-size:9px; }
  .meat-flip-v2-guide { inset:8px; }
  .meat-flip-final-countdown { right:10px; top:10px; width:48px; height:48px; font-size:26px; }
  .game-shell.game-result-integrated #game-result .button-row > * { flex:1 1 140px; }
}
@media (max-width:340px) {
  .meat-flip-board { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .meat-flip-stage.is-v2 .meat-flip-v2-board { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion:reduce) {
  .btn,
  .card,
  .site-nav a,
  .link-button { transition:none; }
  .btn:hover { transform:none; }
  .meat-flip-piece,
  .meat-flip-cut,
  .meat-flip-progress-bar { transition:none; }
  .meat-flip-piece,
  .meat-flip-piece::before,
  .meat-flip-cut,
  .meat-flip-hud-item strong,
  .meat-flip-success,
  .meat-flip-coals,
  .meat-flip-countdown,
  .meat-flip-grill::after,
  .meat-flip-result-stars span { animation:none !important; }
  .meat-flip-ember-particle { display:none !important; }
  .meat-flip-stage.is-v2 .meat-flip-v2-piece,
  .meat-flip-stage.is-v2 .meat-flip-v2-piece.is-leaving,
  .meat-flip-stage.is-v2 .meat-flip-v2-piece.is-untouched::before,
  .meat-flip-stage.is-v2.is-rush .meat-flip-v2-grill { animation:none !important; }
}
@media print {
  @page { size:A4; margin:16mm; }
  body { background:#fff; }
  .site-header, .site-footer, .messages, .poster-actions { display:none !important; }
  .container { width:100%; padding:0; }
  .print-poster { border:0; box-shadow:none; width:100%; padding:0; }
}
