/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}}:root{--ink:#514940;--sky:#dff4f3;--cream:#fff8dc;--green:#78b95f;--green-dark:#5c954d;--yellow:#ffd65a;--coral:#f2856d}*{box-sizing:border-box}html,body{overscroll-behavior:none;min-height:100%;margin:0}button{font:inherit;color:inherit}.app{min-height:100svh;color:var(--ink);background:linear-gradient(145deg,#dff2ef,#f7f1d8);place-items:center;padding:0;font-family:Microsoft YaHei,PingFang SC,Arial,sans-serif;display:grid}.game{background:#fffaf0;grid-template-rows:64px 108px minmax(0,1fr) 76px;width:min(100%,540px);height:100svh;min-height:0;max-height:920px;display:grid;position:relative;overflow:hidden;box-shadow:0 0 50px #5c69552b}.topbar{background:#fffaf0;grid-template-columns:48px 1fr 48px;align-items:center;gap:14px;padding:10px 16px;display:grid}.topbar button{cursor:pointer;background:#f2ead7;border:0;border-radius:50%;width:44px;height:44px;font-size:30px;font-weight:900}.audio-button{font-size:23px!important}.progress{justify-content:center;gap:6px;display:flex}.progress i{background:#dfd7c3;border-radius:99px;width:clamp(12px,3.6vw,19px);height:9px;display:block}.progress i.current{background:var(--coral);width:28px}.progress i.done{background:#80bf69}.mission-card{z-index:3;border:3px solid var(--ink);background:#fff;border-radius:24px;grid-template-columns:60px 1fr auto;align-items:center;gap:12px;margin:5px 16px 12px;padding:12px 16px;display:grid;position:relative;box-shadow:0 5px #d9cfb4}.guide-face{border:3px solid var(--ink);background:#ffd05a;border-radius:50%;width:54px;height:54px;position:relative}.guide-face:before,.guide-face:after{content:"";background:var(--ink);border-radius:50%;width:6px;height:8px;position:absolute;top:21px}.guide-face:before{left:13px}.guide-face:after{right:13px}.guide-face span{border-bottom:3px solid var(--ink);border-radius:0 0 10px 10px;width:9px;height:5px;position:absolute;top:31px;left:22px}.guide-face b{border:3px solid var(--ink);background:#79bfe0;border-radius:50% 50% 15%;width:20px;height:20px;position:absolute;top:-8px;right:-4px}.mission-copy{min-width:0}.mission-copy small{color:#8d7e6b;margin-bottom:4px;font-size:14px;font-weight:800;display:block}.mission-copy strong{font-size:18px;line-height:1.35;display:block}.replay{cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0;font-size:20px;font-weight:900}.replay span{color:#fff;background:#62b9dc;border-radius:50%;place-items:center;width:32px;height:32px;margin-right:4px;font-size:14px;display:inline-grid}.mission-card .picture{width:76px;height:68px;display:block}.playfield{background:linear-gradient(#dff4f3 0 24%,#d9eec3 24%);place-items:center;min-height:0;padding:9px 15px 11px;display:grid;position:relative;overflow:hidden}.cloud{opacity:.65;background:#fff;border-radius:99px;width:60px;height:20px;position:absolute}.cloud:before,.cloud:after{content:"";background:#fff;border-radius:50%;position:absolute;bottom:0}.cloud:before{width:28px;height:28px;left:10px}.cloud:after{width:20px;height:20px;right:8px}.cloud.one{top:28px;left:22px}.cloud.two{top:58px;right:28px;transform:scale(.75)}.maze{z-index:1;aspect-ratio:1;border:4px solid var(--ink);background:var(--green);border-radius:23px;grid-template-rows:repeat(9,minmax(0,1fr));grid-template-columns:repeat(9,minmax(0,1fr));width:min(100%,100svh - 268px,520px);height:auto;max-height:100%;margin:auto;display:grid;position:relative;overflow:hidden;box-shadow:0 6px #4e7d43}.cell{touch-action:manipulation;border:0;place-items:center;min-width:0;min-height:0;padding:0;display:grid;position:relative}.cell.path{cursor:pointer;background:#fff1bd}.cell.path:not(:disabled):active{background:#ffe38a}.cell.exit-cell{z-index:4;overflow:visible}.cell.hedge{background:var(--green);box-shadow:inset 0 0 0 1px #6aa853}.cell.hedge:after{content:"";opacity:.55;background:#5c9d50;border-radius:50%;width:38%;height:34%}.hanzi-gate{z-index:5;border:3px solid var(--ink);width:clamp(46px,12vw,60px);height:clamp(46px,12vw,60px);color:var(--ink);background:#fff;border-radius:17px;place-items:center;font-size:clamp(29px,8vw,42px);font-weight:900;line-height:1;display:grid;position:absolute;top:6px;left:50%;transform:translate(-50%);box-shadow:0 4px #cfc4ae}.exit-cell:not(:disabled):active .hanzi-gate{transform:translate(-50%,2px);box-shadow:0 2px #cfc4ae}.maze-bunny{--bunny-x:4;--bunny-y:8;z-index:6;pointer-events:none;width:11.1111%;height:11.1111%;transform:translate(calc(var(--bunny-x) * 100%),calc(var(--bunny-y) * 100%));will-change:transform;place-items:center;transition:transform .135s cubic-bezier(.33,.66,.45,1);display:grid;position:absolute;top:0;left:0}.bunny{z-index:5;border:3px solid var(--ink);filter:drop-shadow(0 3px #d8b97c);transform-origin:bottom;background:#fff;border-radius:48% 48% 45% 45%;width:72%;max-width:45px;height:72%;max-height:45px;display:block;position:relative}.is-moving .bunny{animation:.29s ease-in-out infinite bunny-hop}.bunny .ear{z-index:-1;border:3px solid var(--ink);background:#fff;border-radius:99px;width:29%;height:60%;position:absolute;top:-48%}.bunny .ear:after{content:"";background:#f7b1af;border-radius:99px;position:absolute;inset:5px 4px}.bunny .ear.left{left:11%;transform:rotate(-10deg)}.bunny .ear.right{right:11%;transform:rotate(10deg)}.bunny .face:before,.bunny .face:after{content:"";aspect-ratio:1;background:var(--ink);border-radius:50%;width:10%;position:absolute;top:37%}.bunny .face:before{left:24%}.bunny .face:after{right:24%}.bunny .face b{background:#ed8f8a;border-radius:50%;width:11%;height:9%;position:absolute;top:50%;left:45%}.bunny .face em{border-bottom:2px solid var(--ink);border-radius:50%;width:36%;height:15%;position:absolute;bottom:14%;left:32%}@keyframes bunny-hop{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-10%)scale(1.03,.97)}}.tap-tip{z-index:4;border:3px solid var(--ink);color:#665b4d;pointer-events:none;background:#fff;border-radius:99px;align-items:center;gap:7px;width:max-content;max-width:85%;padding:9px 15px;font-size:14px;font-weight:900;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 4px #cbbd9c}.tap-tip span{font-size:25px}.feedback{z-index:3;text-align:center;background:#fffaf0;justify-content:center;align-items:center;gap:10px;padding:11px 18px;font-size:15px;font-weight:800;display:flex}.message-dot{background:#f1b453;border-radius:50%;width:12px;height:12px;box-shadow:0 0 0 5px #fbe6b7}.feedback.success{background:#e2f4d2;justify-content:flex-start}.feedback.success .learned-char{border:3px solid var(--ink);background:#fff;border-radius:15px;place-items:center;width:52px;height:52px;font-size:32px;font-weight:900;display:grid}.feedback.success div{text-align:left;flex:1}.feedback.success strong{font-size:16px;display:block}.feedback.success small{color:#668052;margin-top:2px;font-weight:800;display:block}.feedback.success button{border:3px solid var(--ink);background:var(--yellow);cursor:pointer;border-radius:16px;min-width:78px;min-height:48px;font-weight:900;box-shadow:0 4px #c69e32}@media (min-width:700px){.app{padding:20px}.game{border:4px solid var(--ink);border-radius:30px;height:min(900px,100vh - 40px)}.playfield{padding-left:22px;padding-right:22px}}@media (max-height:720px){.game{grid-template-rows:56px 94px minmax(0,1fr) 64px}.topbar{padding:6px 14px}.mission-card{margin-top:2px;padding:7px 13px}.guide-face{width:46px;height:46px}.mission-card .picture{width:64px;height:56px}.playfield{padding-top:5px}.feedback{padding-top:6px;padding-bottom:6px}.maze{width:min(100%,100svh - 226px,520px)}}@media (max-height:580px){.game{grid-template-rows:50px 82px minmax(0,1fr) 58px}.topbar button{width:38px;height:38px}.mission-card{margin-bottom:7px}.guide-face{width:40px;height:40px}.mission-copy small{margin-bottom:1px}.replay{font-size:17px}.maze{width:min(100%,100svh - 204px,520px)}.tap-tip{bottom:14px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.maze-bunny{transition:none}.is-moving .bunny{animation:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
