:root{font-family:Microsoft JhengHei UI,Microsoft JhengHei,Noto Sans TC,system-ui,sans-serif;color:#273746;background:#f7fbff;font-synthesis:none;text-rendering:optimizeLegibility;--sky-50: #f7fbff;--sky-100: #eaf4ff;--sky-200: #d7e8fb;--sky-400: #79a9ef;--sky-500: #5f95ee;--sky-600: #467fdc;--mint: #78d4c1;--ink: #273746;--muted: #758393;--line: rgba(94, 132, 176, .2);--shadow: 0 12px 30px rgba(69, 106, 146, .15)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;background:var(--sky-50)}body{min-height:100dvh;touch-action:none;user-select:none;-webkit-user-select:none}button{font:inherit}button:focus-visible{outline:3px solid #1f66d4;outline-offset:3px}[hidden]{display:none!important}#app{position:relative;width:100%;height:100dvh;overflow:hidden;background:radial-gradient(circle at 18% 7%,rgba(255,255,255,.96) 0 7%,transparent 24%),linear-gradient(180deg,#eaf4ff,#f7fbff 42%,#fff)}.screen{width:min(100%,520px);height:100%;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.start-screen,.complete-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,1.8dvh,16px);text-align:center}.brand-cloud{width:58px;height:24px;border-radius:22px;background:linear-gradient(180deg,#fff,#b9d7fb);box-shadow:0 7px 16px #588bc929;position:relative}.brand-cloud:before,.brand-cloud:after{content:"";position:absolute;bottom:8px;border-radius:50%;background:#fff}.brand-cloud:before{width:26px;height:26px;left:8px}.brand-cloud:after{width:20px;height:20px;right:8px}.start-screen h1{margin:0;font-size:clamp(32px,10vw,54px);line-height:1.05;letter-spacing:.08em;font-weight:900}.start-filter,.complete-filter{position:relative;width:min(84vw,340px,34.5dvh);aspect-ratio:3 / 4;overflow:hidden;border-radius:24px;background:#fff;box-shadow:var(--shadow)}.start-filter img,.complete-filter img{width:100%;height:100%;object-fit:cover}.start-dust{position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(72,64,55,.42) 0 2px,transparent 3px),radial-gradient(circle at 58% 44%,rgba(103,83,60,.35) 0 2px,transparent 3px),linear-gradient(115deg,rgba(81,72,62,.68) 0 41%,rgba(122,104,78,.34) 42% 52%,transparent 53%);background-size:18px 18px,24px 24px,100% 100%;pointer-events:none}.start-copy h2,.complete-screen h2{margin:0;font-size:clamp(26px,7vw,38px);color:#314b69}.start-copy p,.complete-screen p{margin:6px 0 0;color:var(--muted);font-size:clamp(15px,4vw,19px);font-weight:700}.primary-button,.secondary-button{width:min(84vw,360px);min-height:56px;border-radius:18px;border:0;font-weight:900;letter-spacing:.04em;cursor:pointer}.primary-button{color:#fff;background:linear-gradient(180deg,#72a8f5,#4b86e8);box-shadow:0 9px 20px #467fdc47,inset 0 0 0 2px #ffffff7a;font-size:21px}.primary-button:active{transform:translateY(1px) scale(.995)}.primary-button:disabled{opacity:.55;cursor:progress}.primary-button.compact{width:170px;min-height:48px;font-size:17px}.secondary-button{color:var(--sky-600);background:#ffffffeb;border:2px solid #9fc2f5;font-size:18px}.start-screen small{color:#7d8995;font-weight:700;letter-spacing:.08em}.game-screen{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:clamp(6px,1dvh,10px)}.game-header{display:flex;align-items:center;justify-content:space-between;min-height:56px}.game-title,.complete-brand{font-size:clamp(22px,6vw,32px);font-weight:900;letter-spacing:.06em}.header-actions{display:flex;gap:6px}.icon-button{min-width:58px;min-height:50px;padding:5px 7px;border:1px solid var(--line);border-radius:15px;color:var(--ink);background:#ffffffd1;box-shadow:0 5px 14px #4a6f9a1c;display:grid;place-items:center;cursor:pointer}.icon-button span{font-size:20px;line-height:1;font-weight:900}.icon-button b{font-size:10px;line-height:1.2;white-space:nowrap}.progress-panel{padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:#ffffffd1;box-shadow:0 6px 18px #426a971a}.progress-copy{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:7px;font-weight:900}.progress-copy strong{font-size:19px}.progress-track{height:13px;overflow:hidden;border-radius:99px;background:#dfe8ef;box-shadow:inset 0 1px 3px #43586d2e}.progress-fill{width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5f95ee,#74b5f3 70%,#78d4c1);transition:width .12s ease-out}.game-stage{position:relative;align-self:center;justify-self:center;width:min(92vw,450px,calc((100dvh - 282px)*.75));min-width:210px;aspect-ratio:3 / 4;overflow:hidden;border:1px solid rgba(112,151,193,.22);border-radius:22px;background:#f7fbff;box-shadow:var(--shadow)}#phaser-game,#phaser-game canvas{width:100%!important;height:100%!important;display:block;touch-action:none}.pause-overlay{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#24394e;background:#eff7ffe0;backdrop-filter:blur(8px)}.pause-overlay strong{font-size:30px}.pause-overlay span{color:var(--muted);font-weight:700}.instruction{min-height:34px;margin:0;display:grid;place-items:center;text-align:center;font-size:clamp(15px,4vw,18px);font-weight:900;color:#314b69}.tool-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding-bottom:env(safe-area-inset-bottom)}.tool-button{min-width:0;min-height:clamp(74px,11dvh,100px);padding:4px 2px 7px;border:1px solid var(--line);border-radius:16px;color:#778494;background:#ffffffd6;box-shadow:0 5px 15px #4a6f9a1a;display:flex;flex-direction:column;align-items:center;justify-content:space-between;cursor:pointer}.tool-button.selected{color:var(--sky-600);border:3px solid var(--sky-500);background:#edf5ff;box-shadow:0 8px 18px #467fdc33}.tool-button.expected:not(.selected){border-color:var(--mint);background:#effcf9}.tool-button b{min-height:2.2em;display:grid;place-items:center;font-size:clamp(10px,3vw,13px);line-height:1.05}.tool-icon{width:min(56px,13vw);aspect-ratio:1;background-image:url(../assets/tool-sprite-sheet.png);background-repeat:no-repeat;background-size:400% 100%;border-radius:11px}.tool-icon-0{background-position:0% 50%}.tool-icon-1{background-position:33.333% 50%}.tool-icon-2{background-position:66.667% 50%}.tool-icon-3{background-position:100% 50%}.complete-screen{gap:clamp(5px,1.2dvh,12px)}.complete-score{font-size:clamp(54px,17vw,88px);line-height:.95;font-weight:900;color:var(--sky-500);text-shadow:0 4px 0 #fff,0 8px 16px rgba(63,116,203,.22)}.complete-filter{width:min(75vw,300px,28.5dvh)}.complete-actions{display:grid;gap:9px}.complete-screen output{color:var(--muted);font-size:13px;font-weight:700}.toast{position:fixed;z-index:20;left:50%;bottom:max(118px,calc(env(safe-area-inset-bottom) + 110px));transform:translate(-50%);max-width:min(88vw,420px);padding:12px 18px;border-radius:15px;color:#fff;background:#1f344af0;box-shadow:0 9px 26px #192a3c42;text-align:center;font-weight:800;pointer-events:none}.orientation-overlay{display:none;position:fixed;z-index:100;inset:0;padding:24px;color:var(--ink);background:linear-gradient(135deg,#eaf4ff,#fff);align-items:center;justify-content:center;flex-direction:column;gap:14px;text-align:center}.rotate-icon{font-size:54px;color:var(--sky-500)}.orientation-overlay strong{font-size:24px}.orientation-overlay span{color:var(--muted);font-weight:700}@media(orientation:landscape)and (max-height:768px){.orientation-overlay{display:flex}}@media(max-height:700px)and (orientation:portrait){.screen{padding-top:max(7px,env(safe-area-inset-top));padding-bottom:max(7px,env(safe-area-inset-bottom))}.game-header{min-height:46px}.progress-panel{padding:7px 10px}.game-stage{width:min(82vw,calc((100dvh - 255px)*.75))}.start-filter{width:min(63vw,28.5dvh)}.start-screen h1{font-size:34px}.brand-cloud{width:50px;height:20px}.complete-filter{width:min(56vw,22.5dvh)}}@media(min-width:600px)and (orientation:portrait){.screen{width:min(92vw,560px)}.game-stage{width:min(60vw,470px,calc((100dvh - 310px)*.75))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
