:root{--paper:#f8faff;--ink:#0047ab;--lime:#ffe179;--muted:#536581;--line:#dbe4f4;--white:#ffffff;--orange:#ff916e;--radius:20px;font-family:system-ui,-apple-system,"Segoe UI","Malgun Gothic",sans-serif;color:var(--ink);background:#e8eef9;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #d36d35;outline-offset:4px}[hidden]{display:none!important}h1,h2,p{margin:0}h1:focus,h2:focus{outline:none}h1,h2{word-break:keep-all}button,a{min-height:48px}.app{max-width:480px;margin:auto;padding:25px 25px 0;background:var(--paper);min-height:100svh;overflow:hidden}.brand{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:800}.brand-symbol{font-family:Georgia,serif;font-size:39px;line-height:1}.brand-symbol span{color:#f0b928}.brand-sub{display:block;font-size:9px;font-weight:500;letter-spacing:.4px;margin-top:2px}.header-star{margin-left:auto;font-size:29px}.steps{display:flex;align-items:center;gap:8px;margin:26px 0 30px;font-size:10px;color:#63728a;white-space:nowrap}.steps span[aria-current]{font-weight:800;color:var(--ink)}.steps i{height:1px;flex:1;background:var(--line)}h1{position:relative;font-size:clamp(42px,11.3vw,55px);letter-spacing:-3px;line-height:1.18;font-weight:850}h1>span:not(.title-spark){position:relative;z-index:0}h1>span:not(.title-spark):after{content:"";position:absolute;bottom:2px;left:0;right:-6px;height:14px;background:var(--lime);z-index:-1}.title-spark{display:inline-block;font-size:42px;vertical-align:top;margin:3px 0 0 17px;color:#ffb938}.lead{color:var(--muted);font-size:14px;line-height:1.8;margin-top:18px;word-break:keep-all}.hero-art{height:243px;position:relative;margin-top:14px;background:radial-gradient(ellipse at 51% 60%,#dce8ff 0%,#dce8ff66 37%,transparent 69%)}.store{position:absolute;left:50%;bottom:34px;width:188px;height:155px;transform:translateX(-50%) rotate(-3deg)}.roof{position:absolute;top:0;height:31px;background:#195bc0;left:0;right:0;border:3px solid var(--ink);border-radius:7px 7px 0 0;color:#ffffff;font-size:10px;font-weight:700;text-align:center;letter-spacing:1.6px;padding:7px}.awning{position:absolute;z-index:2;top:30px;left:-7px;right:-7px;height:28px;background:repeating-linear-gradient(90deg,#fff6d4 0 20px,#76a6ef 20px 40px);border:3px solid var(--ink);border-radius:2px 2px 9px 9px;transform:skewX(-4deg)}.facade{position:absolute;top:49px;bottom:0;left:0;right:0;background:#d8e7ff;border:3px solid var(--ink);display:flex;padding:14px 12px 0;gap:10px}.window{width:83px;height:66px;background:#fff9e7;border:3px solid var(--ink);border-radius:2px;display:grid;place-items:center}.window span{font-family:Georgia,serif;font-size:15px;font-style:italic;line-height:1.05}.door{width:48px;height:90px;background:#3a77d2;border:3px solid var(--ink)}.door:before{content:"";display:block;height:47px;background:#bcd5ff;margin:5px}.door:after{content:"";display:block;background:var(--lime);width:4px;height:9px;margin-left:5px}.mini-sign{position:absolute;z-index:3;right:-32px;top:56px;background:var(--lime);border:3px solid var(--ink);border-radius:6px;padding:10px 8px;text-align:center;box-shadow:4px 4px 0 #0047ab30;font-size:11px;transform:rotate(8deg)}.mini-sign b{font-size:17px;letter-spacing:1px}.step{position:absolute;bottom:-7px;left:-6px;right:-6px;height:10px;background:#91b7ee;border:2px solid var(--ink);border-radius:2px}.orbit{position:absolute;z-index:4;font-size:10px;background:var(--white);padding:7px 12px;border:1px solid #acc6ee;border-radius:50px}.orbit-one{top:9px;right:9px;transform:rotate(7deg)}.orbit-two{bottom:35px;left:-3px;transform:rotate(-8deg)}.sun{position:absolute;left:14px;top:18px;font-size:40px;color:var(--orange)}.ground-line{position:absolute;left:8%;right:4%;bottom:25px;height:2px;background:#a9c0e4}.art-note{position:absolute;bottom:3px;right:6px;font-size:8px;color:#63728a}.plant{position:absolute;right:5px;bottom:27px;width:30px;height:53px}.plant i{position:absolute;bottom:0;width:26px;height:24px;background:#ed9770;border-radius:2px 2px 9px 9px}.plant span{position:absolute;bottom:17px;width:13px;height:35px;border-radius:90% 0;background:#3575bb;transform:rotate(-30deg)}.plant span:nth-child(2){left:15px;transform:rotate(30deg)}.plant span:nth-child(3){left:8px;bottom:23px;transform:rotate(0)}.rule-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding:14px 0}.rule-strip div{text-align:center;border-right:1px solid var(--line)}.rule-strip div:last-child{border:0}.rule-strip b{display:block;font-size:23px;letter-spacing:-1px}.rule-strip span{font-size:10px;color:var(--muted)}.howto{margin:20px 0;font-size:12px;line-height:1.9;text-align:center;color:var(--muted)}.howto>span{float:left;margin:5px 0 0 8px;font-size:24px;color:var(--ink)}.primary{width:100%;border:0;background:var(--ink);color:var(--paper);padding:17px 21px;border-radius:13px;display:flex;align-items:center;justify-content:center;gap:18px;font-size:15px;font-weight:750;text-decoration:none;box-shadow:0 4px 0 #002f75;transition:transform .15s,background .15s}.primary:hover{background:#155bc1}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #002f75}.primary>span{margin-left:auto;font-size:23px;line-height:1}.micro{text-align:center;font-size:10px;color:var(--muted);margin:14px 0 0}.text-button{display:block;margin:16px auto 0;border:0;background:transparent;color:var(--ink);text-decoration:underline;text-underline-offset:5px;font-size:12px;padding:12px 18px}footer{margin-top:30px;padding:18px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;font-size:9px;color:var(--muted)}footer span:first-child{font-family:Georgia,serif;font-style:italic;letter-spacing:.4px}.game-heading h2{font-size:23px;letter-spacing:-1.1px}.game-heading p{font-size:12px;color:var(--muted);margin-top:9px}.scoreboard{display:flex;justify-content:space-between;margin-top:25px}.scoreboard>div>span{font-size:11px;color:var(--muted)}.scoreboard strong{display:block;font-size:37px;font-variant-numeric:tabular-nums;line-height:1.3}.scoreboard small{font-size:16px}.score-right{text-align:right}.timer-track{height:6px;border-radius:10px;background:#dbe5f7;margin:10px 0 22px;overflow:hidden}#timer-fill{height:100%;background:#0047ab;width:100%;transition:width .1s linear}.timer-track.urgent #timer-fill{background:#c34b30}.neighborhood{background:#eaf1ff;border:1px solid #c9daf5;border-radius:20px;padding:16px 12px 0;overflow:hidden}.street-label{display:flex;justify-content:space-between;font-size:11px;font-weight:700;margin:0 3px 15px}.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px}.shop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:102px;padding:8px 2px;border:1px solid #c8d6ed;background:#f9fbff;border-radius:12px;color:#586d8b;transition:background .15s,transform .15s}.shop:disabled{opacity:1}.shop-name{font-size:10px}.shop-icon{position:relative;width:49px;height:31px;border:2px solid currentColor;border-top:9px solid currentColor;border-radius:4px 4px 0 0;opacity:.55}.shop-icon:before{content:"";position:absolute;top:3px;bottom:0;left:7px;width:12px;background:currentColor}.shop-icon:after{content:"";position:absolute;top:3px;left:26px;width:13px;height:11px;border:1px solid currentColor}.shop-status{font-size:9px;min-height:14px}.shop.target{background:var(--ink);color:var(--lime);border-color:var(--ink);box-shadow:0 3px 0 #7da8ee;animation:invite 1.2s ease-in-out infinite}.shop.target .shop-icon{opacity:1}.shop.target .shop-status{font-weight:800}.shop.installed{background:#fff0b7;color:var(--ink);border-color:#e3c867}.shop.installed .shop-icon{opacity:1}.shop.installed .shop-icon:after{content:"OPEN";font-size:7px;font-weight:900;background:var(--lime);width:29px;height:19px;top:-5px;left:24px;display:grid;place-items:center;transform:rotate(6deg);border:1px solid var(--ink);border-radius:3px}.road{height:26px;margin-top:14px;border-top:2px solid #b3cbed;position:relative}.road:after{content:"";height:2px;position:absolute;top:12px;left:-12px;right:-12px;background:repeating-linear-gradient(90deg,#b3cbed 0 20px,transparent 20px 40px)}.feedback{text-align:center;font-size:12px;line-height:1.6;min-height:38px;margin:16px 0 5px;word-break:keep-all}.message-card{display:flex;align-items:center;gap:16px;border:1px solid var(--line);border-radius:15px;padding:17px;text-align:left;margin:16px 0 24px}.message-card>span{font-size:30px}.message-card p{font-size:12px;line-height:1.8}.result{text-align:center;padding-top:15px}.result h2{font-size:34px;letter-spacing:-1.7px;line-height:1.3}.result .lead{margin:18px 0 28px}.result-seal{margin:12px auto 24px;width:122px;height:122px;border-radius:50%;background:var(--lime);border:1px solid #e5c562;outline:1px dashed #b79a35;outline-offset:-8px;font-size:58px;line-height:1.4;transform:rotate(-8deg)}.result-seal span{display:block;font-size:9px;letter-spacing:1px}.result-overline{font-size:12px;font-weight:700;color:#0047ab;margin-bottom:12px}.retry-seal{background:#e3edff}.coupon{background:var(--lime);border:1px solid #e0bf5c;border-radius:20px;padding:24px 23px 0;position:relative;text-align:left;margin:28px 0 24px;overflow:hidden}.coupon-top{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:700}.coupon-top>span:last-child{font-size:26px}.discount{font-size:103px;font-weight:850;line-height:1.25;letter-spacing:-8px}.discount>span{font-size:47px;letter-spacing:-2px;margin-left:4px}.coupon>p{font-size:12px;margin:5px 0 26px}.coupon-bottom{border-top:2px dashed #b89a3d;padding:17px 0;font-size:10px;letter-spacing:2px;text-align:center}.benefit-note{text-align:left;font-size:12px;line-height:1.8;margin-bottom:24px}.benefit-note b{font-size:13px}.benefit-note p{color:var(--muted);margin-top:8px}#setup-note{background:#eaf1ff;border-radius:10px;padding:12px;font-size:11px}.screen{animation:appear .25s ease-out}@keyframes appear{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes invite{50%{box-shadow:0 0 0 3px #7da8ee}}
#success{position:relative}.confetti{position:absolute;inset:0 0 auto;height:260px;overflow:hidden;pointer-events:none}.confetti i{position:absolute;top:-16px;left:8%;width:8px;height:13px;background:var(--ink);border-radius:2px;opacity:0;animation:confetti-fall 1.8s ease-out both}.confetti i:nth-child(2n){background:var(--lime);border-radius:50%;height:9px}.confetti i:nth-child(3n){background:var(--orange)}.confetti i:nth-child(2){left:16%;animation-delay:.12s}.confetti i:nth-child(3){left:24%;animation-delay:.3s}.confetti i:nth-child(4){left:32%;animation-delay:.08s}.confetti i:nth-child(5){left:40%;animation-delay:.24s}.confetti i:nth-child(6){left:48%;animation-delay:.04s}.confetti i:nth-child(7){left:56%;animation-delay:.18s}.confetti i:nth-child(8){left:64%;animation-delay:.35s}.confetti i:nth-child(9){left:72%;animation-delay:.14s}.confetti i:nth-child(10){left:80%;animation-delay:.28s}.confetti i:nth-child(11){left:88%;animation-delay:.06s}.confetti i:nth-child(12){left:94%;animation-delay:.22s}#success:not([hidden]) .result-seal{animation:seal-pop .5s ease-out both}@keyframes confetti-fall{0%{opacity:0;transform:translate(-8px,0) rotate(0)}10%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translate(14px,250px) rotate(260deg)}}@keyframes seal-pop{0%{transform:scale(.7) rotate(-15deg)}65%{transform:scale(1.08) rotate(-4deg)}100%{transform:scale(1) rotate(-8deg)}}
/* 불빛을 따라 누르는 점수 게임 */
#intro h1{font-size:clamp(29px,8.5vw,39px);letter-spacing:-1.7px;line-height:1.35}.game-heading h2{max-width:310px;font-size:23px;line-height:1.4}.shop.target{color:#fff;animation:sign-blink .7s ease-in-out infinite}.shop.target .shop-icon:after{content:"ON";font-size:9px;font-weight:900;background:var(--lime);color:var(--ink);width:29px;height:21px;top:-6px;left:24px;display:grid;place-items:center;border:1px solid var(--ink);border-radius:4px;box-shadow:0 0 13px #ffe179c0}.shop.scored{background:#fff0b7;color:var(--ink);border-color:#e3c867}.shop.scored .shop-icon{opacity:1}.shop-status{font-size:10px}@keyframes sign-blink{0%,100%{background:#0047ab;box-shadow:0 0 0 2px #7da8ee}50%{background:#377ade;box-shadow:0 0 0 4px #ffe17999}}#game .message-card{margin:10px 0 12px;padding:12px 17px}#game .text-button{margin-top:4px}
@media(prefers-reduced-motion:reduce){.confetti{display:none}}
@media(min-width:600px){body{padding:32px 0}.app{border:1px solid #d1dff4;border-radius:27px;box-shadow:0 18px 60px #0047ab10;padding:30px 34px 0;min-height:850px}}
@media(max-width:350px){.app{padding:20px 18px 0}.steps{gap:5px;font-size:9px}h1{font-size:42px}.title-spark{font-size:32px;margin-left:10px}.game-heading h2{font-size:21px}.shop{min-height:92px}.hero-art{height:225px}.orbit-one{right:0}.store{width:170px}.mini-sign{right:-23px}.result h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-height:740px) and (max-width:599px){.app:has(#game:not([hidden])){padding-top:15px}.app:has(#game:not([hidden])) .steps{margin:17px 0 20px}.game-heading h2{font-size:20px}.scoreboard{margin-top:14px}.scoreboard strong{font-size:30px}.timer-track{margin:8px 0 14px}.neighborhood{padding-top:11px}.street-label{margin-bottom:10px}.shop{min-height:76px;gap:3px;padding:5px 2px}.board{gap:8px}.shop-icon{height:27px}.road{height:19px;margin-top:10px}.feedback{margin-top:10px;min-height:25px}.game-heading p{margin-top:6px}#game .message-card{padding:10px 15px;margin:10px 0}#game .text-button{margin-top:0}.app:has(#game:not([hidden])) footer{margin-top:12px}}

/* 출시 예고: 문 옆 미니간판이 있는 가게 할인권 */
.benefit{position:relative}.benefit h2{font-size:clamp(24px,7.1vw,30px);letter-spacing:-1.4px}.benefit .lead{margin:12px 0 20px;font-size:12px}.launch-shop{position:relative;margin:0 0 10px;border:2px solid var(--ink);border-radius:14px 14px 6px 6px;background:#e5eeff;box-shadow:0 6px 0 #bdd2f2;overflow:hidden;text-align:center}.launch-roof{background:var(--ink);color:white;font-size:24px;font-weight:850;padding:12px;letter-spacing:3px}.launch-roof>span{display:block;font-size:9px;font-weight:500;letter-spacing:1px;margin-top:3px}.launch-awning{height:26px;background:repeating-linear-gradient(90deg,#fff2c2 0 24px,#75a6ef 24px 48px);border-bottom:3px solid var(--ink);border-radius:0 0 8px 8px;position:relative;z-index:1}.launch-wall{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 53px 43px;gap:10px;padding:19px 12px 0;align-items:end;min-height:161px}.launch-window{align-self:start;border:2px solid var(--ink);background:#fff5cd;border-radius:7px;padding:12px 3px 9px;margin-bottom:16px}.launch-window>span{display:block;font-size:9px}.launch-window>span:first-child{font-size:11px;font-weight:700}.launch-window strong{display:block;font-size:62px;line-height:1.15;letter-spacing:-4px}.launch-window small{font-size:28px;letter-spacing:-1px}.launch-door{height:132px;background:#3574cc;border:2px solid var(--ink);padding:8px 5px;position:relative}.launch-door:before{content:'';position:absolute;top:7px;left:5px;right:5px;height:77px;background:#cde1ff}.launch-door:after{content:'';position:absolute;left:5px;bottom:27px;width:4px;height:12px;background:var(--lime);border-radius:3px}.launch-door span{position:relative;display:block;top:30px;font-size:7px;color:var(--ink);white-space:nowrap}.wall-sign{align-self:start;margin-top:29px;width:39px;height:52px;border:2px solid var(--ink);border-radius:4px;background:var(--lime);display:flex;flex-direction:column;justify-content:center;gap:4px;box-shadow:2px 2px 0 #0047ab22}.wall-sign b{font-size:10px}.wall-sign span{font-size:8px;letter-spacing:.8px}.launch-step{border-top:3px solid var(--ink);background:#d3e2f8;padding:9px 2px;font-size:9px}.sign-caption{font-size:10px;line-height:1.7;margin:14px 0 18px;color:var(--muted)}.sign-caption span{font-size:8px}.launch-message{font-size:17px;line-height:1.7;letter-spacing:-.6px;word-break:keep-all}.launch-message strong{background:linear-gradient(transparent 62%,#ffe179 62%);font-weight:800}.launch-invite{font-size:11px;line-height:1.9;margin:13px 0 19px;color:var(--muted);word-break:keep-all}.benefit .benefit-note{margin-bottom:12px}.benefit #setup-note{margin-top:5px;padding:10px;font-size:10px}.benefit .text-button{margin-top:6px}.store .roof{font-size:14px;padding:4px;letter-spacing:3px}.store .facade{padding:14px 8px 0;gap:7px}.store .window{width:57px}.store .door{width:39px}.store .mini-sign{right:8px;top:72px;width:30px;height:40px;padding:4px 1px;font-size:6px;transform:none;border-width:2px;box-shadow:2px 2px 0 #0047ab22}.store .mini-sign b{font-size:8px;letter-spacing:0}
.fireworks{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3}.fireworks i{position:absolute;width:4px;height:4px;left:18%;top:90px;color:#ffb938;animation:firework-burst 1.5s ease-out both}.fireworks i:nth-child(2){left:79%;top:160px;animation-delay:.25s;color:#4989ec}.fireworks i:nth-child(3){left:53%;top:55px;animation-delay:.55s;color:#ff916e}.fireworks i:before,.fireworks i:after{content:'';position:absolute;width:5px;height:5px;background:currentColor;border-radius:50%;box-shadow:0 -38px,27px -27px,38px 0,27px 27px,0 38px,-27px 27px,-38px 0,-27px -27px}.fireworks i:after{transform:rotate(22.5deg) scale(.65)}@keyframes firework-burst{0%{transform:scale(.05);opacity:0}15%{opacity:1}65%{opacity:1}100%{transform:scale(1.7);opacity:0}}@media(prefers-reduced-motion:reduce){.fireworks{display:none}}

/* 태양광 패널 + LED 제품 콘셉트 */
.wall-sign,.store .mini-sign{position:relative;background:#fffef0;border-color:#9daebf;box-shadow:0 0 0 2px #fff8c7,0 0 16px 5px #ffe17999,inset 0 0 9px #fff4aa;animation:led-breathe 2.8s ease-in-out infinite}.store .mini-sign{position:absolute}.wall-sign:before,.store .mini-sign:before{content:'';position:absolute;left:-4px;right:-4px;top:-13px;height:12px;border:2px solid #b2bdc9;border-radius:3px;background:repeating-linear-gradient(90deg,transparent 0 7px,#8295ba 7px 8px),repeating-linear-gradient(0deg,#203858 0 4px,#8295ba 4px 5px);transform:skewX(-13deg);box-shadow:1px 2px 2px #18305255}.store .mini-sign:before{top:-10px;height:9px}.wall-sign span{font-size:7px;color:#6b530c;font-weight:800}.wall-sign b{text-shadow:0 0 5px #ffed9d}.shop.target .shop-icon:after{content:'LED';background:#fffbe1;box-shadow:0 0 14px 3px #ffe179bb}.sign-caption{line-height:1.9}.benefit .lead{color:#315b90}.benefit h2{padding:0 15px;font-size:clamp(23px,6.5vw,28px)}
@keyframes led-breathe{50%{box-shadow:0 0 0 2px #fff8c7,0 0 23px 8px #ffe179aa,inset 0 0 13px #fff4aa}}
/* 눈웃음 태양: 화면 우측 상단 */
.happy-sun{width:45px;height:45px;position:relative;margin-left:auto;flex-shrink:0;display:block;isolation:isolate}.sun-rays{position:absolute;inset:-8px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#ffbf39 0deg 8deg,transparent 8deg 30deg);animation:sun-turn 24s linear infinite;z-index:-1;mask-image:radial-gradient(circle,transparent 48%,#000 51%,#000 64%,transparent 68%)}.sun-face{position:absolute;inset:3px;border:2px solid #efaa25;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff19b,#ffcc48);animation:sun-bob 2.6s ease-in-out infinite;box-shadow:0 0 15px #ffe17966}.sun-eyes:before,.sun-eyes:after{content:'';position:absolute;top:12px;width:7px;height:5px;border:2px solid #8d550b;border-bottom:0;border-radius:9px 9px 0 0}.sun-eyes:before{left:7px}.sun-eyes:after{right:7px}.sun-smile{position:absolute;left:13px;top:21px;width:10px;height:6px;border-bottom:2px solid #8d550b;border-radius:0 0 10px 10px}.sun-face:before,.sun-face:after{content:'';position:absolute;top:20px;width:6px;height:3px;border-radius:50%;background:#f49f63}.sun-face:before{left:5px}.sun-face:after{right:5px}.sun-spark{position:absolute;color:#eeab22;animation:sun-twinkle 1.8s ease-in-out infinite;font-size:13px}.spark-a{top:-9px;right:-6px}.spark-b{bottom:-6px;left:-7px;animation-delay:.8s}@keyframes sun-turn{to{transform:rotate(360deg)}}@keyframes sun-bob{50%{transform:translateY(-3px) rotate(7deg)}}@keyframes sun-twinkle{50%{transform:scale(.55) rotate(20deg);opacity:.35}}
/* 제목 좌우에서 쏘아 올리는 폭죽 */
.benefit .fireworks{inset:0 -14px auto;height:170px;overflow:hidden}.benefit .fireworks i{left:4%;top:53px;animation:side-firework 1.9s ease-out both;color:#efb52e}.benefit .fireworks i:nth-child(2){left:94%;top:53px;animation-delay:.2s;color:#5794f0}.fireworks i em{position:absolute;left:0;top:10px;width:2px;height:38px;background:linear-gradient(transparent,currentColor);animation:rocket-trail .5s ease-out both}.fireworks i:nth-child(2) em{animation-delay:.2s}@keyframes side-firework{0%{transform:translateY(65px) scale(.02);opacity:0}18%{transform:translateY(0) scale(.04);opacity:1}35%{transform:scale(.55);opacity:1}70%{opacity:.8}100%{transform:scale(.85);opacity:0}}@keyframes rocket-trail{0%{opacity:0;transform:translateY(35px)}40%{opacity:1}100%{opacity:0;transform:translateY(-12px)}}

/* 혜택 화면: 태양을 제목 오른쪽으로 이동 */
.app:has(#benefit:not([hidden])) .brand>.happy-sun{visibility:hidden}.benefit>.happy-sun{position:absolute;right:0;top:6px;margin:0;z-index:4;animation:sun-wink 1.4s ease-in-out infinite}.benefit .launch-message{margin-top:24px}.launch-window{min-height:115px}.benefit .fireworks i:nth-child(2){top:93px}@keyframes sun-wink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.9)}}

/* 모바일 가독성: 안내 문구와 조작부 확대 */
.brand{font-size:17px}.brand-sub{font-size:11px}.steps{font-size:12px;gap:6px}.lead{font-size:16px}.rule-strip span{font-size:13px}.rule-strip b{font-size:26px}.howto{font-size:14px}.primary{font-size:17px}.micro{font-size:12px}.text-button{font-size:14px}.game-heading p{font-size:14px}.scoreboard>div>span{font-size:13px}.shop-name{font-size:12px}.shop-status{font-size:11px}.street-label{font-size:13px}.feedback{font-size:14px}.message-card p{font-size:14px}.result-overline{font-size:14px}.benefit .lead{font-size:16px;margin:16px 0 22px}.launch-roof>span{font-size:11px}.launch-window>span:first-child{font-size:14px}.launch-window strong{font-size:68px}.launch-step{font-size:12px;padding:11px 5px}.launch-message{font-size:20px;line-height:1.7}.launch-invite{font-size:15px;line-height:1.8}.benefit #setup-note{font-size:14px;line-height:1.8;padding:14px}.benefit-note{font-size:14px}footer{font-size:11px}.orbit{font-size:12px}.art-note{font-size:10px}.launch-window{min-height:123px}
@media(max-width:350px){.steps{font-size:11px}.brand-sub{font-size:10px}.shop-name{font-size:11px}.shop-status{font-size:10px}.launch-window>span:first-child{font-size:12px}.launch-message{font-size:18px}.launch-invite{font-size:14px}}

/* 터치 미로 아케이드 */
.arcade-intro{height:215px;background:#07132d;border:2px solid #245bb5;border-radius:20px;position:relative;overflow:hidden;margin:22px 0;color:#d3e5ff;box-shadow:inset 0 0 30px #18449b44}.arcade-label{display:flex;justify-content:space-between;padding:18px 16px;font-size:10px;letter-spacing:1px;font-weight:700}.arcade-label span{color:#ffda44}.arcade-runner{position:absolute;width:80px;height:80px;border-radius:50%;background:#ffda44;left:24px;top:69px;clip-path:polygon(0 0,100% 0,100% 24%,50% 50%,100% 76%,100% 100%,0 100%);animation:mouth-chomp .38s ease-in-out infinite alternate;filter:none}.arcade-runner i{position:absolute;left:43px;top:16px;width:7px;height:7px;border-radius:50%;background:#493805}.teaser-cookies{display:flex;gap:21px;position:absolute;left:128px;right:70px;top:106px}.teaser-cookies i{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:#ffdc9c;animation:cookie-shine .65s ease-in-out infinite alternate}.teaser-cookies i:nth-child(2){animation-delay:.2s}.teaser-cookies i:nth-child(3){animation-delay:.4s}.teaser-ghost{position:absolute;right:22px;top:85px;width:40px;height:46px;border-radius:22px 22px 3px 3px;background:#ff759c;animation:ghost-float 1s ease-in-out infinite alternate;clip-path:polygon(0 0,100% 0,100% 100%,75% 86%,50% 100%,25% 86%,0 100%)}.teaser-ghost:before,.teaser-ghost:after{content:'';position:absolute;top:14px;width:11px;height:13px;border-radius:50%;background:radial-gradient(circle at 35% 50%,#102348 0 3px,#fff 3.5px)}.teaser-ghost:before{left:7px}.teaser-ghost:after{right:7px}.arcade-caption{position:absolute;bottom:29px;left:0;right:0;text-align:center;font-size:12px}.arcade-rail{position:absolute;bottom:13px;left:17px;right:17px;height:3px;background:#265cc3;border-radius:5px}@keyframes mouth-chomp{to{clip-path:polygon(0 0,100% 0,100% 46%,50% 50%,100% 54%,100% 100%,0 100%)}}@keyframes ghost-float{to{transform:translateY(-7px)}}@keyframes cookie-shine{to{opacity:.3;transform:scale(.65)}}
.maze-hud{display:flex;justify-content:space-between;gap:8px;margin-top:17px}.maze-hud>div>span{display:block;font-size:12px;color:var(--muted)}.maze-hud strong{font-size:29px;display:block;line-height:1.35;font-variant-numeric:tabular-nums}.maze-hud small{font-size:15px}#lives{font-size:22px;color:#dc5d81;letter-spacing:3px;padding-top:5px}.maze-shell{border-radius:17px;overflow:hidden;background:#07132d;border:2px solid #245bb5;box-shadow:0 5px 0 #d6e2f7}.maze-topline{display:flex;justify-content:space-between;padding:11px 12px 6px;color:#b8cfff;font-size:10px;letter-spacing:.8px}.maze-topline span:last-child{color:#ffe077;font-weight:800}#maze{display:block;width:100%;height:auto;touch-action:none;cursor:crosshair}.direction-pad{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:15px}.direction-pad button{min-height:46px;border-radius:12px;border:1px solid #b5cbed;background:#e8f0ff;color:var(--ink);font-size:24px;font-weight:800;box-shadow:0 3px 0 #c5d7f3}.direction-pad button:active{background:#cfdeff;transform:translateY(2px)}#game .timer-track{margin:9px 0 13px}#game .feedback{margin:13px 0 4px;min-height:42px;font-size:13px}.power-guide{text-align:center;font-size:11px;color:var(--muted);line-height:1.6}.power-guide span{color:#c89811}#game .text-button{margin-top:6px}.app:has(#game:not([hidden])) .steps{margin:18px 0 19px}.app:has(#game:not([hidden])) footer{margin-top:12px}
@media(max-width:350px){.arcade-runner{width:66px;height:66px;left:18px}.teaser-cookies{left:101px;gap:12px}.teaser-ghost{right:18px}.maze-topline{font-size:9px}.power-guide{font-size:10px}}

/* 수집한 햇빛이 제품의 LED 점등으로 이어지는 연출 */
.energy-card{display:flex;align-items:center;gap:13px;padding:9px 12px;margin-top:12px;background:#edf3ff;border:1px solid #ccdbf1;border-radius:14px}.energy-store{position:relative;width:78px;height:62px;flex-shrink:0;text-align:center}.charge-roof{position:absolute;top:0;left:0;right:0;height:21px;border:2px solid #0047ab;border-radius:5px 5px 0 0;background:#0047ab;color:#fff;font-size:10px;font-weight:800;line-height:17px;letter-spacing:1px}.charge-wall{position:absolute;top:21px;bottom:0;left:0;right:0;background:#cfdef5;border:2px solid #0047ab;border-top:0}.charge-window{position:absolute;left:5px;top:6px;width:23px;height:22px;background:#f8fbff;border:1px solid #0047ab;border-radius:2px}.charge-door{position:absolute;left:33px;top:4px;width:17px;bottom:0;background:#5890da;border:1px solid #0047ab}.charge-door:before{content:'';position:absolute;top:3px;left:2px;right:2px;height:18px;background:#a9c9f3}.charge-door:after{content:'';position:absolute;left:2px;bottom:5px;height:4px;width:2px;background:#ffe179}.charge-sign{position:absolute;top:12px;right:3px;width:17px;height:23px;border:1px solid #8d9fb5;background:#b7c0cc;color:#536074;border-radius:2px;font-size:4px;display:flex;flex-direction:column;justify-content:center;gap:2px}.charge-sign small{font-size:4px}.charge-sign:before{content:'';position:absolute;top:-6px;left:-2px;right:-2px;height:5px;background:repeating-linear-gradient(90deg,#234267 0 4px,#b1bfcd 4px 5px);border:1px solid #92a3b8;transform:skewX(-13deg)}.energy-info{flex:1;min-width:0}.energy-info>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:5px}.energy-info b{font-size:11px}.energy-info strong{font-size:20px}.energy-track{height:9px;border-radius:8px;background:#d1dff3;overflow:hidden;margin:5px 0}.energy-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ffba36,#ffe37a);transition:width .18s}.energy-info p{font-size:10px;line-height:1.5;word-break:keep-all}.is-lit .charge-sign{background:#fffddb;color:#23446f;box-shadow:0 0 13px 6px #ffe179;animation:sign-switch-on 1.5s ease-out both}.success-shop{height:153px;padding-top:20px;margin:0 auto 12px;position:relative}.success-shop .energy-store{margin:0 auto;transform:scale(2);transform-origin:center top}.energy-disclaimer{text-align:center;font-size:10px;color:var(--muted);margin:8px 0 18px;line-height:1.6}.teaser-cookies i{border-radius:0;clip-path:polygon(50% 0,64% 31%,100% 20%,80% 50%,100% 80%,64% 69%,50% 100%,36% 69%,0 80%,20% 50%,0 20%,36% 31%);width:13px;height:13px;background:#ffdc59}.teaser-cookies{top:104px;gap:16px}.arcade-caption{font-size:13px}
@keyframes sign-switch-on{0%{background:#b7c0cc;box-shadow:none}25%{background:#fffddb;box-shadow:0 0 6px #ffe179}50%{box-shadow:0 0 19px 8px #ffe179}100%{background:#fffddb;box-shadow:0 0 13px 6px #ffe179}}
.app:has(#game:not([hidden])) .steps{margin:12px 0 13px}#game .game-heading h2{font-size:23px}#game .game-heading p{font-size:12px}#game .maze-hud{margin-top:10px}#game .maze-hud strong{font-size:25px}#game .maze-hud #lives{font-size:21px}#game .maze-topline{padding:7px 10px 4px}#game .direction-pad{margin-top:10px}#game .feedback{margin-top:9px;min-height:36px}#game .maze-shell{max-width:308px;margin:auto}#game .timer-track{margin-bottom:9px}
@media(max-width:350px){.energy-card{gap:8px;padding:8px}.energy-info b{font-size:10px}.energy-info strong{font-size:17px}.energy-info p{font-size:9px}#game .game-heading h2{font-size:21px}}

.message-card p{word-break:keep-all}

/* 고객 검수: 짧은 설명, 큰 조작부, 첫 이동 대기와 일시정지 */
.quick-rules{list-style:none;padding:0;margin:14px 0 18px;font-size:15px;line-height:1.8}.quick-rules li{margin:4px 0}.quick-rules b{display:inline-block;margin-right:7px;color:var(--ink)}.arcade-intro{height:156px;margin:16px 0}.arcade-runner{width:62px;height:62px;top:47px}.arcade-runner i{top:11px;left:33px}.teaser-cookies{top:72px}.teaser-ghost{top:57px;width:35px;height:41px}.arcade-caption{bottom:22px;font-size:12px}.arcade-rail{bottom:9px}.arcade-label{padding:12px 15px}.game-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:5px;font-size:12px;color:var(--muted)}#pause-game{min-height:48px;border:0;background:transparent;color:var(--ink);font-size:14px;font-weight:700;padding:6px 10px}.direction-pad button{min-height:52px;font-size:27px}.maze-shell{position:relative}.ready-hint{position:absolute;z-index:2;top:45%;left:50%;transform:translate(-50%,-50%);width:85%;padding:13px 9px;border-radius:12px;border:1px solid #91b7ee;background:#f8fafff5;text-align:center;pointer-events:none;color:var(--ink)}.ready-hint b{display:block;font-size:17px}.ready-hint span{display:block;font-size:13px;margin-top:5px}.pause-overlay{position:absolute;z-index:4;inset:0;background:#07132df0;color:white;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:25px;gap:15px}.pause-overlay>b{font-size:24px}.pause-overlay>p{font-size:14px}.pause-overlay .primary{background:#ffe179;color:#0047ab;box-shadow:none}.energy-info b{font-size:13px}.energy-info p{font-size:12px}.energy-info strong{font-size:22px}.energy-disclaimer{font-size:12px}.power-guide{font-size:12px;word-break:keep-all}.launch-pending{border:1px solid #b9ccec;background:#eaf1ff;border-radius:14px;padding:17px;text-align:center;margin:20px 0 4px}.launch-pending strong{display:block;font-size:19px}.launch-pending p{font-size:14px;color:var(--muted);line-height:1.8;margin-top:8px}.launch-wall{overflow:visible}.wall-sign{flex-shrink:0}
@media(max-width:599px){.app:has(#game:not([hidden])){padding-top:12px}.app:has(#game:not([hidden])) .brand{display:none}.app:has(#game:not([hidden])) .steps{margin:3px 0 12px}#game .maze-shell{max-width:340px}#game .maze-hud{margin-top:0}#game .energy-card{margin-top:9px}.energy-card{gap:10px;padding:8px}.energy-info b{font-size:12px}.energy-info p{font-size:12px}.energy-info strong{font-size:20px}}
@media(max-width:350px){.quick-rules{font-size:14px}.energy-info>div:first-child{align-items:start}.energy-info b{font-size:12px}.energy-info p{font-size:11px}.game-tools{font-size:11px}#game .game-heading p{font-size:12px}.power-guide{font-size:11px}}

.sound-toolbar { display:flex; justify-content:flex-end; margin: 0 0 8px; }
#sound-toggle { min-height:44px; padding:8px 14px; border:1px solid #b7cbed; border-radius:24px; background:#edf4ff; color:#0047ab; font:inherit; font-size:14px; font-weight:700; cursor:pointer; touch-action:manipulation; }
#sound-toggle[aria-pressed="false"] { background:#f2f4f8; color:#52627c; }
