@import url('/source-layout/fonts.css?v=complete2');
#app{overflow:clip;background:#c4def1}.source-page{position:relative;min-height:100svh}.source-stage{width:720px;position:absolute;left:0;top:0;transform-origin:0 0;overflow:hidden;isolation:isolate;background:#c4def1}.source-bg{position:absolute;inset:0;width:720px;height:100%;z-index:-3}.source-vectors,.source-copy{position:absolute;inset:0;pointer-events:none}.native-art{position:absolute;top:0;left:0;overflow:visible}.source-copy{z-index:1}.source-run{font-weight:400;line-height:1;white-space:pre;font-synthesis:none;position:absolute;left:0;top:0}.source-run>span{position:absolute;line-height:1;white-space:pre}.source-button{position:absolute;z-index:3;margin:0;padding:0;background:none;border:0;border-radius:60px;overflow:hidden;isolation:isolate;cursor:pointer;color:inherit;transition:transform .2s cubic-bezier(.2,.8,.2,1),filter .25s,box-shadow .25s;transform-origin:center}.button-source-art{position:absolute;max-width:none;pointer-events:none}.source-button .source-run{pointer-events:none}.source-button.plain{border-radius:8px;overflow:visible}.source-button .interaction-shine{position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(110deg,transparent 35%,#ffffff65 49%,transparent 63%);transform:translateX(-120%);opacity:0;transition:opacity .2s,transform .8s cubic-bezier(.16,1,.3,1)}.source-button:focus-visible{outline:4px solid #f7e26a;outline-offset:5px}.source-button:active{transform:scale(.955) translateY(2px);filter:brightness(.94)}.source-button.clicked{animation:source-click .38s cubic-bezier(.16,1,.3,1)}@media(hover:hover){.source-button:hover{transform:translateY(-3px);filter:brightness(1.06);box-shadow:0 6px 18px #1b5aa330}.source-button:hover .interaction-shine{opacity:1;transform:translateX(120%)}}
.source-home{position:absolute;left:605px;top:28px;width:82px;height:84px;z-index:5}.source-form{position:absolute;inset:0;pointer-events:none;z-index:3}.source-form>*{pointer-events:auto}.source-field{position:absolute;display:block}.source-field input{width:100%;height:100%;padding:9px 22px;border:1px solid transparent;border-radius:5px;background:transparent;color:#1b4777;font-family:'NotoSansTC-Medium','PingFang TC',sans-serif;font-size:24px;outline:0}.source-field input::placeholder{color:#1b4777;opacity:1}.source-field input:focus{border:2px solid #548cee;background:#e8f7ff;box-shadow:0 0 0 4px #3d83eb18}.source-upload{position:absolute;border-radius:40px;overflow:hidden;cursor:pointer;transition:filter .2s,box-shadow .2s}.source-upload:hover{box-shadow:0 0 0 4px #d1ee3870}.source-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.source-upload:focus-within{outline:4px solid #286af0;outline-offset:5px}.source-file-preview{position:absolute;height:54px;border:0;background:transparent;color:#2686be;font-size:20px;text-decoration:underline}.source-checkbox{position:absolute;width:21px;height:21px;accent-color:#2770ec;margin:0;cursor:pointer}.source-select{position:absolute;font-family:'NotoSansTC-Regular',sans-serif;font-size:23px;padding:8px 18px;height:56px;border:0;color:#2a4564;background:#dff2fc;border-radius:10px;z-index:4}.source-week{position:absolute;z-index:3;background:none;border:0;border-radius:10px}.source-week:hover{box-shadow:inset 0 0 0 2px #76b3e8;background:#78beff10}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.source-camera-button{position:absolute;left:170px;top:540px;width:380px;height:70px;border:2px solid #fff;border-radius:40px;background:#236ef0;color:#fff;font-size:26px;z-index:5}.source-camera-frame{position:absolute;left:98.906px;top:301.487px;width:522.188px;height:401.498px;border-radius:45.888px;overflow:hidden;z-index:4;pointer-events:none}.source-camera-frame .source-camera{display:block;position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;object-fit:cover;object-position:center;background:#142335}.source-camera-status{position:absolute;left:115px;top:711px;width:500px;text-align:center;font-size:17px;color:#19569e;background:#fff}.source-stage .error-message{position:fixed;bottom:20px;left:75px;right:75px;z-index:8;background:#fff1f1;padding:10px 16px;font-size:22px;border-radius:8px}.source-stage .error-message:empty{display:none}.source-vector-glint{transform-box:fill-box;transform-origin:center;animation:source-glint 5s ease-in-out infinite}.source-ae{position:absolute;left:0;top:0;width:720px;height:1280px;pointer-events:none;z-index:-2}.source-button{touch-action:manipulation}.preview-bar{opacity:.6}.preview-bar:hover{opacity:1}@keyframes source-click{0%{transform:scale(.955)}60%{transform:scale(1.025)}100%{transform:none}}@keyframes source-glint{50%{opacity:.5;scale:.85}}@media(prefers-reduced-motion:reduce){.source-button,.source-button .interaction-shine{transition:none;animation:none}}

.button-source-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}
/* Transparent native components and deliberate, continuously visible motion. */
.source-button{overflow:visible;box-shadow:none!important}
.button-source-svg{overflow:visible}
.source-button .interaction-shine{display:none}
.source-button:after{content:'';position:absolute;inset:3px;pointer-events:none;border-radius:inherit;background:linear-gradient(112deg,transparent 30%,#ffffff00 39%,#ffffff6b 49%,#ffffff00 60%,transparent 70%);background-size:350% 100%;animation:source-button-sheen 5s var(--shine-delay,0s) ease-in-out infinite;opacity:.7;mix-blend-mode:screen}
.source-button:hover:after{opacity:1;animation-duration:1.4s}
@media(hover:hover){.source-button:hover{transform:translateY(-4px) scale(1.015);filter:brightness(1.08) drop-shadow(0 7px 6px #174c7828)}}
.source-button:active{transform:translateY(2px) scale(.95)!important;filter:brightness(.94)}
.motion-piece{transform-box:fill-box;transform-origin:center;animation-delay:var(--delay,0s)!important;will-change:transform}
.motion-map{animation:map-hover 6s ease-in-out infinite}
.motion-carl{transform-origin:50% 100%;animation:carl-greet 4.6s ease-in-out infinite}
.motion-character{animation:character-breathe 4s ease-in-out infinite}
.motion-prize{animation:prize-hover 4.8s ease-in-out infinite}
.motion-gift{animation:gift-bounce 3.4s ease-in-out infinite}
.motion-spark{animation:spark-turn 3.6s ease-in-out infinite}
.motion-pin-ring{animation:pin-radar 3s ease-out var(--delay,0s) infinite}
.motion-route{stroke-dasharray:30 850;animation:route-travel 5s linear infinite;filter:drop-shadow(0 0 4px #20b7ff)}
.motion-copy-enter{animation:copy-arrive .65s var(--enter-delay,0s) both cubic-bezier(.2,.7,.2,1)}
@keyframes source-button-sheen{0%,55%{background-position:120% 0}85%,100%{background-position:-20% 0}}
@keyframes map-hover{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-9px) rotate(.6deg)}}
@keyframes carl-greet{0%,100%{transform:rotate(0) translateY(0)}25%{transform:rotate(-2deg) translateY(-6px)}60%{transform:rotate(1.7deg) translateY(-2px)}}
@keyframes character-breathe{50%{transform:translateY(-7px) rotate(-.8deg)}}
@keyframes prize-hover{50%{transform:translateY(-6px) rotate(1.3deg)}}
@keyframes gift-bounce{0%,70%,100%{transform:translateY(0) rotate(0)}78%{transform:translateY(-9px) rotate(-5deg)}88%{transform:translateY(-4px) rotate(4deg)}}
@keyframes spark-turn{0%,100%{opacity:.5;transform:scale(.7) rotate(0)}50%{opacity:1;transform:scale(1.12) rotate(35deg)}}
@keyframes pin-radar{0%{opacity:.85;scale:.6}85%,100%{opacity:0;scale:2}}
@keyframes route-travel{to{stroke-dashoffset:-880}}
@keyframes copy-arrive{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.motion-piece,.motion-pin-ring,.motion-route,.motion-copy-enter,.source-button:after{animation:none!important;opacity:1;transform:none;translate:none}}
.motion-pin{animation:pin-bob 3.6s ease-in-out infinite}
@keyframes pin-bob{0%,100%{transform:translateY(0)}45%{transform:translateY(-16px)}65%{transform:translateY(-12px)}}
.motion-header-dot{animation:header-dot-breathe 3.6s ease-in-out infinite}
@keyframes header-dot-breathe{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.12);opacity:.85}}
[data-ae-motion="pin-radar"]{filter:drop-shadow(0 1px 1px #299fe8) drop-shadow(0 0 3px #75d9ff)}
.sound-control{position:fixed;z-index:8;bottom:max(10px,env(safe-area-inset-bottom));left:calc(50% + min(50vw,28.125svh) - 42px);width:30px;height:30px;border:1px solid #ffffffb0;border-radius:50%;background:#e5f4ffc7;color:#3171aa;display:grid;place-items:center;padding:6px;cursor:pointer;transition:background .2s,scale .2s}
.sound-control svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.sound-control .sound-waves{display:none}.sound-control.sound-on .sound-waves{display:block}.sound-control.sound-on .sound-slash{display:none}.sound-control:active{scale:.92}.sound-control:focus-visible{outline:3px solid #d6ea40;outline-offset:3px}

/* A single selection control: original artwork boxes are removed at mount. */
.source-checkbox{appearance:none;-webkit-appearance:none;width:27px;height:27px;transform:translate(-3px,-2px);border:1.5px solid #3a3e77;border-radius:2px;background:#fff;display:grid;place-content:center;transition:border-color .18s,background-color .18s;outline:none}
.source-checkbox[type=radio]{border-radius:50%}
.source-checkbox::before{content:'';width:15px;height:15px;transform:scale(0);transition:transform .15s ease-out;background:#2770ec}
.source-checkbox[type=radio]::before{border-radius:50%}
.source-checkbox[type=checkbox]::before{width:18px;height:18px;clip-path:polygon(12% 43%,39% 69%,88% 12%,100% 24%,40% 94%,0 55%)}
.source-checkbox:checked::before{transform:scale(1)}
.source-checkbox:checked{border-color:#2770ec}
.source-checkbox:hover{border-color:#2770ec;background-color:#f4faff}
.source-checkbox:focus-visible{outline:3px solid #2770ec;outline-offset:4px}
@media(prefers-reduced-motion:reduce){.source-checkbox,.source-checkbox::before{transition:none}}

.source-choice-label,.source-terms-link{position:absolute;display:block;cursor:pointer;touch-action:manipulation}
.source-choice-label .source-run,.source-terms-link .source-run{pointer-events:none}
.source-terms-link{padding:0;border:0;background:none;color:inherit;text-align:left}
.source-choice-label:hover{filter:brightness(.85)}
.source-terms-link:focus-visible{outline:3px solid #2770ec;outline-offset:2px;border-radius:3px}

.source-music-info{position:absolute;left:0;top:1235px;width:720px;text-align:center;font:16px/1.5 sans-serif;color:#315e88;text-decoration:underline;z-index:3}

.source-field select{width:100%;height:100%;border:0;border-radius:12px;background:white;color:#244c70;font:inherit;font-size:28px;padding:0 20px;box-sizing:border-box}
.backend-panel{max-width:720px;margin:auto;padding:32px 20px;background:#edf7ff;color:#244c70;min-height:100vh;font:16px/1.7 system-ui,sans-serif;box-sizing:border-box}
.backend-panel article{padding:18px 0;border-bottom:1px solid #a6bfd8}.backend-panel h1{font-size:28px}.backend-panel h2{font-size:20px}.backend-panel p{white-space:pre-line;overflow-wrap:anywhere}.backend-panel button{padding:10px 16px;margin-top:20px;border:0;border-radius:8px;background:#244c70;color:white;cursor:pointer}.backend-panel a{color:#1463bc}
.source-form[aria-busy=true]{opacity:.65;pointer-events:none}
.backend-panel input[type=search]{display:block;width:100%;box-sizing:border-box;padding:12px;border:1px solid #a6bfd8;border-radius:8px;font:inherit;margin:8px 0}
.source-camera-frame .source-camera[hidden]{display:none}.source-camera-button{left:230px;top:654px;width:260px;height:48px;font-size:18px}.source-camera-status{top:708px;margin:0;padding:6px;z-index:5}

/* Scan fields: underline while editing, with separate pencil hit targets. */
#app[data-route="scan"] .source-field{width:245px!important}
#app[data-route="scan"] .source-field input{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;box-shadow:none;outline:none}
#app[data-route="scan"] .source-field input:focus{border:0;border-bottom:2px solid #286af0;background:transparent;box-shadow:none;outline:none}
.source-edit-field{position:absolute;z-index:5;margin:0;padding:0;border:0;border-radius:12px;background:transparent;cursor:pointer}
.source-edit-field:focus-visible{outline:2px solid #286af0;outline-offset:2px}
.source-warranty-example{position:absolute;left:316px;top:1267px;width:148px;height:46px;z-index:5;border:0;border-radius:4px;background:transparent;padding:0;cursor:pointer}.source-warranty-example:focus-visible{outline:3px solid #286af0;outline-offset:3px}
.terms-copy{max-height:55vh;overflow:auto;text-align:left;padding:8px 14px;font-size:14px;line-height:1.7}.terms-copy p{margin:8px 0}.warranty-frame{width:100%;height:48vh;border:0}
.store-filters{display:grid;grid-template-columns:1fr 1fr;gap:16px}.store-filters .full{grid-column:1/-1}.backend-panel label{display:block}.backend-panel select,.flow-form input{display:block;width:100%;box-sizing:border-box;margin:8px 0 20px;padding:12px;border:1px solid #b2cbe1;border-radius:10px;background:#fff;color:#244c70;font:inherit}.store-map{width:100%;height:440px;border:0;border-radius:24px;background:#dcebf8}.flow-actions{display:flex;justify-content:space-between;gap:16px}.dealer-menu{display:grid;gap:24px;margin:32px 0}.dealer-menu button{min-height:100px;font-size:22px}.report-total{padding:24px;background:#dff2fc;border-radius:16px;text-align:center;font-size:48px;font-weight:bold}.report-total small{font-size:20px}.report-week{margin:20px 0;background:#fff;border-radius:12px;padding:16px;overflow:auto}.report-week summary{cursor:pointer;font-weight:bold}.report-week table{width:100%;text-align:left;border-collapse:collapse;margin-top:16px}.report-week th,.report-week td{padding:10px 6px;border-bottom:1px solid #e4edf5}.report-progress{padding:24px 0}.report-progress progress{display:block;width:100%;height:20px;margin-top:16px;accent-color:#286af0}.report-rewards{border-top:1px solid #bdd2e5;padding-top:20px}.flow-form{margin-top:24px}.flow-form button{margin-right:12px}

/* Live controls aligned to the 720-unit developer handoff. */
.handoff-hit{position:absolute;z-index:4;border:0;border-radius:80px;background:transparent;cursor:pointer;padding:0}.handoff-hit:focus-visible{outline:4px solid #236ef0;outline-offset:4px}.handoff-hit:disabled{cursor:not-allowed;background:#ffffff80}
.handoff-dealer-store{position:absolute;top:420px;left:70px;width:580px;text-align:center;font:22px/1.4 'NotoSansTC-Medium',sans-serif;color:#164f88}.handoff-logout{position:absolute;top:1030px;left:285px;width:150px;background:white;border:2px solid #286af0;border-radius:40px;padding:14px;color:#286af0;font-size:24px;cursor:pointer}
.handoff-store-controls{position:absolute;left:73px;top:373px;width:575px;display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;z-index:4}.handoff-store-controls select{width:100%;height:56px;border:0;border-radius:16px;background:#d2efff;color:#172f47;padding:0 20px;font:24px 'NotoSansTC-Medium',sans-serif}.handoff-store-controls [data-store]{grid-column:1/-1}
.handoff-map{position:absolute;left:70px;top:522px;width:580px;height:573px;background:#edf7fc;border:2px solid #4286d2;border-radius:56px;overflow:hidden;display:flex;flex-direction:column;color:#164f88}.handoff-map [data-store-info]{margin:0;padding:15px 22px;font:19px/1.4 'NotoSansTC-Medium',sans-serif;white-space:pre-line}.handoff-map .store-map{flex:1;min-height:0;width:100%;border-radius:0}.handoff-map a{background:white;padding:8px 18px;font-size:19px;text-align:center;color:#19569e}.handoff-map [hidden]{display:none}
.carrier-verify{position:absolute;left:185px;top:811px;width:350px;height:48px;border:0;border-radius:30px;color:white;background:linear-gradient(100deg,#00529e,#3073ee);font:22px 'NotoSansTC-Medium',sans-serif;cursor:pointer}.carrier-status{position:absolute;left:75px;top:1007px;width:570px;text-align:center;font:21px/1.5 'NotoSansTC-Medium',sans-serif;color:#164f88}.carrier-verify:disabled{opacity:.6}.handoff-page .source-field input:focus{border:0;border-bottom:2px solid #286af0;box-shadow:none;border-radius:0;background:transparent}
.handoff-report{background:#c4dce9 url('/source-layout/dealer-5-bg.webp') top center/100% auto no-repeat;padding:clamp(85px,18vw,145px) 6% 40px;font-family:'NotoSansTC-Medium',sans-serif;position:relative;isolation:isolate}.handoff-report:before{content:'';position:absolute;z-index:-1;top:78px;bottom:100px;left:4%;right:4%;background:#fff;border:2px solid #2168a5;border-radius:50px}.handoff-report h1,.handoff-report h2{background:linear-gradient(100deg,#00529e,#3073ee);color:white;border-radius:70px 20px 70px 40px;text-align:center;margin:0 auto 25px;padding:13px 18px;width:80%;font-size:clamp(18px,3.8vw,28px);letter-spacing:2px}.handoff-report>p{text-align:center;font-size:15px}.handoff-report .report-total{border-radius:26px;background:#def4ff;color:#12488d;letter-spacing:2px;font-size:48px}.handoff-report .report-week{background:#eee;border-radius:18px;padding:18px 16px;margin:18px 0;font-size:16px}.handoff-report summary::marker{color:#286af0}.handoff-report table{font-size:14px}.handoff-report .report-progress{font-size:17px}.handoff-report .report-progress progress{height:30px;accent-color:#286af0}.handoff-report .report-rewards{border:0;padding-top:55px}.handoff-report .report-rewards article{background:#def4ff;border:0;border-radius:25px;padding:24px;margin:24px 0;text-align:center}.handoff-report h3{background:#174988;color:#fff;border-radius:30px;max-width:220px;margin:0 auto;padding:8px}.handoff-report .report-rewards img{display:block;width:65%;max-width:270px;height:150px;object-fit:contain;margin:20px auto}.handoff-report .reward-status{font-size:15px}.handoff-report>button{display:block;background:white;border:2px solid #286af0;color:#286af0;border-radius:45px;min-width:150px;margin:65px auto 0;font-size:22px}.handoff-report .report-rewards small{display:block;margin:20px;font-size:14px}

.report-page .handoff-report{width:720px;max-width:none;min-height:1280px;padding:126px 85px 45px;position:absolute;top:0;left:0;transform-origin:0 0;font-size:24px}.report-page .handoff-report:before{top:154px;bottom:160px;left:50px;right:50px;border-radius:65px;border-width:3px}.report-page .handoff-report h1,.report-page .handoff-report h2{position:relative;width:387px;box-sizing:border-box;padding:18px 0;font-size:30px;line-height:39px;margin:0 auto 25px}.report-page .handoff-report h1:before,.report-page .handoff-report h2:before,.report-page .handoff-report h1:after,.report-page .handoff-report h2:after{content:'';position:absolute;top:19px;width:38px;height:38px;border-radius:50%;background:#0860ac;left:-60px}.report-page .handoff-report h1:after,.report-page .handoff-report h2:after{left:auto;right:-60px;background:#3073ee}.report-page .handoff-report>p{font-size:20px}.report-page .handoff-report .report-total{font-size:64px;padding:18px}.report-page .handoff-report .report-total small{font-size:28px}.report-page .handoff-report .report-week{font-size:23px;margin:18px 0;padding:20px}.report-page .handoff-report table{font-size:20px}.report-page .handoff-report .report-progress{font-size:24px}.report-page .handoff-report .report-progress p{font-size:21px}.report-page .handoff-report .report-rewards{padding-top:70px}.report-page .handoff-report .report-rewards article{margin:35px 0;padding:32px}.report-page .handoff-report .report-rewards img{height:150px}.report-page .handoff-report .report-rewards small{font-size:21px}.report-page .handoff-report .reward-status{font-size:22px}.report-page .handoff-report>button{font-size:30px;width:216px;height:79px;margin:85px auto 0}

#modal.dealer-confirm{border:3px solid #2468af;border-radius:45px;padding:40px 35px 65px;color:#1b4777;overflow:visible}#modal.dealer-confirm h2{font-size:24px}#modal.dealer-confirm .modal-icon{background:#2770ec;color:white;border:0;width:65px;height:65px;font-size:50px}#modal.dealer-confirm .actions{flex-direction:column;align-items:center;gap:14px}#modal.dealer-confirm .button{width:70%;border-radius:50px}#modal.dealer-confirm .dealer-confirm-carl{position:absolute;left:-20px;bottom:-8px;width:90px;pointer-events:none}

.report-brand{position:absolute;left:0;top:0;width:720px;height:115px;pointer-events:none;overflow:hidden}

.report-page .handoff-report{background:#719cb6 url('/source-layout/dealer-1-bg.webp') top center/720px 1280px no-repeat;padding-bottom:30px}.report-page [data-report=registrations]{display:flex;flex-direction:column}.report-page [data-report=registrations]>button{margin-top:auto;flex-shrink:0}.report-page [data-report=registrations] [data-report-weeks]{margin-bottom:70px}

#modal.warranty-modal{width:min(92vw,680px)}.warranty-examples{max-height:65svh;overflow:auto;overscroll-behavior:contain;text-align:left}.warranty-examples figure{margin:0 0 22px}.warranty-examples img{width:100%;height:auto;border-radius:10px}.warranty-examples figcaption{text-align:center;margin-top:8px;font-size:14px;color:#244c70}
/* Both terms entry points render the same PDF-derived clauses. */
.campaign-rules{padding:28px 20px 40px;background:linear-gradient(#eaf4fb,#bed6e7);color:#194b7b;font:15px/1.9 'NotoSansTC-Regular',sans-serif}.campaign-rules header>a{text-decoration:none;color:#161616}.campaign-rules h1{text-align:center;background:linear-gradient(100deg,#00529e,#3073ee);color:white;border-radius:40px;padding:12px;margin:26px 0}.campaign-rules-body{padding:24px 18px;background:white;border:2px solid #2c72c1;border-radius:28px}.campaign-rules>.button{display:block;margin:28px auto 16px}.terms-music{display:block;text-align:center;font-size:12px}.terms-overview{text-align:center;border-bottom:1px solid #bed6e7;padding-bottom:18px}.terms-overview section+section{margin-top:28px}.terms-overview ul{list-style:none;padding:0}.terms-overview li{margin:10px 0;padding:10px;background:#edf7ff;border-radius:12px}.terms-section{margin-top:28px;text-align:left}.terms-section h3,.terms-overview h3{font-size:18px;color:#1655a1;line-height:1.5}.terms-section ol{padding-left:24px}.terms-section li{margin:14px 0;overflow-wrap:anywhere}.terms-section ul{padding-left:20px}.terms-section a{color:#145fc3;text-decoration:underline}.terms-modal{width:min(92vw,680px)}.terms-modal .terms-copy{max-height:62svh;line-height:1.9;padding:8px 12px;font-size:15px;overscroll-behavior:contain}

.rules-scroll{position:absolute;left:75px;top:980px;width:575px;height:115px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;z-index:3;background:white;color:#222;font:19px/1.7 'NotoSansTC-Regular',sans-serif;padding:0 10px 0 0;touch-action:pan-y}.rules-scroll .terms-section{margin:0 0 25px}.rules-scroll .terms-section h3{font-size:21px;margin:0 0 10px}.rules-scroll .terms-section ol{margin:0;padding-left:30px}.rules-scroll .terms-section li{margin:0 0 15px}.rules-scroll:focus-visible{outline:2px solid #286af0;outline-offset:3px}

.rules-full-stage>.source-bg{height:1280px}.rules-full-stage>.source-vectors{height:970px;overflow:hidden}.rules-full-content{position:relative;padding-top:970px;padding-bottom:40px;z-index:2;pointer-events:none}.rules-full-copy{pointer-events:auto;margin:0 50px;padding:16px 28px 30px;background:#fff;border:2px solid #2c72c1;border-top:0;border-radius:0 0 38px 38px;color:#222;font:23px/1.8 'NotoSansTC-Regular',sans-serif}.rules-full-copy .terms-section{margin-top:0;margin-bottom:30px}.rules-full-copy .terms-section h3{font-size:26px}.rules-return{display:block;pointer-events:auto;margin:35px auto 20px;width:216px;height:79px;border:3px solid #2870e9;border-radius:50px;background:white;color:#2870e9;font-size:30px}.rules-full-content .terms-music{pointer-events:auto;font-size:18px}

/* Original fixed frame; the complete introduction and terms scroll together. */
.rules-frame-scroll{position:absolute;left:70px;top:195px;width:580px;height:895px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;z-index:3;background:#fff;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:#77a3d8 transparent}.rules-frame-intro{position:relative;width:580px;height:775px;flex-shrink:0;overflow:hidden;pointer-events:none}.rules-frame-terms{padding:8px 18px 24px;color:#222;font:23px/1.8 'NotoSansTC-Regular',sans-serif}.rules-frame-terms .terms-section{margin:0 0 30px}.rules-frame-terms .terms-section h3{font-size:26px}.rules-frame-scroll:focus-visible{outline:2px solid #286af0;outline-offset:2px}

.home-carl-enter{animation:home-carl-arrive .6s cubic-bezier(.2,.7,.2,1) both}.home-pin-enter{animation:home-pin-arrive .5s cubic-bezier(.2,.7,.2,1) both}@keyframes home-carl-arrive{from{opacity:0;transform:translateX(-240px)}to{opacity:1;transform:translateX(0)}}@keyframes home-pin-arrive{from{opacity:0;transform:translateY(18px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}

.source-button.intro-next-waiting{visibility:hidden;pointer-events:none}

/* Guide CTA: keep the artwork without the animated sheen overlay. */
#app[data-route="guide"] .source-button[data-go="stores"]::after{display:none;animation:none}

/* Store directory matches the handoff: centered controls and an edge-to-edge map. */
.handoff-store-controls select{appearance:none;-webkit-appearance:none;text-align:center;text-align-last:center;padding:0 38px;color:#111;background:#d2efff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='14' viewBox='0 0 18 14'%3E%3Cpath d='M1 1h16L9 13z' fill='%2357a7cf'/%3E%3C/svg%3E") no-repeat right 18px center;background-size:18px 14px}.handoff-store-controls select:disabled{opacity:1}.handoff-map{padding:0;display:block}.handoff-map .store-map{display:block;position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0}.handoff-map [data-store-info]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}.handoff-map [data-map-link]{display:none}.handoff-map .store-load-error{position:relative;width:auto;height:auto;margin:20px;padding:15px;clip-path:none;z-index:1;background:white}.handoff-map .store-map[hidden]{display:none}

/* Keep Google's corner controls and attribution inside the visible map area. */
.handoff-map{border-radius:12px}
.handoff-map .store-map{inset:0;width:100%;height:100%;padding:0;margin:0}

/* Make dependent selection availability visible, and align the two filters left. */
.handoff-store-controls [data-city],.handoff-store-controls [data-district]{text-align:left;text-align-last:left;padding-left:24px;padding-right:40px}
.handoff-store-controls select:disabled{background-color:#e5e8ec;color:#858e99;-webkit-text-fill-color:#858e99;cursor:not-allowed;opacity:1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='14' viewBox='0 0 18 14'%3E%3Cpath d='M1 1h16L9 13z' fill='%239aa3ae'/%3E%3C/svg%3E")}

#app[data-route="photo"] .source-field select:disabled{appearance:none;-webkit-appearance:none;opacity:1;background:#e4ebf1;color:#536b82;-webkit-text-fill-color:#536b82;cursor:not-allowed}

.source-form .source-button::after{display:none;animation:none}
.source-form .source-button:disabled{opacity:.45;filter:grayscale(1);cursor:not-allowed;transform:none!important;pointer-events:none}

/* Terms dialog: one wide reading area with compact spacing. */
#modal.terms-modal{width:min(96vw,760px);max-height:92svh;padding:18px 14px 14px;border-radius:20px;overflow:hidden}
#modal.terms-modal .modal-icon{display:none}
#modal.terms-modal h2{margin:0 0 14px;font-size:20px}
#modal.terms-modal>p:empty{display:none}
#modal.terms-modal .terms-copy{max-height:calc(92svh - 130px);padding:0 4px 0 0;margin:0;text-align:left;font-size:16px;line-height:1.7;overflow-y:auto}
#modal.terms-modal .terms-section{margin:0 0 22px}
#modal.terms-modal .terms-section h3{font-size:18px;margin:0 0 10px;line-height:1.45}
#modal.terms-modal .terms-section ol{margin:0;padding-left:1.4em}
#modal.terms-modal .terms-section ul{padding-left:1.1em;margin:8px 0 0}
#modal.terms-modal .terms-section li{margin:0 0 12px;padding:0;overflow-wrap:break-word}
#modal.terms-modal .actions{margin:12px 0 0}

.store-choose-button .store-choose-label{position:absolute;left:65px;top:34px;width:235px;text-align:center;color:white;font:700 30px/1.4 'NotoSansTC-Bold',sans-serif;letter-spacing:3px;pointer-events:none}.store-choose-button::after{display:none;animation:none}.store-choose-button:disabled{opacity:.45;background:transparent;filter:grayscale(1);cursor:not-allowed;transform:none!important;pointer-events:none}

.photo-store-display{display:flex;align-items:center;background:#def4ff;border-radius:20px;color:#1b4777;font:24px/1.4 'NotoSansTC-Medium',sans-serif;padding:9px 22px;gap:12px}.photo-store-title{flex:0 0 auto}.photo-store-name{flex:1;min-width:0;text-align:center;overflow-wrap:anywhere;font-size:23px}

/* Activity-one form uses the same typeface throughout. */
#app[data-route="photo"] .source-stage{font-family:'NotoSansTC-Medium','PingFang TC',sans-serif}
#app[data-route="photo"] .source-run{font-family:'NotoSansTC-Medium','PingFang TC',sans-serif!important}
#app[data-route="photo"] .source-field input,
#app[data-route="photo"] .photo-store-display,
#app[data-route="photo"] .photo-store-name{font-family:'NotoSansTC-Medium','PingFang TC',sans-serif;font-size:24px;font-weight:400}
#app[data-route="photo"] .photo-store-name{text-align:left}
#app[data-route="photo"] .source-file-preview{font-family:'NotoSansTC-Medium','PingFang TC',sans-serif}

#app[data-route="registration"] .photo-store-name{text-align:left}

/* Identity choices keep their frames stationary, including hover and press. */
#app[data-route="roles"] .source-button{animation:none!important;transition:none;transform:none!important;filter:none!important}
#app[data-route="roles"] .source-button::after{display:none;animation:none}

.carrier-submit-label{position:absolute;left:64px;top:39px;width:260px;color:white;text-align:center;font:700 30px/1.4 "NotoSansTC-Bold",sans-serif;letter-spacing:3px}.carrier-verify:disabled{opacity:.45;filter:grayscale(1);cursor:not-allowed}.carrier-status:empty{display:none}

.source-camera-button[hidden]{display:none!important}

/* Use the same scaled shell from the first loading frame through error/success. */
.report-page .handoff-report.report-pending{min-height:0;padding-bottom:60px;background:#c4dce9}
.report-page .handoff-report.report-pending:before{top:100px;bottom:20px}
.report-page .handoff-report.report-pending>button{margin:24px auto 0}
.report-page .handoff-report.report-pending>p{margin:30px 0}

.terms-popup-intro{position:relative;width:100%;overflow:hidden;margin-bottom:24px}.terms-popup-intro-stage{position:absolute;top:0;left:0;width:580px;height:775px;transform-origin:top left}.terms-popup-intro-stage>.button-source-svg{width:580px;height:775px}

/* Revised home composition: position wrappers are independent from motion layers. */
.home-features{position:absolute;inset:0;pointer-events:none;z-index:2}
.home-gift-group{position:absolute;left:22px;top:455px;width:266px;height:260px;animation:home-feature-arrive .7s .2s both}
.home-gift-animation{position:absolute;left:61px;top:0;width:180px;height:180px;overflow:visible;z-index:1}
.home-prize-banner{position:absolute;left:0;top:142px;width:266px;height:120px}
.home-prize-banner>svg{position:absolute;inset:0;width:100%;height:100%;transform:scaleX(-1);filter:drop-shadow(0 5px 0 #6597c13b)}
.home-prize-banner p{position:relative;text-align:center;margin:25px 22px 0 0;color:#2e4896;font:24px/1.55 'NotoSansTC-Bold',sans-serif}
.home-carl-group{position:absolute;left:496px;top:708px;width:220px;height:386px;animation:home-carl-arrive-right .75s .45s both}
.home-carl-animation{position:absolute;inset:0;width:220px;height:350px;overflow:visible}
.home-carl-floor{position:absolute;left:46px;top:274px;width:130px;height:64px;border:2px solid #fff;border-radius:50%;background:#ffffff30;box-shadow:0 0 18px #ffffff60;animation:home-floor-glow 3s ease-in-out infinite}
.home-carl-name{position:absolute;top:351px;left:0;right:0;text-align:center;color:#080e19;margin:0;font:17px/1.3 'NotoSansTC-Medium',sans-serif}
.home-carl-name span,.home-carl-name strong{display:block}.home-carl-name strong{font:22px/1.7 'NotoSansTC-Bold',sans-serif}
@keyframes home-feature-arrive{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes home-carl-arrive-right{from{opacity:0;transform:translateX(100px)}to{opacity:1;transform:translateX(0)}}
@keyframes home-floor-glow{50%{box-shadow:0 0 26px #ffffffa0;background:#ffffff4a}}
.motion-paused .home-features *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.home-gift-group,.home-carl-group,.home-carl-floor{animation:none!important}}
