:root{color-scheme:light;--ink: #5a4a6b;--ink-soft: #7a6a8b;--ink-faint: #9d90ad;--cream: #fff6e8;--cream-deep: #f7e7cf;--paper: #fffcf5;--pink: #ff9dbb;--pink-light: #ffc4d6;--pink-deep: #e87a9a;--strawberry: #f4566f;--matcha: #8fd07a;--matcha-deep: #5fa84e;--sky: #8fd6ea;--sky-deep: #5fb3d4;--butter: #ffe487;--gold: #ffd35c;--lilac: #c4a3f0;--paul: #7fb0e8;--katherine: #ff9dbb;--shadow: 0 6px 0 rgba(90, 74, 107, .16), 0 10px 28px rgba(90, 74, 107, .14);--shadow-soft: 0 3px 0 rgba(90, 74, 107, .12);--radius: 18px;--radius-sm: 12px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--font: ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, "Segoe UI Variable", "Segoe UI", system-ui, "Noto Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;overflow:hidden;overscroll-behavior:none;background:#2b2450;color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;touch-action:none;user-select:none;-webkit-user-select:none}body{position:fixed;inset:0;width:100%}#game{position:fixed;inset:0;width:100%;height:100%;display:block;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none;background:#7fc9e8}.hidden{display:none!important}.screen{position:fixed;inset:0;display:grid;place-items:center;padding:calc(24px + var(--safe-top)) 20px calc(24px + var(--safe-bottom));background:radial-gradient(1200px 700px at 20% -10%,#ffe6ef 0%,transparent 60%),radial-gradient(900px 600px at 90% 110%,#dff4ff 0%,transparent 60%),linear-gradient(170deg,#fff6e8,#ffeaf1 45%,#e7f6ff);z-index:40;overflow-y:auto}.card{width:min(420px,100%);background:var(--paper);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 24px;text-align:center}.card h1{margin:0 0 4px;font-size:1.55rem;letter-spacing:-.01em}.sub{margin:0 0 20px;color:var(--ink-soft);font-size:.95rem}.tiny{font-size:.8rem;color:var(--ink-faint);margin:14px 0 0;min-height:1.2em}.field{display:block;text-align:left;margin:0 0 16px}.field span{display:block;font-size:.82rem;font-weight:700;color:var(--ink-soft);margin-bottom:6px;letter-spacing:.02em}input[type=text],input[type=password],textarea{width:100%;font-family:inherit;font-size:1.05rem;padding:13px 15px;border:3px solid var(--ink);border-radius:var(--radius-sm);background:var(--cream);color:var(--ink);outline:none;user-select:text;-webkit-user-select:text}input:focus-visible,textarea:focus-visible{border-color:var(--pink-deep);box-shadow:0 0 0 4px var(--pink-light)}textarea{min-height:140px;resize:vertical;line-height:1.55}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;font-family:inherit;font-size:1rem;font-weight:800;color:var(--ink);background:var(--cream);border:3px solid var(--ink);border-radius:999px;box-shadow:var(--shadow-soft);cursor:pointer;transition:transform .08s ease,box-shadow .08s ease,background .15s ease}.btn:active{transform:translateY(3px);box-shadow:none}.btn.primary{background:var(--matcha);width:100%}.btn.pink{background:var(--pink)}.btn:disabled{opacity:.5;cursor:default}.error{color:var(--strawberry);font-size:.9rem;font-weight:700;min-height:1.3em;margin:12px 0 0}#boot{background:linear-gradient(170deg,#fff6e8,#ffeaf1,#e7f6ff)}.boot-card{text-align:center}.boot-bear{font-size:4rem;animation:bob 2.2s ease-in-out infinite}.boot-card h1{margin:10px 0 2px;font-size:1.5rem}.boot-sub{margin:0 0 22px;color:var(--ink-soft)}.boot-bar{width:min(280px,70vw);height:14px;margin:0 auto;background:var(--cream-deep);border:3px solid var(--ink);border-radius:999px;overflow:hidden}.boot-bar-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--matcha),var(--sky));transition:width .2s ease}.boot-status{margin-top:12px;font-size:.82rem;color:var(--ink-faint);min-height:1.2em}@keyframes bob{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-10px) rotate(3deg)}}.login-art{position:relative;height:56px;margin-bottom:4px}.drift{position:absolute;font-size:2rem;animation:bob 3s ease-in-out infinite}.d1{left:18%;animation-delay:0s}.d2{left:44%;font-size:2.6rem;animation-delay:.4s}.d3{left:70%;animation-delay:.8s}.select-card{width:min(560px,100%)}.hero-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:420px){.hero-row{grid-template-columns:1fr}}.hero{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;background:var(--cream);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-soft);cursor:pointer;font-family:inherit;color:var(--ink);transition:transform .1s ease,background .15s ease}.hero:active{transform:translateY(3px)}.hero[data-player=paul]:hover,.hero[data-player=paul].on{background:#e8f2ff}.hero[data-player=katherine]:hover,.hero[data-player=katherine].on{background:#ffeef4}.hero-portrait{width:96px;height:120px;image-rendering:pixelated}.hero-name{font-weight:900;font-size:1.15rem}.hero-blurb{font-size:.78rem;color:var(--ink-soft);line-height:1.35}.hero-status{font-size:.72rem;font-weight:800;color:var(--matcha-deep);min-height:1em}.hero.busy{opacity:.55}#ui{position:fixed;inset:0;z-index:20;pointer-events:none}#ui>*{pointer-events:auto}.panel{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(620px,100%);max-height:min(78vh,720px);background:var(--paper);border:3px solid var(--ink);border-bottom:none;border-radius:22px 22px 0 0;box-shadow:0 -8px 30px #5a4a6b38;display:flex;flex-direction:column;overflow:hidden;padding-bottom:var(--safe-bottom);animation:rise .22s cubic-bezier(.22,1,.36,1);z-index:30}@keyframes rise{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}.panel-head{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;border-bottom:3px solid var(--cream-deep);flex:none}.panel-head h2{margin:0;font-size:1.1rem;flex:1;text-align:left}.panel-head .zh{font-size:.8rem;color:var(--ink-faint);font-weight:700}.panel-body{padding:14px 16px 18px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1}.icon-btn{width:44px;height:44px;min-width:44px;display:grid;place-items:center;border:3px solid var(--ink);border-radius:50%;background:var(--cream);box-shadow:var(--shadow-soft);cursor:pointer;padding:0;font-size:1.1rem;color:var(--ink);font-family:inherit}.icon-btn:active{transform:translateY(2px);box-shadow:none}.scrim{position:fixed;inset:0;background:#2b245047;z-index:29;animation:fade .18s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.chip{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;background:var(--cream-deep);font-size:.78rem;font-weight:800;color:var(--ink-soft)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.stick{position:fixed;width:108px;height:108px;margin:-54px 0 0 -54px;border-radius:50%;border:3px solid rgba(255,246,232,.5);background:#5a4a6b29;backdrop-filter:blur(2px);pointer-events:none;opacity:0;transition:opacity .12s ease;z-index:22}.stick.on{opacity:1}.stick-nub{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:#fff6e8e6;border:3px solid var(--ink);box-shadow:0 3px #5a4a6b40;transition:background .12s ease}.stick-nub.running{background:var(--butter)}.hud-top{position:fixed;top:calc(8px + var(--safe-top));left:calc(10px + var(--safe-left));right:calc(10px + var(--safe-right));display:flex;align-items:flex-start;gap:8px;z-index:21;pointer-events:none}.hud-top>*{pointer-events:auto}.hud-card{display:flex;align-items:center;gap:8px;padding:7px 12px;background:#fffcf5f0;border:3px solid var(--ink);border-radius:999px;box-shadow:var(--shadow-soft);font-weight:800;font-size:.8rem;white-space:nowrap}.hud-card .sprite{display:block}.hud-spacer{flex:1}.hud-stat{display:flex;align-items:center;gap:5px}.meter{width:66px;height:10px;border-radius:999px;background:var(--cream-deep);border:2px solid var(--ink);overflow:hidden}.meter-fill{height:100%;width:100%;border-radius:999px;transition:width .25s ease}.meter-fill.energy{background:linear-gradient(90deg,var(--butter),var(--matcha))}.meter-fill.happy{background:linear-gradient(90deg,var(--pink-light),var(--pink))}.hud-clock{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15;gap:1px}.hud-clock small{font-size:.68rem;color:var(--ink-faint);font-weight:800}.hud-buttons{position:fixed;top:calc(58px + var(--safe-top));right:calc(10px + var(--safe-right));display:flex;flex-direction:column;flex-wrap:wrap;max-height:calc(100vh - 240px - var(--safe-top) - var(--safe-bottom));align-content:flex-start;gap:8px;z-index:21}.hud-partner{display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:800}.hud-partner .dot{width:9px;height:9px;border-radius:50%;border:2px solid var(--ink);background:var(--ink-faint)}.hud-partner.on .dot{background:var(--matcha)}.action-cluster{position:fixed;right:calc(18px + var(--safe-right));bottom:calc(96px + var(--safe-bottom));display:grid;gap:10px;justify-items:end;z-index:21}.action-btn{width:86px;height:86px;border-radius:50%;border:4px solid var(--ink);background:var(--cream);box-shadow:0 5px #5a4a6b38;display:grid;place-items:center;gap:0;cursor:pointer;padding:0;position:relative;transition:transform .07s ease,background .15s ease,box-shadow .07s ease}.action-btn:active,.action-btn.pressed{transform:translateY(5px);box-shadow:none;background:var(--butter)}.action-btn.dim{opacity:.45}.action-btn .sprite{display:block}.action-label{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--cream);font-size:.66rem;font-weight:800;padding:3px 9px;border-radius:999px;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.action-charge{position:absolute;inset:-6px;border-radius:50%;border:4px solid var(--gold);opacity:0;transform:scale(.9);transition:opacity .1s ease,transform .1s ease}.action-btn.charging .action-charge{opacity:1;transform:scale(1)}.mini-btn{width:54px;height:54px;border-radius:50%;border:3px solid var(--ink);background:#fffcf5f2;box-shadow:var(--shadow-soft);display:grid;place-items:center;cursor:pointer;padding:0}.mini-btn:active{transform:translateY(3px);box-shadow:none}.mini-row{display:flex;gap:10px}.proud-btn{position:fixed;left:50%;bottom:calc(150px + var(--safe-bottom));transform:translate(-50%);display:flex;align-items:center;gap:9px;padding:12px 20px 12px 14px;background:linear-gradient(135deg,var(--pink-light),var(--butter));border:4px solid var(--ink);border-radius:999px;box-shadow:0 5px #5a4a6b38;font-weight:900;font-size:.95rem;cursor:pointer;z-index:24;animation:proudPop .4s cubic-bezier(.22,1.4,.36,1)}.proud-btn:active{transform:translate(-50%) translateY(4px);box-shadow:none}.proud-btn small{display:block;font-size:.66rem;font-weight:800;color:var(--ink-soft)}@keyframes proudPop{0%{transform:translate(-50%) scale(.6);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}.hotbar{position:fixed;left:50%;bottom:calc(10px + var(--safe-bottom));transform:translate(-50%);display:flex;gap:6px;padding:7px;background:#fffcf5eb;border:3px solid var(--ink);border-radius:18px;box-shadow:var(--shadow-soft);z-index:21;max-width:calc(100vw - 24px);overflow-x:auto;scrollbar-width:none}.hotbar::-webkit-scrollbar{display:none}.slot{--slot: 52px;position:relative;width:var(--slot);height:var(--slot);min-width:var(--slot);border:3px solid var(--ink);border-radius:12px;background:var(--cream);display:grid;place-items:center;cursor:pointer;padding:0;font-family:inherit}.slot.selected{background:var(--butter);box-shadow:inset 0 0 0 3px var(--gold)}.slot:active{transform:translateY(2px)}.slot.empty{background:#f7e7cf99}.slot-count{position:absolute;right:3px;bottom:1px;font-size:.66rem;font-weight:900;color:var(--ink);text-shadow:1px 1px 0 var(--cream),-1px 1px 0 var(--cream),1px -1px 0 var(--cream),-1px -1px 0 var(--cream)}.slot-q{position:absolute;left:3px;top:1px;font-size:.6rem}.slot-q.q1{color:#b8c9f0}.slot-q.q2{color:var(--gold)}.slot-q.q3{color:var(--strawberry)}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px}.panel.full{top:0;height:100%;max-height:100%;border-radius:0;border-top:none;padding-top:var(--safe-top)}.panel-titles{flex:1;text-align:left;min-width:0}.panel-titles h2{margin:0;font-size:1.08rem}@keyframes sink{to{transform:translate(-50%,100%);opacity:0}}.tabs{display:flex;gap:6px;padding:10px 14px 0;overflow-x:auto;scrollbar-width:none;flex:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:none;padding:8px 15px;min-height:40px;border:3px solid var(--ink);border-radius:999px;background:var(--cream);font-family:inherit;font-weight:800;font-size:.82rem;color:var(--ink-soft);cursor:pointer}.tab.on{background:var(--matcha);color:var(--ink)}.confirm{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(360px,calc(100vw - 40px));background:var(--paper);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 20px 18px;text-align:center;z-index:33}.confirm h3{margin:0 0 8px;font-size:1.05rem}.confirm p{margin:0 0 14px;color:var(--ink-soft);font-size:.9rem}.confirm-row{display:flex;gap:10px;margin-top:14px}.confirm-row .btn{flex:1}.toasts{position:fixed;left:50%;top:calc(56px + var(--safe-top));transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;z-index:26;pointer-events:none;width:min(420px,calc(100vw - 24px))}.toast{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#fffcf5f7;border:3px solid var(--ink);border-radius:16px;box-shadow:var(--shadow-soft);font-size:.86rem;font-weight:700;animation:toastIn .26s cubic-bezier(.22,1.3,.36,1);max-width:100%}.toast.out{animation:toastOut .3s ease forwards}.toast.good{background:#f0fbe9}.toast.great{background:#fff3d9}.toast.proud{background:linear-gradient(135deg,#ffeaf1,#fff4d6)}.toast-emoji{font-size:1.3rem;flex:none}.toast-text{display:flex;flex-direction:column;line-height:1.3;min-width:0}.toast-zh{font-size:.78rem;color:var(--ink-soft)}@keyframes toastIn{0%{transform:translateY(-14px) scale(.9);opacity:0}}@keyframes toastOut{to{transform:translateY(-10px);opacity:0}}.chat-log{display:flex;flex-direction:column;gap:8px}.chat-msg{display:flex;gap:8px;align-items:flex-start}.chat-msg.mine{flex-direction:row-reverse}.chat-bubble{max-width:78%;padding:9px 13px;border-radius:16px;border:3px solid var(--ink);background:var(--cream);font-size:.9rem;line-height:1.4;word-break:break-word}.chat-msg.mine .chat-bubble{background:var(--pink-light)}.chat-msg.paul .chat-bubble{background:#dcecff}.chat-msg.system .chat-bubble{background:transparent;border:none;color:var(--ink-soft);font-size:.82rem;font-style:italic;margin:0 auto;text-align:center}.chat-translated{display:block;margin-top:4px;padding-top:4px;border-top:2px dashed rgba(90,74,107,.2);font-size:.8rem;color:var(--ink-soft)}.chat-input-row{display:flex;gap:8px;padding:10px 14px calc(12px + var(--safe-bottom));border-top:3px solid var(--cream-deep);flex:none}.chat-input-row input{flex:1}.dialogue{position:fixed;left:50%;bottom:calc(14px + var(--safe-bottom));transform:translate(-50%);width:min(560px,calc(100vw - 24px));background:var(--paper);border:4px solid var(--ink);border-radius:20px;box-shadow:var(--shadow);padding:14px 16px;z-index:27;animation:rise .2s cubic-bezier(.22,1,.36,1)}.dialogue-head{display:flex;align-items:center;gap:9px;margin-bottom:8px}.dialogue-name{font-weight:900;font-size:.95rem}.dialogue-text{font-size:.95rem;line-height:1.45;min-height:2.6em}.dialogue-zh{display:block;margin-top:5px;font-size:.85rem;color:var(--ink-soft)}.dialogue-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.thinking-dots span{display:inline-block;animation:dots 1.2s infinite}.thinking-dots span:nth-child(2){animation-delay:.15s}.thinking-dots span:nth-child(3){animation-delay:.3s}@keyframes dots{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.row{display:flex;align-items:center;gap:11px;padding:10px;border:3px solid var(--cream-deep);border-radius:14px;background:var(--cream);margin-bottom:8px}.row.clickable{cursor:pointer}.row.clickable:active{transform:translateY(2px)}.row-main{flex:1;min-width:0;text-align:left}.row-title{font-weight:800;font-size:.92rem}.row-sub{font-size:.78rem;color:var(--ink-soft);line-height:1.35}.row-zh{font-size:.78rem;color:var(--ink-faint)}.row.done{background:#f0fbe9;border-color:#cdeab8}.row.locked{opacity:.55}.bi{display:inline-flex;flex-direction:column}.bi-zh{font-size:.82em;color:var(--ink-soft)}.progress{height:8px;border-radius:999px;background:var(--cream-deep);border:2px solid var(--ink);overflow:hidden;margin-top:5px}.progress-fill{height:100%;background:var(--matcha);transition:width .3s ease}.empty-note{text-align:center;color:var(--ink-faint);font-size:.88rem;padding:28px 12px;line-height:1.5}.grid-2{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.section-title{font-weight:900;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:16px 0 8px}.section-title:first-child{margin-top:0}.minigame{position:fixed;inset:0;display:grid;place-items:center;background:#2b24508c;z-index:32;padding:calc(16px + var(--safe-top)) 16px calc(16px + var(--safe-bottom))}.minigame-card{width:min(520px,100%);background:var(--paper);border:4px solid var(--ink);border-radius:22px;box-shadow:var(--shadow);padding:18px;text-align:center}.minigame-card h2{margin:0 0 4px;font-size:1.15rem}.fish-bar{position:relative;width:46px;height:260px;margin:14px auto;background:var(--cream-deep);border:4px solid var(--ink);border-radius:999px;overflow:hidden}.fish-zone{position:absolute;left:3px;right:3px;background:#8fd07ad9;border-radius:999px;transition:none}.fish-marker{position:absolute;left:50%;width:30px;height:30px;margin-left:-15px;border-radius:50%;background:var(--sky);border:3px solid var(--ink)}.fish-progress{width:100%;height:14px;border:3px solid var(--ink);border-radius:999px;background:var(--cream-deep);overflow:hidden;margin-top:10px}.fish-progress-fill{height:100%;background:linear-gradient(90deg,var(--butter),var(--matcha))}.beat-lane{display:flex;gap:8px;justify-content:center;margin:16px 0}.beat-key{width:62px;height:62px;border:4px solid var(--ink);border-radius:16px;background:var(--cream);display:grid;place-items:center;font-size:1.5rem;cursor:pointer}.beat-key.hit{background:var(--matcha)}.conn-banner{position:fixed;left:50%;top:calc(6px + var(--safe-top));transform:translate(-50%);padding:7px 16px;background:var(--butter);border:3px solid var(--ink);border-radius:999px;font-size:.8rem;font-weight:800;z-index:34;box-shadow:var(--shadow-soft)}.conn-banner.bad{background:var(--pink-light)}@media(min-width:900px){.panel{bottom:24px;border-radius:22px;border-bottom:3px solid var(--ink);max-height:min(70vh,640px)}.action-cluster{bottom:calc(100px + var(--safe-bottom))}}@media(orientation:landscape)and (max-height:480px){.hotbar{bottom:calc(6px + var(--safe-bottom))}.action-cluster{bottom:calc(74px + var(--safe-bottom))}.action-btn{width:72px;height:72px}.slot{--slot: 44px}}.bi-en,.toast-en{display:block;line-height:1.3}.action-icon{display:block;line-height:0}.action-icon canvas{display:block}.panel-close{flex:none}.action-target{position:absolute;top:-10px;left:50%;transform:translate(-50%);max-width:150px;padding:2px 9px;border:2px solid var(--ink);border-radius:999px;background:var(--cream);color:var(--ink);font-size:.66rem;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.action-btn.dim{filter:saturate(.35);opacity:.55}.action-btn.dim .action-label{opacity:.8}.held-name{position:fixed;left:50%;bottom:calc(84px + var(--safe-bottom));transform:translate(-50%);z-index:21;max-width:min(74vw,420px);padding:3px 12px;border:2px solid var(--ink);border-radius:999px;background:var(--cream);color:var(--ink);font-size:.74rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;box-shadow:0 2px 0 var(--ink-faint)}@media(max-width:520px){.held-name{bottom:calc(78px + var(--safe-bottom));font-size:.68rem}}@media(max-width:520px),(max-height:720px){.hud-buttons{gap:5px}.hud-buttons .mini-btn{width:44px;height:44px;border-width:2px}.hud-buttons .mini-btn>*{width:24px;height:24px}}@media(max-height:460px){.hud-buttons .mini-btn{width:40px;height:40px}.toasts{max-width:min(58vw,460px)}.toast{font-size:.78rem}}.action-label{max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.minimap{--minimap-size: 92px;position:fixed;top:calc(56px + var(--safe-top));left:calc(10px + var(--safe-left));width:var(--minimap-size);height:var(--minimap-size);padding:2px;border:2px solid var(--ink);border-radius:18px;background:#fffcf5f0;box-shadow:var(--shadow-soft);overflow:hidden;cursor:pointer;z-index:21;font:inherit;line-height:0;transition:transform .07s ease}.minimap[hidden]{display:none}.minimap:active{transform:translateY(2px)}.minimap:focus-visible{outline:none;box-shadow:0 0 0 4px var(--pink-light)}.minimap-canvas{display:block;width:100%;height:100%;border-radius:15px;image-rendering:pixelated;image-rendering:crisp-edges}@media(min-width:600px){.minimap{--minimap-size: 116px}}@media(min-width:900px){.minimap{--minimap-size: 150px}}@media(orientation:landscape)and (max-height:480px){.minimap{--minimap-size: 76px;border-radius:15px}.minimap-canvas{border-radius:12px}}@media(prefers-reduced-motion:reduce){.minimap{transition:none}.minimap:active{transform:none}}.guide-chip{position:fixed;left:calc(10px + var(--safe-left));right:calc(146px + var(--safe-right));bottom:calc(116px + var(--safe-bottom));max-width:340px;display:flex;align-items:stretch;background:#fffcf5f5;border:3px solid var(--ink);border-radius:18px;box-shadow:var(--shadow-soft);overflow:hidden;z-index:23}.guide-body{flex:1;min-width:0;display:flex;align-items:flex-start;gap:9px;padding:9px 6px 9px 10px;border:0;background:none;font:inherit;color:var(--ink);text-align:left;cursor:pointer}.guide-body:active{transform:translateY(1px)}.guide-icon{width:28px;min-width:28px;height:28px;margin-top:1px;display:grid;place-items:center;border-radius:50%;border:2px solid var(--ink);background:var(--cream-deep);font-size:17px;line-height:1}.guide-text{display:flex;flex-direction:column;gap:2px;min-width:0}.guide-title{font-size:.82rem;font-weight:900;line-height:1.25}.guide-hint{font-size:.72rem;line-height:1.35;color:var(--ink-soft)}.guide-hint .bi-zh{color:var(--ink-faint)}.guide-hint .bi-en,.guide-hint .bi-zh{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.guide-close{width:40px;min-width:40px;border:0;border-left:3px solid var(--cream-deep);background:none;color:var(--ink-faint);font-family:inherit;font-size:.9rem;font-weight:800;cursor:pointer}.guide-close:active{background:var(--cream-deep)}.guide-chip.in{animation:guideRise .34s cubic-bezier(.22,1.4,.36,1)}@keyframes guideRise{0%{transform:translateY(14px) scale(.94);opacity:0}to{transform:none;opacity:1}}.guide-chip.tick{background:#f0fbe9;border-color:var(--matcha-deep);animation:guideSettle .52s cubic-bezier(.22,1.4,.36,1)}.guide-chip.tick .guide-icon{background:var(--matcha);border-color:var(--matcha-deep);font-size:15px;font-weight:900;animation:guideTick .44s cubic-bezier(.22,1.4,.36,1)}.guide-chip.tick .guide-hint{opacity:.55}@keyframes guideSettle{0%{transform:translateY(-3px) scale(1.03)}55%{transform:translateY(2px) scale(.99)}to{transform:none}}@keyframes guideTick{0%{transform:scale(.4) rotate(-18deg)}60%{transform:scale(1.18) rotate(5deg)}to{transform:none}}.guide-chip.farewell{background:linear-gradient(135deg,var(--pink-light),var(--butter))}.guide-chip.farewell .guide-icon{background:var(--cream)}.guide-chip.farewell .guide-hint{color:var(--ink)}@media(min-width:900px){.guide-chip{left:calc(16px + var(--safe-left));right:auto;width:330px;max-width:330px;bottom:calc(96px + var(--safe-bottom))}}@media(orientation:landscape)and (max-height:480px){.guide-chip{bottom:calc(86px + var(--safe-bottom));max-width:300px}.guide-title{font-size:.78rem}.guide-hint{font-size:.68rem}}@media(prefers-reduced-motion:reduce){.guide-chip,.guide-chip .guide-icon{animation:none}}.guide-bullet,.guide-check{width:28px;min-width:28px;text-align:center;font-size:19px;line-height:1.2}.row.done .guide-check{color:var(--matcha-deep);font-weight:900}.guide-keyboard{display:grid;gap:8px;margin-bottom:8px}.guide-key-row{display:grid;grid-template-columns:128px 1fr;align-items:center;gap:10px}.guide-keys{display:flex;flex-wrap:wrap;gap:4px}.guide-key{display:inline-flex;align-items:center;justify-content:center;min-width:26px;padding:3px 7px;border:2px solid var(--ink);border-bottom-width:3px;border-radius:7px;background:var(--cream);color:var(--ink);font-family:inherit;font-size:.7rem;font-weight:800}.guide-key-label{flex:1;min-width:0;font-size:.78rem;color:var(--ink-soft)}@media(max-width:640px){.guide-chip{right:auto;width:212px;max-width:calc(100vw - 150px);bottom:calc(196px + var(--safe-bottom))}.guide-body{align-items:center;padding:7px 4px 7px 8px;gap:7px}.guide-icon{width:24px;min-width:24px;height:24px;font-size:14px}.guide-title{font-size:.76rem}.guide-hint{font-size:.66rem}.guide-hint .bi-en,.guide-hint .bi-zh{-webkit-line-clamp:1;line-clamp:1}.guide-close{width:32px}}
