*{box-sizing:border-box} :root{color-scheme:only light;font-family:"Pretendard","Noto Sans KR","Malgun Gothic",sans-serif;color:#242b45;background:#deedf0;font-synthesis:none;font-size:16px} body{margin:0;line-height:1.65}a{color:inherit}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #005b9a;outline-offset:4px}h1,h2,p{margin:0}h1,h2{line-height:1.3;word-break:keep-all}p{word-break:keep-all;overflow-wrap:anywhere}button{border:0} .phone{width:100%;max-width:460px;min-height:100svh;margin:auto;background:#fffef7;display:flex;flex-direction:column;overflow-wrap:anywhere;box-shadow:0 0 70px #17486012} .event-kicker{text-align:center;font-weight:700;letter-spacing:.1em;font-size:.9rem;padding:24px 12px 8px;color:#305869} .festival{text-align:center;position:relative;padding:24px 20px 28px;background:radial-gradient(ellipse at 50% 40%,#ffe198 0, #fff0bb 30%,#fffef7 66%);border-bottom:9px solid #9ed8df;border-radius:0 0 45% 12%} .little-tag{display:inline-block;font-size:.88rem;font-weight:bold;transform:rotate(-4deg);color:#385779} .festival h1{font-size:4.2rem;letter-spacing:-.07em;line-height:1.22;margin:10px 0 18px;font-weight:950;transform:rotate(-3deg)}.festival h1>span{color:#f25d34}.festival h1 small{display:block;font-size:1.45rem;letter-spacing:-.045em;margin-top:8px;transform:rotate(3deg)} .festival h1 b{color:#007e99}.festival h1 b span{color:#f25d34} .event-date{font-weight:850;letter-spacing:.06em;font-size:1rem}.event-date span{font-size:.88rem;margin-left:8px}.venue{font-size:.9rem;color:#476172}.welcome{padding:24px 26px 8px;text-align:center}.welcome h2{font-size:1.55rem;margin-bottom:12px}.welcome>p{font-size:1rem;color:#4f5869}.welcome strong{color:#242b45}.rules{display:flex;justify-content:center;gap:14px;margin:22px 0;font-size:.9rem}.rules span+span{border-left:1px solid #c2cdd0;padding-left:14px}.rules b{font-size:1.25rem;color:#a93e1d}.primary,.button.primary{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:58px;padding:12px 18px;border-radius:16px;color:white;background:#d94923;font-size:1.12rem;font-weight:800;text-decoration:none;box-shadow:0 4px 0 #a3371a}.primary:hover{background:#bf3c1a}.primary span{margin-left:auto}.secondary,.button.secondary{display:inline-flex;align-items:center;justify-content:center;background:#edf4f4;border:1px solid #b6ced0;border-radius:10px;color:#254d5b;text-decoration:none;padding:10px 16px;min-height:46px;font-weight:700}.fine{font-size:.81rem;color:#626977;text-align:center;margin-top:16px;line-height:1.7}.welcome p.fine{font-size:.81rem}.footer{margin-top:auto;text-align:center;padding:26px 22px 15px;background:linear-gradient(177deg,transparent 16%,#d9f0f2 17%,#e6f5f6 28%,#fffef7 29%)}.footer-line{height:8px}.logos{display:flex;align-items:center;justify-content:center;gap:22px;min-height:56px}.logos img{width:38%;max-width:155px;height:auto;object-fit:contain}.logos img:first-child{max-width:104px}.footer p{font-size:.75rem;color:#6a7984;margin-top:6px}.small-header{padding:24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ecebdf;gap:14px}.small-header a{font-size:1.6rem;font-weight:900;letter-spacing:-.08em;text-decoration:none}.small-header a span{color:#d94923}.small-header>span{font-size:.88rem;font-weight:bold}.quiz-content{padding:28px 24px 36px}.progress-label{display:flex;align-items:center;justify-content:space-between;font-size:.9rem;color:#576774}.progress-label b{color:#bd401d;font-size:1.35rem}progress{width:100%;height:8px;border:none;border-radius:20px;overflow:hidden;display:block;margin-top:10px;background:#dfe9e7}progress::-webkit-progress-bar{background:#dfe9e7}progress::-webkit-progress-value{background:#ec7047}progress::-moz-progress-bar{background:#ec7047}.question-card{min-height:290px;padding:35px 8px 26px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.question-tag{display:inline-block;padding:3px 14px;background:#ffeadc;border-radius:20px;color:#a43c20;font-weight:bold;font-size:.85rem;margin-bottom:24px}.question-card h1{font-size:1.6rem;line-height:1.55}.question-card p{font-size:.86rem;color:#61717c;margin-top:26px}.answer-buttons{display:grid;grid-template-columns:1fr 1fr;gap:14px}.answer-buttons button{min-height:145px;border-radius:22px;display:flex;align-items:center;justify-content:center;flex-direction:column}.answer-buttons b{font-size:4.7rem;line-height:1.2;font-weight:650}.answer-buttons span{font-size:1rem;font-weight:700}.answer-o{background:#d94923;color:#fff;box-shadow:0 5px 0 #a63a1d}.answer-x{border:2px solid #28415a;color:#28415a;background:#fff;box-shadow:0 5px 0 #bed0d3}.notice{background:#eaf5f5;border:1px solid #c0e1e0;padding:16px;border-radius:14px;margin:18px 0;font-size:.95rem}.notice strong{color:#245467}.notice p{margin-top:7px;font-size:.9rem}.result-content{text-align:center;padding:36px 24px}.result-content h1{font-size:2rem}.result-content p{margin-top:14px}.result-symbol{width:92px;height:92px;display:grid;place-items:center;margin:0 auto 24px;border-radius:50%;background:#ffdda0;color:#b43f1e;font-size:3.4rem;font-weight:900}.claimed{background:#d94923;color:white}.score{margin:20px 0 6px;font-size:1.3rem;color:#5f6c76}.score strong{font-size:3.5rem;line-height:1.15;color:#214d64}.result-content form{margin-top:26px}.gift-card{margin-top:26px;border:2px dashed #e2c5a0;border-radius:20px;background:#fff8e8;padding:22px 16px}.gift-card h2{font-size:1.55rem;color:#af3c21}.gift-card p.eyebrow{margin:0 0 8px}.gift-image{display:block;max-width:160px;max-height:160px;object-fit:contain;margin:12px auto}.claim-code{border-top:1px solid #e7d6b8;margin-top:24px;padding-top:18px}.claim-code span{display:block;font-size:.85rem}.claim-code strong{display:block;font-family:monospace;font-size:1.6rem;letter-spacing:.05em}.status-pill{display:inline-block;border-radius:20px;background:#ffeadc;color:#923d25;padding:6px 12px;font-weight:bold;font-size:.8rem;margin-top:12px}.text-link{display:inline-block;margin-top:22px;text-underline-offset:5px;font-size:.9rem;color:#375a69}.login-content{padding:40px 26px}.login-content h1{font-size:1.8rem;margin:8px 0 12px}.login-content form{margin-top:26px}label{display:block;font-weight:650;font-size:.94rem;margin-bottom:18px}input{display:block;width:100%;border:1px solid #a8bdc3;background:white;border-radius:9px;padding:12px;margin-top:6px;min-width:0;color:#23374a}input[type=checkbox]{width:22px;height:22px;display:inline-block;vertical-align:middle;margin:0 10px 0 0}.eyebrow{font-size:.85rem;color:#41616d;font-weight:700}.admin-body{background:#eff4f5}.admin-shell{max-width:1140px;margin:auto;padding:28px 22px 80px}.admin-header{display:flex;gap:20px;align-items:center;justify-content:space-between}.admin-header h1{font-size:1.8rem;margin-top:5px}.admin-nav{display:flex;flex-wrap:wrap;gap:20px;margin:24px 0}.admin-nav a{font-size:.95rem;text-underline-offset:6px}.admin-card{background:white;border:1px solid #dce5e9;border-radius:18px;margin:20px 0;padding:24px;scroll-margin-top:16px}.admin-card h2{font-size:1.4rem;margin-bottom:12px}.admin-card p{font-size:.94rem;color:#546774;margin-bottom:15px}.section-heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px}.table-scroll{overflow-x:auto;margin:20px 0}.table-scroll table{border-collapse:collapse;width:100%;font-size:.9rem;white-space:nowrap}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid #dfe7eb}th{background:#f0f6f6}td small{display:block}.admin-card .primary{width:auto;min-height:44px;padding:9px 18px;border-radius:10px;font-size:.95rem;box-shadow:none}.search-form>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.search-form input{max-width:290px;margin:0}.search-form label{margin-bottom:6px}.pagination{display:flex;gap:24px;font-size:.9rem}details{padding:16px 0;border-top:1px solid #dfe7eb}summary{cursor:pointer;font-weight:700}.gift-edit{margin-top:18px;display:grid;grid-template-columns:2fr 1fr;gap:0 20px}.gift-edit label:nth-of-type(3){grid-column:1/-1}.gift-edit button{align-self:end}.check{align-self:center}li{padding:8px 0;overflow-wrap:anywhere}.left{text-align:left}@media(max-width:374px){.festival h1{font-size:3.5rem}.welcome,.quiz-content,.result-content{padding-left:18px;padding-right:18px}.small-header{padding:20px 18px}.question-card h1{font-size:1.4rem}.claim-code strong{font-size:1.35rem}.rules{gap:8px;font-size:.82rem}.rules span+span{padding-left:8px}}@media(max-width:600px){.admin-shell{padding:20px 12px}.admin-card{padding:18px 14px}.admin-header h1{font-size:1.35rem}.gift-edit{display:block}.section-heading{display:block}}@media(min-width:700px){body:not(.admin-body){padding:30px 0}.phone{min-height:850px;border-radius:26px;overflow:hidden}}

/* Event title artwork: retain its full composition at every mobile width. */
.festival.festival-image{padding:0 0 16px;background:none;border:0;border-radius:0}
.festival-image h1{margin:0;font-size:inherit;line-height:0;letter-spacing:normal;transform:none}
.festival-art{display:block;width:100%;height:auto}
.festival-image .event-date{margin-top:16px}



/* O/X feedback: hover only on pointer devices; pressed feedback works on touch. */
.answer-buttons button{
  transition:transform .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease;
}
@media(hover:hover) and (pointer:fine){
  .answer-buttons button:not(:disabled):hover{transform:translateY(-4px)}
  .answer-o:not(:disabled):hover{background:#bf3c1a;box-shadow:0 9px 0 #923014,0 12px 18px #a63a1d24}
  .answer-x:not(:disabled):hover{background:#28415a;color:#fff;box-shadow:0 9px 0 #172d42,0 12px 18px #28415a24}
}
.answer-o:not(:disabled):focus-visible{background:#bf3c1a}
.answer-x:not(:disabled):focus-visible{background:#28415a;color:#fff}
.answer-buttons button:not(:disabled):active{transform:translateY(3px) scale(.98);transition-duration:.06s}
.answer-o:not(:disabled):active{background:#af3517;box-shadow:0 2px 0 #923014}
.answer-x:not(:disabled):active{background:#1c3146;color:#fff;box-shadow:0 2px 0 #172d42}
@media(prefers-reduced-motion:reduce){
  .answer-buttons button{transition:none}
  .answer-buttons button:not(:disabled):hover,.answer-buttons button:not(:disabled):active{transform:none}
}

/* Short, non-blocking game motion. All content remains usable without JavaScript. */
@keyframes game-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes game-pop{0%{opacity:0;transform:scale(.75) rotate(-8deg)}65%{opacity:1;transform:scale(1.07) rotate(3deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes game-progress{from{transform:scaleX(var(--previous))}to{transform:scaleX(var(--progress))}}
@media(prefers-reduced-motion:no-preference){
 .home .festival-art{animation:game-enter .55s ease-out both}
 .quiz-page .question-card{animation:none}
 .quiz-page .answer-buttons{animation:none}
 .result-content>div{animation:none}
 .result-page[data-outcome="PASSED"] .result-symbol{animation:game-pop .6s cubic-bezier(.2,.7,.3,1) both}
 .result-page[data-outcome="PASSED"] .gift-card{animation:none}
 .quiz-progress>span{animation:game-progress .12s ease-out both}
}
progress.accessible-progress{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.quiz-progress{height:8px;margin-top:10px;border-radius:20px;background:#dfe9e7;overflow:hidden}
.quiz-progress>span{display:block;width:100%;height:100%;border-radius:inherit;background:#ec7047;transform-origin:left;transform:scaleX(var(--progress))}
.confetti-layer{position:fixed;inset:0;max-width:460px;margin-inline:auto;overflow:hidden;pointer-events:none;z-index:20;contain:strict}
.confetti-piece{position:absolute;top:-20px;width:8px;height:14px;border-radius:2px;background:#ec7047}
.confetti-piece.color-1{background:#167e9b}.confetti-piece.color-2{background:#f4bd36}.confetti-piece.color-3{background:#299b83}
.quiz-progress.step-1{--previous:0;--progress:0.1}
.quiz-progress.step-2{--previous:0.1;--progress:0.2}
.quiz-progress.step-3{--previous:0.2;--progress:0.3}
.quiz-progress.step-4{--previous:0.3;--progress:0.4}
.quiz-progress.step-5{--previous:0.4;--progress:0.5}
.quiz-progress.step-6{--previous:0.5;--progress:0.6}
.quiz-progress.step-7{--previous:0.6;--progress:0.7}
.quiz-progress.step-8{--previous:0.7;--progress:0.8}
.quiz-progress.step-9{--previous:0.8;--progress:0.9}
.quiz-progress.step-10{--previous:0.9;--progress:1}
@media(prefers-reduced-motion:reduce){.confetti-layer{display:none}}

/* Keep demo reset inside each page header, without a separate notice banner. */
.event-kicker{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 12px;padding:14px 16px 10px;letter-spacing:0}
.event-kicker>span{white-space:nowrap}
.demo-reset-form{margin:0}
.demo-reset{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:7px 10px;background:#edf4f4;border:1px solid #b6ced0;border-radius:9px;color:#305869;font-size:.8125rem;font-weight:700;letter-spacing:0;line-height:1.5;white-space:nowrap}
.demo-reset:hover{background:#dbecef}
.small-header{flex-wrap:wrap}
.small-header .demo-reset-form{flex-basis:100%;display:flex;justify-content:flex-end}
@media(max-width:374px){.event-kicker{flex-direction:column;gap:4px}}

/* Welcome copy uses the sea blue, coral and sunshine colors of the event artwork. */
.home .festival-image{padding-bottom:0}
.event-info{margin:18px 20px 0;padding:0;color:#174b63;text-align:center}
.event-info-top{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px 16px}
.event-day{display:flex;align-items:baseline;gap:7px}
.event-day>strong{font-size:1.35rem;font-weight:850;letter-spacing:-.025em;line-height:1.4;color:#c74424}
.day-badge{color:#3e6477;font-size:.8125rem;font-weight:700;letter-spacing:.04em}
.event-time{font-size:.95rem;font-weight:700;color:#305869;font-variant-numeric:tabular-nums}
.event-place{margin-top:5px;color:#406373;font-size:.95rem;letter-spacing:.01em}

.home .welcome{padding-top:25px}
.home .welcome h2{color:#19465f;font-size:1.6rem;line-height:1.55;letter-spacing:-.045em;margin-bottom:13px}
.welcome-name{color:#c74424;font-weight:900}
.welcome-highlight{background:linear-gradient(transparent 62%,#ffe09a 62%,#ffe09a 94%,transparent 94%);padding:0 5px;font-weight:900}
.home .welcome .welcome-intro{color:#536677;line-height:1.8;font-size:1rem}
.home .welcome .quiz-count{color:#116781;font-weight:850}
.reward-callout{margin:18px 0 22px;padding:14px 12px 15px;background:#fff0df;border:1px solid #f2c9a6;border-radius:16px}
.reward-condition{color:#6e4a39;font-size:.95rem;line-height:1.55}
.home .welcome .reward-condition strong{color:#b53b1f;font-size:1.35rem;font-weight:900;letter-spacing:-.035em}
.reward-copy{color:#654537;font-size:1rem;line-height:1.7;margin-top:4px}
.home .welcome .reward-copy strong{color:#a5371d;font-weight:850;font-size:1.1rem}
@media(max-width:374px){.event-info{margin-left:18px;margin-right:18px}.event-day>strong{font-size:1.25rem}.event-time{font-size:.9rem}.home .welcome h2{font-size:1.45rem}}

/* A compact, viewport-aware start screen with room for both official logos. */
body.home-page{padding:0;--home-frame:0px}
.phone.home{min-height:calc(100svh - var(--home-frame));border-radius:0}
.home .event-kicker{flex-direction:row;gap:4px 8px;padding:8px 12px 4px;font-size:.8125rem}
.home .demo-reset{min-height:36px;padding:5px 8px}
.home .festival-art{width:auto;max-width:100%;height:auto;max-height:clamp(120px,calc(100svh - 445px),306px);margin-inline:auto}
.home .welcome{padding:12px 22px 4px}
.home .welcome h2{font-size:1.4rem;line-height:1.4;margin-bottom:8px}
.home .welcome .welcome-intro{font-size:1rem;line-height:1.5}
.home .reward-callout{margin:12px 0 14px;padding:9px 10px}
.home .reward-condition{line-height:1.45}
.home .welcome .reward-condition strong{font-size:1.2rem}
.home .reward-copy{font-size:1rem;line-height:1.5;margin-top:3px}
.home .welcome .reward-copy strong{font-size:1rem}
.home .primary{min-height:52px;padding:10px 16px}
.home .welcome p.fine{margin-top:9px;font-size:.8125rem;line-height:1.5}
.home .footer{padding:12px 20px max(8px,env(safe-area-inset-bottom))}
.home .footer-line{display:none}
.home .logos{min-height:42px;gap:20px}
.home .logos img{max-width:130px}
.home .logos img:first-child{max-width:98px}
@media(min-width:700px){body.home-page{padding:12px 0;--home-frame:24px}.phone.home{border-radius:22px}}
@media(max-height:680px){
 .home .festival-art{max-height:clamp(105px,calc(100svh - 390px),250px)}
 .home .welcome{padding-top:8px;padding-bottom:2px}
 .home .welcome h2{font-size:1.25rem;line-height:1.35;margin-bottom:6px}
 .home .welcome .welcome-intro{line-height:1.4}
 .home .reward-callout{margin:9px 0 10px;padding:7px 8px}
 .home .primary{min-height:48px;padding:8px 14px}
 .home .welcome p.fine{margin-top:7px}
 .home .footer{padding-top:8px;padding-bottom:max(6px,env(safe-area-inset-bottom))}
 .home .logos{min-height:36px}
 .home .logos img{max-width:115px}
 .home .logos img:first-child{max-width:90px}
}

/* Selected concept 02: blue-and-yellow arcade start screen. */
.phone.arcade-home{background:#e5f7ff;color:#092d6c}
.arcade-home .event-kicker{background:#ffda32;color:#12346c;padding:5px 10px;font-weight:850;border-bottom:2px solid #103774}
.arcade-home .demo-reset{background:#fff6c6;border:1px solid #bd951a;color:#3c3b31;min-height:34px}
.arcade-home .festival-image{background:#23c0f0;overflow:hidden;padding:0}
.arcade-home .festival-art{display:block;width:auto;max-width:100%;height:auto;max-height:max(125px,calc(100svh - 520px));object-fit:contain;margin-inline:auto}
.arcade-home .welcome{position:relative;margin:-8px 12px 0;padding:16px 16px 12px;border:3px solid #0b3276;border-radius:25px;background:#fff;box-shadow:0 5px 0 #96d7f0;z-index:1}
.arcade-home .welcome h2{color:#12346c;font-size:1.25rem;line-height:1.4;margin:0 0 10px;letter-spacing:-.045em}
.arcade-home .welcome-prefix{font-size:1rem;font-weight:650}
.arcade-home .welcome-name{color:#12346c;font-weight:900}
.arcade-home .welcome-highlight{display:inline-block;padding:0;background:none;color:#0861d7;font-size:1.65rem;font-weight:900}
.arcade-home .welcome .welcome-intro{color:#364969;font-size:1rem;line-height:1.5}
.arcade-home .welcome .quiz-count{color:#075bc2;font-weight:850}
.arcade-home .reward-callout{background:#ffdf48;border:0;border-radius:12px;margin:12px -4px 15px;padding:9px 5px;box-shadow:inset 0 -3px 0 #f1bf2e}
.arcade-home .reward-condition{color:#173265;font-size:1rem;line-height:1.4}
.arcade-home .welcome .reward-condition strong{font-size:1.2rem;color:#0b3276;font-weight:900}
.arcade-home .reward-copy{color:#173265;font-size:1rem;line-height:1.5;margin:3px 0 0;letter-spacing:-.035em}
.arcade-home .welcome .reward-copy strong{color:#ae3512;font-size:1rem;font-weight:900}
.arcade-home .primary{border:2px solid #092e77;border-radius:14px;background:linear-gradient(#258cfb,#0861d9);box-shadow:0 5px 0 #ffb52c,inset 0 2px 0 #8fc9ff;color:white;min-height:52px;font-size:1.25rem;font-weight:850;padding:10px 16px}
.arcade-home .primary:hover{background:linear-gradient(#167ceb,#064fb8)}
.arcade-home .primary:active{transform:translateY(3px);box-shadow:0 2px 0 #ffb52c}
.arcade-home .welcome p.fine{font-size:.8125rem;color:#5d6c81;margin:12px 0 0;line-height:1.5}
.arcade-home .footer{padding:15px 20px max(10px,env(safe-area-inset-bottom))}
@media(max-height:740px){
 .arcade-home .festival-art{width:auto;max-width:100%;max-height:max(125px,calc(100svh - 435px));margin-inline:auto}
 .arcade-home .welcome{padding:9px 12px 8px;margin-top:-3px;border-radius:20px}
 .arcade-home .welcome h2{font-size:1.125rem;line-height:1.3;margin-bottom:6px}
 .arcade-home .welcome-highlight{font-size:1.4rem}
 .arcade-home .welcome .welcome-intro{line-height:1.4}
 .arcade-home .reward-callout{padding:7px 4px;margin:8px -3px 11px}
 .arcade-home .primary{min-height:48px;padding:8px 14px}
 .arcade-home .welcome p.fine{margin-top:10px}
 .arcade-home .footer{padding-top:10px;padding-bottom:max(6px,env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:no-preference){
 .arcade-home .welcome{animation:game-enter .4s .1s ease-out both}
}

/* Supplied poster, intact, with real controls following its image coordinates. */
body.poster-page{--poster-toolbar:0px;margin:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);min-height:100svh;background:#079ef2;display:flex;flex-direction:column;align-items:center;justify-content:center}
body.poster-page.has-demo-reset{--poster-toolbar:36px}
.poster-toolbar{width:100%;height:36px;flex:none;display:flex;align-items:center;justify-content:center;background:#06457d}
.poster-toolbar .demo-reset{min-height:28px;padding:2px 10px;font-size:.75rem;border-color:#6699c0;background:#eaf7ff;color:#173f67}
.poster-home{position:relative;width:min(100%,460px,calc((100svh - var(--poster-toolbar) - env(safe-area-inset-top) - env(safe-area-inset-bottom)) / 2));flex:none;margin:0 auto;container-type:inline-size}
.start-poster{display:block;width:100%;height:auto}
.poster-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.poster-action{position:absolute;left:13.2%;top:79.5%;width:73.8%;height:10.2%;min-height:44px;padding:0;border:0;border-radius:999px;background:transparent;color:#fff;box-shadow:none;display:flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}

.poster-action:active{background:#042b6f26;transform:none}
.poster-action:focus-visible{outline:4px solid #ffeb48;outline-offset:3px;box-shadow:0 0 0 7px #062e74}
.poster-state-action{background:linear-gradient(#168dff,#0060f7);border:2px solid #07296b;box-shadow:0 4px 0 #ff861f;font-size:clamp(1rem,5.8cqw,1.65rem);font-weight:900;letter-spacing:-.04em}

.poster-state-action:disabled{background:#345f8a;opacity:1;cursor:default}
.poster-status{position:absolute;left:6.2%;top:65.9%;width:87.6%;height:12.7%;padding:8px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#ffdf37;border-radius:7cqw;color:#092f68;text-align:center}
.poster-status strong{font-size:clamp(1rem,5cqw,1.4rem)}
.poster-status p{font-size:clamp(.75rem,3.6cqw,1rem);line-height:1.4;margin:4px 0 0}

/* Real, visible button on the poster with its painted button removed. */
.poster-action{top:80.2%;height:8.8%;border:3px solid #083477;border-radius:999px;background:linear-gradient(180deg,#219aff 0%,#0075fc 45%,#0056e7 100%);box-shadow:0 5px 0 #ff8826,inset 0 3px 0 #8ed6ff;color:#fff;gap:.2em;font-weight:900;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}
.poster-start-label{font-size:clamp(1.25rem,8.5cqw,2.45rem);line-height:1.2;letter-spacing:-.035em}

.poster-action:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 #ff8826,inset 0 2px 0 #8ed6ff}
.poster-action:focus-visible{outline:4px solid #ffeb48;outline-offset:3px;box-shadow:0 0 0 7px #062e74}
.poster-action:disabled{background:#345f8a;box-shadow:0 3px 0 #173b63;opacity:1;cursor:default}
@media(prefers-reduced-motion:reduce){.poster-action{transition:none}.poster-action:active:not(:disabled){transform:none}}

/* Official supplied logos replace the poster's footer text without stretching. */
.poster-logos{position:absolute;left:11%;top:94%;width:78%;height:5.9%;display:flex;align-items:center;justify-content:center;gap:3%;padding:1% 3%;border-radius:4cqw;background:#f4fbff;color-scheme:only light;box-sizing:border-box}
.poster-logos img{display:block;height:auto;max-height:100%;object-fit:contain}
.poster-city-logo{width:35%}
.poster-youth-logo{width:53%}
.poster-logo-divider{width:1px;height:42%;background:#77b3d9;flex:none}
/* Pointer hover, keyboard focus, and touch press all have visible feedback. */
.poster-action{transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.poster-start-label{display:flex;align-items:center;justify-content:center;gap:.3em;text-shadow:0 2px 0 #06449a}
.poster-arrow{display:inline-block;transition:transform .18s ease}
@media(hover:hover) and (pointer:fine){
 .poster-action:hover:not(:disabled){transform:translateY(-3px);background:linear-gradient(180deg,#36b4ff,#087cff 46%,#075bdc);box-shadow:0 8px 0 #ffab27,inset 0 3px 0 #b8ebff,0 0 0 3px #ffe558;filter:brightness(1.04)}
 .poster-action:hover:not(:disabled) .poster-arrow{transform:translateX(4px)}
}
.poster-action:focus-visible{background:linear-gradient(180deg,#36b4ff,#0069e8)}
.poster-action:active:not(:disabled){transform:translateY(3px);background:linear-gradient(#086cdf,#0055bf);box-shadow:0 2px 0 #ff8826,inset 0 2px 0 #8ed6ff;filter:none}
.poster-action:active:not(:disabled) .poster-arrow{transform:translateX(2px)}
@media(prefers-reduced-motion:reduce){.poster-action,.poster-arrow{transition:none}.poster-action:hover:not(:disabled),.poster-action:active:not(:disabled),.poster-action:hover:not(:disabled) .poster-arrow,.poster-action:active:not(:disabled) .poster-arrow{transform:none}}

/* Participant arcade scenes: artwork is decorative; all content and controls are live HTML. */
body.game-body{padding:0;background:#0c9fee;color:#092a64}
.game-page{background:#daf3ff;border-radius:0;min-height:100svh;overflow:visible;box-shadow:0 0 70px #06326930}
.game-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;padding:4px 12px;background:#073c78;color:white}
.game-toolbar>a{font-size:.8125rem;font-weight:750;text-decoration:none}
.game-toolbar .demo-reset{min-height:28px;padding:2px 8px;background:#e4f6ff;color:#113e6e;font-size:.75rem}
.game-hero{position:relative;overflow:hidden;height:0;flex:none}
.game-hero img{position:absolute;top:0;left:0;display:block;width:100%;height:auto}
.game-hero-quiz{padding-top:44%}
.game-hero-success{padding-top:62%}
.game-hero-retry{padding-top:81%}
.game-page .game-panel{position:relative;margin:0 2.25%;padding:12px 18px 22px;background:white;border:3px solid #082861;border-top:0;border-radius:0 0 30px 30px}
.game-page .quiz-content.game-panel{margin:0;padding:0 14px 18px;border:0;border-radius:0;background:linear-gradient(#eaf8ff,#d8f1ff)}
.game-progress-card{border:3px solid #082861;border-radius:20px;background:#f7fcff;padding:12px 14px;box-shadow:0 3px 0 #abdaf0}
.game-page .progress-label{color:#092a64;font-size:1rem;font-weight:800}
.game-page .progress-label b{color:#006ae4;font-size:1.2rem}
.game-page .quiz-progress{height:12px;background:#bee7fb;margin-top:8px}
.game-page .quiz-progress>span{background:linear-gradient(90deg,#20acff,#0069f8)}
.game-page .question-card{position:relative;min-height:230px;margin:28px 0 18px;padding:32px 16px 18px;border:3px solid #082861;border-radius:25px;background:#fff;box-shadow:0 4px 0 #99cde8}
.game-page .question-tag{position:absolute;top:-19px;left:50%;transform:translateX(-50%);padding:3px 22px;border:3px solid #082861;border-radius:24px;background:#ffe438;color:#082861;font-size:1.1rem;font-weight:900;white-space:nowrap;margin:0}
.game-page .question-card h1{font-size:clamp(1.3rem,5.7vw,1.65rem);line-height:1.5;font-weight:850;color:#09265b;overflow-wrap:anywhere}
.game-page .question-card p{width:100%;margin-top:18px;padding-top:12px;border-top:1px solid #dce8f3;font-size:.875rem;color:#45607d;line-height:1.5}
.game-page .answer-buttons{gap:14px}
.game-page .answer-buttons button{border:3px solid #082861;min-height:132px;border-radius:24px;color:white;position:relative;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
.game-page .answer-buttons b{font-size:4.5rem;font-weight:900;line-height:1.05;text-shadow:0 3px 0 #06326445}
.game-page .answer-buttons span{font-size:1.1rem;font-weight:850;line-height:1.4}
.game-page .answer-o{background:linear-gradient(#22a5ff,#0079fb 48%,#0757d6);box-shadow:0 6px 0 #053a95,inset 0 4px 0 #86d5ff}
.game-page .answer-x{background:linear-gradient(#ffad36,#ff8510 48%,#ed6400);box-shadow:0 6px 0 #a44108,inset 0 4px 0 #ffda82}
.game-page .fine{font-size:.8125rem;color:#47657c;line-height:1.55;margin-top:18px}
.game-page .result-content h1{font-size:clamp(1.65rem,7vw,2.15rem);color:#075ecc;font-weight:900;letter-spacing:-.045em}
.game-page[data-outcome="FAILED"] .result-content h1{color:#092a64}
.game-page .result-content .score{margin:8px 0 0;color:#123575;font-size:1.65rem;font-weight:850}
.game-page .score strong{color:#0878ec;font-size:3.6rem;font-weight:950;text-shadow:0 2px 0 #a5d7ff}
.game-page .result-content p{margin-top:10px;line-height:1.5;font-size:1rem}
.game-page .retry-message{background:#e0f3ff;padding:14px 10px;border-radius:18px;font-weight:750}
.game-page .result-content .retry-threshold{display:inline-block;background:#ffe544;color:#173165;border-radius:20px;padding:6px 12px;font-size:.9rem;font-weight:800}
.game-page .result-content form{margin-top:18px}
.game-page .primary,.game-page .secondary{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:10px 12px;background:linear-gradient(#229eff,#0074f8 50%,#0757d6);border:3px solid #082861;border-radius:999px;box-shadow:0 5px 0 #ff9625,inset 0 3px 0 #92dfff;color:#fff;font-size:1.05rem;font-weight:850;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
.game-page .primary span{margin-left:0}
.game-arrow{display:inline-block;transition:transform .16s ease}
.game-page .gift-card{margin:16px 0 0;padding:0;border:0;background:none;border-radius:0}
.game-gift-banner{padding:12px;border:2px solid #082861;border-radius:20px;background:linear-gradient(125deg,#fff174,#ffda28);box-shadow:0 3px 0 #e3b42c}
.game-page .game-gift-banner .eyebrow{color:#163976;margin:0 0 5px;font-size:.9rem}
.game-page .gift-card h2{color:#092a64;font-size:1.4rem;font-weight:900;overflow-wrap:anywhere}
.game-page .gift-image{max-width:100%;max-height:100px;margin:8px auto}
.game-page .claim-code{border:2px solid #9edaf8;margin-top:14px;padding:10px 8px;border-radius:17px;background:#e6f6ff}
.game-page .claim-code span{font-size:.875rem;font-weight:750}
.game-page .claim-code strong{color:#082861;font-size:clamp(1.15rem,5.8vw,1.7rem);letter-spacing:.03em;overflow-wrap:anywhere}
.game-page .status-pill{background:#083375;color:#fff;margin-top:12px;font-size:.75rem}
.game-page .gift-card .fine{font-size:.8125rem;margin-top:10px}
.game-page .gift-card .secondary{margin-top:14px;font-size:.9375rem}
.game-page .text-link{font-size:.9rem;font-weight:750;min-height:44px;display:inline-flex;align-items:center;margin-top:16px;color:#164776}
.game-page .result-symbol.claimed{width:62px;height:62px;margin:4px auto 10px;background:#1375dc;color:#fff;font-size:2rem}
.game-page .notice{background:#e8f5ff;border:2px solid #abd9f4;color:#163a64;margin:16px 0}
.game-page .notice strong{color:#123674}
.game-page .footer{background:#d4f0ff url('/images/quiz-scene-v1.png') center bottom / 100% auto no-repeat;padding:22px 14px 12px;margin-top:auto}
.game-page[data-outcome="PASSED"] .footer{background-image:url('/images/success-scene-v1.png')}
.game-page[data-outcome="FAILED"] .footer{background-image:url('/images/retry-scene-v1.png')}
.game-page .footer-line{display:none}
.game-page .logos{min-height:48px;background:#f4fbff;color-scheme:only light;border-radius:16px;padding:4px 12px;gap:20px}
.game-page .logos img{max-width:145px}
.game-page .logos img:first-child{max-width:104px}
@media(hover:hover) and (pointer:fine){
 .game-page .answer-buttons button:not(:disabled):hover,.game-page .primary:not(:disabled):hover,.game-page .secondary:not(:disabled):hover{transform:translateY(-3px);filter:brightness(1.08)}
 .game-page .answer-o:not(:disabled):hover{background:linear-gradient(#38b9ff,#0075ef);box-shadow:0 9px 0 #053a95,inset 0 4px 0 #b5e9ff,0 0 0 2px #ffe34c}
 .game-page .answer-x:not(:disabled):hover{background:linear-gradient(#ffbd48,#f77708);box-shadow:0 9px 0 #a44108,inset 0 4px 0 #ffe4a3,0 0 0 2px #ffe34c}
 .game-page .primary:not(:disabled):hover,.game-page .secondary:not(:disabled):hover{box-shadow:0 8px 0 #ffab27,inset 0 3px 0 #b5e9ff}
 .game-page .primary:hover .game-arrow{transform:translateX(3px)}
}
.game-page .answer-buttons button:not(:disabled):active,.game-page .primary:not(:disabled):active,.game-page .secondary:not(:disabled):active{transform:translateY(3px);filter:brightness(.96);box-shadow:0 2px 0 #083375,inset 0 2px 0 #ffffff77}
.game-page button:focus-visible,.game-page a:focus-visible{outline:3px solid #eebf00;outline-offset:4px}
.game-page .answer-o:focus-visible{background:linear-gradient(#22a5ff,#0757d6)}
.game-page .answer-x:focus-visible{background:linear-gradient(#ffad36,#ed6400);color:white}
@media(max-height:700px){
 .game-page .question-card{min-height:205px}
 .game-page .answer-buttons button{min-height:115px}
}
@media(min-width:700px){body.game-body{padding:12px 0}.game-page{min-height:calc(100svh - 24px)}}
@media(prefers-reduced-motion:reduce){
 .game-page .answer-buttons button,.game-page .primary,.game-page .secondary,.game-arrow{transition:none}
 .game-page .answer-buttons button:not(:disabled):hover,.game-page .answer-buttons button:not(:disabled):active,.game-page .primary:not(:disabled):hover,.game-page .primary:not(:disabled):active,.game-page .secondary:not(:disabled):hover,.game-page .secondary:not(:disabled):active,.game-page .primary:hover .game-arrow{transform:none}
}

/* Align the retry panel with its artwork and keep the official footer uncluttered. */
.game-page[data-outcome="FAILED"] .game-panel{margin-inline:4.5%}
.game-page .footer,.game-page[data-outcome="PASSED"] .footer,.game-page[data-outcome="FAILED"] .footer{background:linear-gradient(180deg,#daf3ff,#c5eaff);padding:16px 14px 12px}
.game-page .question-card{min-height:205px}
@media(max-height:700px){.game-page .question-card{min-height:185px}}

/* A single nine-slice artwork frame keeps its original edge colors and contours.
   The blank center expands with gift content; header characters are never cropped. */
.result-page.game-page{container-type:inline-size}
.result-scene{border-style:solid;border-color:transparent;border-width:62.0068cqw 4.5096cqw 23cqw;border-image-source:url('/images/success-scene-v1.png');border-image-slice:550 40 300 40 fill;border-image-repeat:stretch}
.result-scene-retry{border-width:83.4273cqw 6.2007cqw 23cqw;border-image-source:url('/images/retry-scene-v1.png');border-image-slice:740 55 300 55 fill}
.game-page .result-scene .game-panel,.game-page[data-outcome="FAILED"] .result-scene .game-panel{margin:0;padding:8px 12px 0;background:transparent;border:0;border-radius:0}
.result-scene .result-content>div{position:relative}
.result-page.game-page .footer{margin-top:0;padding-top:0}
@media(max-width:359px){.game-page .result-scene .game-panel{padding-inline:8px}}

/* Immediate input feedback: color/depth changes, no sliding hit targets. */
.poster-action,.poster-arrow,.game-page .answer-buttons button,.game-page .primary,.game-page .secondary,.game-arrow{transition:filter .08s linear,box-shadow .08s linear}
.poster-action:hover:not(:disabled),.poster-action:active:not(:disabled),.poster-action:hover:not(:disabled) .poster-arrow,.poster-action:active:not(:disabled) .poster-arrow,.game-page .answer-buttons button:not(:disabled):hover,.game-page .answer-buttons button:not(:disabled):active,.game-page .primary:not(:disabled):hover,.game-page .primary:not(:disabled):active,.game-page .secondary:not(:disabled):hover,.game-page .secondary:not(:disabled):active,.game-page .primary:hover .game-arrow{transform:none}
.poster-action:active:not(:disabled),.game-page .answer-buttons button:not(:disabled):active,.game-page .primary:not(:disabled):active,.game-page .secondary:not(:disabled):active{transition:none}
.poster-page form[data-busy] button,.game-page form[data-busy] button{opacity:1;cursor:progress;transition:none}
@media(prefers-reduced-motion:reduce){.poster-action,.poster-arrow,.game-page .answer-buttons button,.game-page .primary,.game-page .secondary,.game-arrow{transition:none}}

/* Stable button surfaces: hover/press change brightness, never position or shadow depth. */
.poster-action,.game-page .answer-buttons button,.game-page .primary,.game-page .secondary{transition:none}
.poster-action,.poster-action:hover:not(:disabled),.poster-action:active:not(:disabled){box-shadow:0 5px 0 #ff8826,inset 0 3px 0 #8ed6ff}
.game-page .answer-o,.game-page .answer-o:not(:disabled):hover,.game-page .answer-o:not(:disabled):active{box-shadow:0 6px 0 #053a95,inset 0 4px 0 #86d5ff}
.game-page .answer-x,.game-page .answer-x:not(:disabled):hover,.game-page .answer-x:not(:disabled):active{box-shadow:0 6px 0 #a44108,inset 0 4px 0 #ffda82}
.game-page .primary,.game-page .secondary,.game-page .primary:not(:disabled):hover,.game-page .primary:not(:disabled):active,.game-page .secondary:not(:disabled):hover,.game-page .secondary:not(:disabled):active{box-shadow:0 5px 0 #ff9625,inset 0 3px 0 #92dfff}
.game-page .answer-buttons button[data-submitting]{filter:brightness(.9)}
.game-page .quiz-progress>span{animation:none}
.answer-recover{padding:3px 6px;min-height:28px;border-radius:5px;background:#e4f2ff;color:#123d72;text-decoration:underline;font-weight:750}

/* A reserved photo frame keeps the gift card stable, including missing photos. */
.game-gift-banner .gift-visual{position:relative;width:min(100%,240px);aspect-ratio:4/3;margin:10px auto 12px;overflow:hidden;border:1px solid #e6c566;border-radius:16px;background:#fffdf3;box-shadow:inset 0 1px 3px #a9781410}
.game-page .gift-visual .gift-image{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:12px;object-fit:contain}
.gift-image-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#61718a;font-size:.875rem;font-weight:650}
.gift-image-placeholder svg{flex:none}
.gift-visual [hidden]{display:none!important}

.game-page .claim-code strong.short-code{font-size:2.1rem;letter-spacing:.12em;font-weight:850}

/* Separate event administration pages */
.admin-body{background:#eff5fc;color:#193252}
.admin-shell{max-width:1180px}
.admin-header .eyebrow{color:#476685}
.admin-nav{gap:6px;padding:6px;background:#ddeafb;border-radius:14px}
.admin-nav a{padding:11px 16px;border-radius:10px;color:#304c6e;text-decoration:none;font-weight:700}
.admin-nav a[aria-current=page]{background:#fff;color:#0862ce;box-shadow:0 2px 8px #17396712}
.admin-nav a:last-child{margin-left:auto}
.admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0}
.admin-metrics>div{padding:22px;border:1px solid #dce7f4;border-radius:16px;background:#fff;display:flex;flex-direction:column;gap:9px}
.admin-metrics span{font-size:.95rem;color:#506682}
.admin-metrics strong{font-size:1.9rem;line-height:1.2}
.admin-metrics .metric-highlight{background:#1165d5;border-color:#1165d5;color:#fff}
.admin-metrics .metric-highlight span{color:#fff}
.admin-card{border-color:#dce7f4}
.admin-card .primary{background:#1268d8;color:#fff;border-color:#1268d8;box-shadow:none}
.admin-card .primary:hover{background:#0956bb}
.admin-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
.admin-shortcuts a{display:flex;flex-direction:column;gap:8px;padding:24px;border:1px solid #dce7f4;border-radius:16px;background:#fff;color:#174678;text-decoration:none}
.admin-shortcuts strong{font-size:1.15rem}
.admin-shortcuts span{color:#536b85}
.assignment-search{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;background:#f3f7fd;padding:18px;border-radius:14px;margin:20px 0}
.assignment-search>div:first-child{flex:1 1 220px;max-width:340px}
.assignment-search>div:nth-child(2){flex:0 1 160px}
.assignment-search label{display:block;margin:0 0 6px;font-weight:700}
.assignment-search input,.assignment-search select{width:100%;height:46px;border:1px solid #bfcee0;border-radius:9px;padding:10px 12px;font:inherit;background:#fff;color:#193252}
.assignment-search button,.assignment-search .button{min-height:46px;margin:0}
.assignment-summary{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:22px 0 12px}
.assignment-summary span{color:#536b85;font-size:.9rem}
.assignment-table{min-width:670px}
.assignment-table th{background:#edf4fc}
.assignment-table td{padding:16px 12px}
.assignment-table tbody tr:hover{background:#f6faff}
.admin-claim-code{font-family:ui-monospace,Consolas,monospace;font-size:1.1rem;letter-spacing:.05em;color:#163c72}
.admin-status{display:inline-block;padding:5px 10px;background:#e5efff;color:#1b54a3;border-radius:99px;font-size:.85rem;font-weight:700;white-space:nowrap}
.admin-status.is-claimed{background:#e1f4eb;color:#176246}
.assignment-table small{display:block;color:#536b85;margin-top:5px}
.admin-pagination{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;margin:24px 0 8px}
.admin-pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:6px 12px;background:#fff;border:1px solid #cbd9e9;border-radius:8px;color:#315578;text-decoration:none}
.admin-pagination a[aria-current=page]{background:#1268d8;color:#fff;border-color:#1268d8}
.admin-page-count{text-align:center;color:#536b85;font-size:.9rem}
.admin-empty{text-align:center;padding:36px!important;color:#536b85}
@media(max-width:680px){.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-metrics>div{padding:16px}.admin-nav a{padding:10px;font-size:.9rem}.admin-nav a:last-child{margin-left:0}.admin-shortcuts{grid-template-columns:1fr}.assignment-search>div:first-child{flex-basis:100%;max-width:none}.assignment-search>div:nth-child(2){flex-grow:1}.assignment-summary{flex-direction:column;gap:4px}}

/* Staff confirms delivery directly on the participant phone. */
.game-page .phone-claim{margin-top:20px;border-top:2px dashed #bbdbef;padding-top:16px}
.game-page .phone-claim-guide{font-size:.95rem;line-height:1.65;color:#26436a}
.game-page .phone-claim-guide strong{color:#0749a5;font-size:1.05rem}
.game-page .phone-claim .primary{font-size:clamp(1rem,4.6vw,1.3rem);min-height:60px}
.game-page .phone-claim .fine{font-size:.85rem;color:#45607d}
.game-page .claimed-time{font-size:.9rem;font-weight:700}

.admin-shortcuts>a:only-child{grid-column:1/-1}

/* Keep one event banner; let the result panel grow naturally with its content. */
.result-scene-success{border:0;border-image:none;background:#daf3ff;padding-bottom:14px}
.result-scene-success::before{content:"";display:block;aspect-ratio:887/300;background:url('/images/success-scene-v1.png') center top/100% auto no-repeat}
.game-page .result-scene-success .game-panel{position:relative;margin:-4px 12px 0;padding:20px 16px 8px;background:#fffefb;border:3px solid #082861;border-radius:24px;min-height:0;overflow:visible}
.result-scene-success .game-gift-banner .gift-visual{width:min(100%,180px);aspect-ratio:3/2;margin:8px auto}
.game-page .result-scene-success .game-gift-banner{padding:10px}
.game-page .result-scene-success .gift-card h2{font-size:1.2rem}
.game-page .result-scene-success .score strong{font-size:3.1rem}
.game-page .result-scene-success .phone-claim{margin-top:14px;padding-top:12px}
.game-page .result-scene-success .phone-claim form{margin-top:12px}
.game-page .result-scene-success .phone-claim .fine{font-size:.85rem}
.game-page .result-scene-success .text-link{margin-top:8px}
@media(max-width:359px){.game-page .result-scene-success .game-panel{margin-inline:8px;padding-inline:12px}}

/* Fill mobile browser width while preserving the poster and artwork proportions. */
@media (max-width:699px), (max-width:1024px) and (pointer:coarse){
 body.poster-page{justify-content:flex-start}
 .poster-home{width:100%}
 body.game-body{padding:0}
 .phone.game-page{max-width:none;min-height:100svh;box-shadow:none}
}
/* Keep the original logos and their light backing in one external image. */
.poster-logos{padding:0;gap:0;overflow:hidden}
.poster-logos img.brand-strip{width:100%;max-height:none;flex:none}
.logos img.brand-strip,.game-page .logos img.brand-strip{display:block;width:100%;max-width:360px;height:auto}

.gift-edit .gift-upload{grid-column:1/-1;border:1px solid #dce5e9;border-radius:12px;padding:16px;margin-bottom:18px;background:#f7fafc}
.gift-upload label{margin-bottom:8px}.gift-upload .upload-help{font-size:.85rem;margin:6px 0 12px}.admin-gift-preview{display:block;width:160px;height:140px;object-fit:contain;background:white;border:1px solid #dce5e9;border-radius:10px;margin:10px 0}.admin-gift-preview[hidden]{display:none}.gift-upload input[type=file]{background:#fff;font-size:.9rem}.gift-upload input::file-selector-button{padding:8px 12px;margin-right:10px;border:0;border-radius:6px;background:#095fba;color:#fff;cursor:pointer}
