body.geom-lucky-lock{overflow:hidden}
.geom-lucky-modal{display:none;position:fixed;inset:0;z-index:999999;align-items:center;justify-content:center;padding:22px}
.geom-lucky-modal.is-open{display:flex}
.geom-lucky-backdrop{position:absolute;inset:0;background:rgba(28,31,25,.72);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.geom-lucky-dialog{position:relative;z-index:2;width:min(520px,100%);max-height:92vh;overflow:auto;padding:34px 30px 30px;border:1px solid rgba(255,255,255,.45);border-radius:30px;background:#fffaf1;color:#30372d;text-align:center;box-shadow:0 35px 100px rgba(0,0,0,.28);font-family:inherit}
.geom-lucky-close{
position:absolute!important;right:16px!important;top:16px!important;
width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;min-height:42px!important;max-height:42px!important;
padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;
display:grid!important;place-items:center!important;aspect-ratio:1/1!important;
background:#eee9df!important;color:#6c6d67!important;font:400 30px/1 Arial,sans-serif!important;
appearance:none!important;-webkit-appearance:none!important;box-shadow:none!important;transform:none!important;
cursor:pointer!important;flex:0 0 42px!important
}
.geom-lucky-close:hover,.geom-lucky-close:focus,.geom-lucky-close:active{
background:#e6e0d5!important;color:#454b43!important;box-shadow:none!important;transform:none!important
}
.geom-lucky-clover{font-size:38px;color:#66715b;margin-bottom:8px}.geom-lucky-dialog h2{margin:0;color:#30372d;font-size:clamp(25px,6vw,34px);line-height:1.3}
.geom-lucky-sub{margin:10px auto 22px;color:#74796f;font-size:14px;line-height:1.65}
.geom-lucky-machine{padding:13px;border-radius:24px;background:#e8e1d5;box-shadow:inset 0 2px 8px rgba(57,55,48,.09)}
.geom-lucky-window{position:relative;min-height:122px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:18px;background:#30372d;padding:20px}
.geom-lucky-window:before,.geom-lucky-window:after{content:"";position:absolute;left:0;right:0;height:26px;z-index:2;pointer-events:none}.geom-lucky-window:before{top:0;background:linear-gradient(#30372d,transparent)}.geom-lucky-window:after{bottom:0;background:linear-gradient(transparent,#30372d)}
.geom-lucky-glow{position:absolute;inset:20% 10%;background:radial-gradient(circle,rgba(250,210,142,.18),transparent 68%);pointer-events:none}
.geom-lucky-reel{position:relative;z-index:1;color:#fff7e7;font-size:clamp(18px,4.8vw,25px);font-weight:800;line-height:1.45;word-break:keep-all}.geom-lucky-reel.pop{animation:geomLuckyPop .11s ease}
@keyframes geomLuckyPop{0%{transform:translateY(-10px);opacity:.25}100%{transform:translateY(0);opacity:1}}
.geom-lucky-actions{margin-top:20px}.geom-lucky-main,.geom-lucky-save{border:0;border-radius:999px;cursor:pointer;font-family:inherit;font-weight:800}
.geom-lucky-main{min-width:210px;padding:15px 24px;background:#59654e;color:#fff;font-size:16px;box-shadow:0 12px 30px rgba(72,86,64,.22)}.geom-lucky-main.is-stop{background:#96363b;animation:geomLuckyPulse .8s ease-in-out infinite}
@keyframes geomLuckyPulse{50%{transform:scale(1.035)}}.geom-lucky-main:disabled{opacity:.68;cursor:wait}
.geom-lucky-result{margin-top:18px}.geom-lucky-result-card{padding:20px 18px;border-radius:20px;background:#f2eee5;border:1px solid rgba(82,88,76,.10)}.geom-lucky-result-card.is-win{background:#fff0df;border-color:#e5c5a5}
.geom-lucky-result-kicker{font-size:13px;font-weight:800;color:#8d5b3f;margin-bottom:9px}.geom-lucky-result-text{font-size:19px;font-weight:800;line-height:1.55;color:#343b31;word-break:keep-all}
.geom-lucky-code-label{margin-top:18px;color:#7b776f;font-size:12px}.geom-lucky-code{margin-top:5px;font:800 21px/1.2 monospace;letter-spacing:.05em;color:#30372d}
.geom-lucky-help{margin:14px 0 0;color:#777970;font-size:12px;line-height:1.65;word-break:keep-all}.geom-lucky-save{margin-top:15px;padding:12px 18px;background:#30372d;color:#fff;font-size:13px}.geom-lucky-error{color:#a52f34;font-size:13px}
@media(max-width:560px){.geom-lucky-modal{padding:14px}.geom-lucky-dialog{padding:30px 18px 23px;border-radius:24px}.geom-lucky-window{min-height:108px}}
.geom-lucky-result-card.is-message{padding-top:24px}
.geom-lucky-result-card.is-message .geom-lucky-result-text{font-size:20px}
.geom-lucky-qr-wrap{margin:16px auto 0;display:flex;justify-content:center}
.geom-lucky-qr{display:block;width:150px;height:150px;padding:8px;border-radius:14px;background:#fff;border:1px solid #e4ded1;object-fit:contain}
@media(max-width:560px){
  .geom-lucky-close{right:13px!important;top:13px!important;width:40px!important;height:40px!important;min-width:40px!important;max-width:40px!important;min-height:40px!important;max-height:40px!important;font-size:28px!important}
  .geom-lucky-dialog{padding-top:28px}
  .geom-lucky-clover{margin-top:4px}
}

.geom-lucky-test-badge{
  display:inline-block;margin:0 auto 12px;padding:6px 10px;border-radius:999px;
  background:#f2e7c9;color:#725a24;font-size:11px;font-weight:800;line-height:1.3
}


/* v2.4 당첨 화면 */
.geom-lucky-dialog.is-winning .geom-lucky-clover{display:none}
.geom-lucky-dialog.is-winning .geom-lucky-sub{display:none}

.geom-lucky-dialog h2.is-prize-title{
  max-width:420px;
  margin:8px auto 18px!important;
  color:#30372d!important;
  font-size:clamp(24px,6.2vw,34px)!important;
  font-weight:800!important;
  line-height:1.32!important;
  letter-spacing:-.035em!important;
  word-break:keep-all;
}

.geom-lucky-win-label{
  margin:2px 0 12px;
  color:#d98655;
  font-size:23px;
  font-weight:900;
  line-height:1.25;
}

.geom-lucky-result-card.is-win .geom-lucky-result-text{
  max-width:100%;
  margin:0 auto;
  color:#5f625a;
  font-size:14px;
  font-weight:500;
  line-height:1.5;
  white-space:normal;
  word-break:keep-all;
}

/* 저장/공유 미리보기 */
.geom-ticket-preview{
  display:none;position:fixed;inset:0;z-index:1000001;align-items:center;justify-content:center;padding:16px
}
.geom-ticket-preview.is-open{display:flex}
.geom-ticket-preview-backdrop{
  position:absolute;inset:0;background:rgba(25,28,23,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)
}
.geom-ticket-preview-dialog{
  position:relative;z-index:2;width:min(500px,100%);max-height:92vh;overflow:auto;
  padding:22px;border-radius:24px;background:#fffaf1;color:#30372d;text-align:center
}
.geom-ticket-preview-dialog h3{margin:4px 0 8px;font-size:23px}
.geom-ticket-preview-dialog p{margin:0 0 14px;color:#777970;font-size:13px;line-height:1.55}
.geom-ticket-preview-dialog img{
  display:block;width:100%;height:auto;border-radius:16px;background:#fff;border:1px solid #e5dfd4
}
.geom-ticket-preview-close{
  position:absolute!important;right:10px!important;top:10px!important;width:38px!important;height:38px!important;
  min-width:38px!important;max-width:38px!important;min-height:38px!important;max-height:38px!important;
  padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;
  display:grid!important;place-items:center!important;background:#eee9df!important;color:#646760!important;
  font:400 28px/1 Arial,sans-serif!important;appearance:none!important;-webkit-appearance:none!important
}
.geom-ticket-preview-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.geom-ticket-preview-btn{
  min-height:46px;padding:12px 10px;border:0;border-radius:999px;background:#59654e;color:#fff!important;
  font-size:13px;font-weight:800;text-decoration:none!important;display:flex;align-items:center;justify-content:center;cursor:pointer
}
.geom-ticket-preview-btn.secondary{background:#ece7dc;color:#4c5547!important}
@media(max-width:560px){
  .geom-lucky-dialog h2.is-prize-title{font-size:26px!important;margin-bottom:15px!important}
  .geom-lucky-win-label{font-size:22px}
  .geom-lucky-result-card.is-win .geom-lucky-result-text{font-size:13px;line-height:1.45}
  .geom-ticket-preview-dialog{padding:19px 14px 16px}
  .geom-ticket-preview-actions{grid-template-columns:1fr}
}

/* v2.5 당첨 설명문: 상품명 포함 전체 문장 */
.geom-lucky-result-card.is-win .geom-lucky-result-text{
  font-size:13px;
  font-weight:500;
  line-height:1.45;
  letter-spacing:-.02em;
  word-break:keep-all;
}

/* v2.7 모바일 길게 눌러 저장 */
.geom-ticket-preview-dialog p{
  font-size:13px;
  line-height:1.65;
  word-break:keep-all;
}
.geom-ticket-preview-dialog img{
  -webkit-touch-callout:default!important;
  -webkit-user-select:auto!important;
  user-select:auto!important;
  pointer-events:auto!important;
}
.geom-ticket-preview-actions{display:none!important}
