@import"https://fonts.googleapis.com/css2?family=Comic+Neue:wght@400;700&family=Ma+Shan+Zheng&display=swap";:root{--app-font-family: "Comic Neue", "Ma Shan Zheng", cursive;--bg-primary: #fff8f0;--bg-secondary: #fff0e6;--bg-tertiary: #ffe4d0;--bg-card: #ffffff;--bg-card-hover: #fff9f3;--bg-input: #ffffff;--text-primary: #5d4e37;--text-secondary: #8b7a5c;--text-muted: #b8a88a;--accent-red: #ff6b6b;--accent-orange: #ff9f43;--accent-yellow: #ffd93d;--accent-green: #6bcb77;--accent-blue: #4d96ff;--accent-purple: #a66cff;--accent-pink: #ff6bd6;--accent-cyan: #4dd0e1;--border-color: #ffe0cc;--border-light: #ffd4b8;--shadow-sm: 0 2px 6px rgba(255, 111, 107, .1);--shadow-md: 0 4px 12px rgba(255, 111, 107, .15);--shadow-lg: 0 8px 20px rgba(255, 111, 107, .2);--shadow-xl: 0 12px 30px rgba(255, 111, 107, .25);--radius-sm: 16px;--radius-md: 24px;--radius-lg: 32px;--radius-xl: 40px;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.34, 1.56, .64, 1);--transition-normal: .25s cubic-bezier(.34, 1.56, .64, 1);--transition-slow: .35s cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:var(--app-font-family);background:linear-gradient(180deg,#fff8f0,#f0f8ff,#fff0e6);background-attachment:fixed;color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 20% 80%,rgba(255,111,107,.08) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(107,203,119,.08) 0%,transparent 50%),radial-gradient(circle at 40% 40%,rgba(77,150,255,.06) 0%,transparent 40%),radial-gradient(circle at 60% 60%,rgba(255,217,61,.06) 0%,transparent 40%);pointer-events:none;z-index:0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,var(--accent-orange),var(--accent-pink));border-radius:var(--radius-full);border:2px solid var(--bg-secondary)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,var(--accent-red),var(--accent-purple))}.page{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:16px 20px 48px;color:var(--text-primary)}:where(.page) button{font:inherit;color:inherit;cursor:pointer}:where(.page) button:disabled{cursor:not-allowed}.page :focus-visible{outline:3px solid #225dac;outline-offset:3px}.page a{color:#225dac}.pill-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:999px;border:2px solid var(--border-color);background:#fff;font-weight:700;transition:transform var(--transition-fast),background .2s}.pill-btn:hover:not(:disabled){transform:translateY(-2px);background:var(--bg-card-hover)}.pill-btn[aria-pressed=true]{background:#ffe4d0;border-color:#ff9f43}.pill-btn:disabled{opacity:.45}.primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 22px;border-radius:999px;border:none;background:var(--accent-orange);color:#fff!important;font-weight:700;font-size:1.05rem;box-shadow:0 3px #e07f22;transition:transform var(--transition-fast),box-shadow .15s}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 5px #e07f22}.primary-btn:active{transform:translateY(2px);box-shadow:0 1px #e07f22}.speak-btn{display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border-radius:50%;border:2px solid #cfe0f7;background:#f3f8ff;font-size:1rem;vertical-align:middle;transition:transform var(--transition-fast)}.speak-btn:hover{transform:scale(1.1)}.speak-btn.is-speaking{border-color:#ff9f43;background:#fff3e2;animation:speaking 1s ease-in-out infinite}.says-bubble .speak-btn{width:26px;height:26px;font-size:.8rem;margin-left:4px}@keyframes speaking{50%{box-shadow:0 0 0 5px #ff9f4340}}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips button{padding:6px 14px;border-radius:999px;border:2px solid var(--border-color);background:#fff;transition:transform var(--transition-fast),background .2s}.chips button:hover{transform:translateY(-1px);background:#fff7e6}.chips button b{color:var(--text-secondary)}.card{padding:18px 20px;border-radius:var(--radius-md);background:var(--bg-card);border:3px solid var(--border-color);box-shadow:var(--shadow-sm)}.section-title{margin:26px 0 12px;font-size:1.45rem}.section-title.is-small{font-size:1.1rem;margin:22px 0 10px}.intro{display:grid;gap:6px;justify-items:start;margin:4px 0 16px;padding:14px 18px;border-radius:var(--radius-md);background:#ffffffb3;border:2px dashed var(--border-light)}.intro p{margin:0;line-height:1.7;font-size:1.02rem}.intro span{margin-right:6px}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:14px}.topbar h1{flex:1;margin:0;font-size:clamp(1.4rem,3.4vw,1.9rem);letter-spacing:.04em}.topbar-tools{display:flex;align-items:center;gap:8px}.sound-btn{padding:6px 12px}padding: 10px 22px; border-radius: 999px; border: 3px solid var(--border-color); background: #fff; font-size: 1.1rem; font-weight: 700; transition: transform var(--transition-fast),background .2s; } .person{position:relative;display:inline-grid;place-items:center;flex:none;border-radius:50%;background:color-mix(in srgb,var(--side) 14%,white);border:3px solid color-mix(in srgb,var(--side) 55%,white);box-shadow:var(--shadow-sm);line-height:1}.person.is-sm{width:40px;height:40px;font-size:1.3rem}.person.is-md{width:64px;height:64px;font-size:2rem}.person.is-lg{width:84px;height:84px;font-size:2.8rem}.says{display:flex;gap:10px;align-items:flex-start;margin:12px 0;animation:pop .35s both}.says-avatar{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;overflow:hidden;background:#e5f0ff;border:2px solid #8db6f0;box-shadow:var(--shadow-sm)}.says.is-nian .says-avatar{background:#fff1d6;border-color:#ffb36b}.says-avatar .avatar{width:100%;height:100%}.says-bubble{max-width:620px;padding:8px 16px 10px;border-radius:4px 18px 18px;background:#fff;border:2px solid #cfe0f7;box-shadow:var(--shadow-sm)}.says-bubble b{font-size:.78rem;color:var(--text-secondary)}.says.is-speaking .says-bubble{border-color:#ff9f43;box-shadow:0 0 0 3px #ff9f4359,var(--shadow-sm)}.says.is-speaking .says-avatar{border-color:#ff9f43}.says-bubble p{margin:2px 0 0;font-size:1.05rem;line-height:1.75}.home-title{text-align:center;margin:8px 0 4px}.home-title h1{margin:0;font-size:clamp(2.2rem,5vw,3.4rem);letter-spacing:.08em;background:linear-gradient(90deg,#6bcb77,#ff9f43 40%,#ff7a5c 65%,#b48cff);-webkit-background-clip:text;background-clip:text;color:transparent}.home-title h1 span{-webkit-text-fill-color:initial;color:initial}.home-title p{margin:6px 0 0;color:var(--text-secondary);font-size:1.05rem}.duo{position:relative;height:300px;border-radius:var(--radius-lg);overflow:hidden;background:radial-gradient(ellipse at 50% 120%,#c9efc4 0 38%,transparent 39%),linear-gradient(180deg,#e6f4ff,#fff8f0);border:3px solid var(--border-color);box-shadow:var(--shadow-sm)}.duo-people{position:absolute;left:50%;bottom:18px;transform:translate(-50%);display:flex;align-items:flex-end;gap:6px;padding:0;border:none;background:none}.duo-people .avatar{width:100%;height:100%}.duo-dad{width:132px;height:132px;animation:bob 3s ease-in-out infinite}.duo-nian{width:100px;height:100px;animation:bob 3s ease-in-out .5s infinite}.duo-bubble{position:absolute;top:16px;max-width:42%;padding:10px 14px;text-align:left;font-size:.98rem;line-height:1.5;border-radius:20px;border:2px solid #cfe0f7;background:#fff;box-shadow:var(--shadow-sm);animation:pop .4s both}.duo-bubble b{display:block;font-size:.75rem;color:var(--text-secondary)}.duo-bubble.is-nian{right:16px;background:#fff7e6;border-color:#ffd7a8;border-bottom-right-radius:4px;font-weight:700}.duo-bubble.is-dad{left:16px;top:76px;border-bottom-left-radius:4px;animation-delay:.6s}.duo-bubble.is-speaking{border-color:#ff9f43;box-shadow:0 0 0 3px #ff9f4359,var(--shadow-sm)}.duo-hint{position:absolute;right:18px;bottom:12px;font-size:.82rem;color:var(--text-secondary)}.modes,.levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.mode-card,.level-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr auto;column-gap:14px;row-gap:6px;min-height:140px;padding:18px;text-align:left;border-radius:var(--radius-md);border:3px solid color-mix(in srgb,var(--bubble) 45%,white);background:linear-gradient(135deg,#fff 55%,color-mix(in srgb,var(--bubble) 16%,white));box-shadow:var(--shadow-sm);transition:transform var(--transition-normal),box-shadow .2s}.mode-card:hover,.level-card:hover:not(:disabled){transform:translateY(-3px);box-shadow:var(--shadow-lg)}.level-card:disabled{opacity:.5}.mode-emoji,.level-emoji{grid-row:1 / 4;font-size:3rem;line-height:1}.mode-card strong,.level-card strong{font-size:1.25rem}.mode-card small,.level-card small{color:var(--text-secondary);line-height:1.5;font-size:.95rem}.mode-count,.level-count{font-size:.82rem;font-weight:700;color:color-mix(in srgb,var(--bubble) 70%,#5d4e37)}.level-card{grid-template-rows:auto auto 1fr auto}.level-card .level-emoji{grid-row:1 / 5}.level-stars{font-size:1.2rem;letter-spacing:2px;color:#e0a800}.tips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tip-card{display:flex;gap:12px;padding:14px 16px;border-radius:var(--radius-md);background:#fff;border:2px solid var(--border-color);box-shadow:var(--shadow-sm);animation:pop .4s both;animation-delay:calc(var(--i) * 70ms)}.tip-card>span{font-size:2rem;line-height:1.1}.tip-card h3{margin:0 0 4px;font-size:1.08rem}.tip-card p{margin:0;line-height:1.7;font-size:1rem;color:#6b5a48}.page.tree-page{max-width:1280px}.tree-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:18px;align-items:start}.tree-scroll{overflow-x:auto;border-radius:var(--radius-lg);background:#fff;border:3px solid var(--border-color);box-shadow:var(--shadow-sm)}.tree{position:relative;min-width:640px;aspect-ratio:1000 / 580}.tree svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.zone.is-dad{fill:#eef5ff}.zone.is-mom{fill:#fff0fa}.zone-label{font-size:26px;font-weight:700;font-family:var(--app-font-family)}.zone-label.is-dad{fill:#4d7fd0}.zone-label.is-mom{fill:#d062b4}.tree-line{fill:none;stroke:#d8c8b4;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.tree-couple{stroke:#ffb3c7;stroke-width:4;stroke-dasharray:2 9;stroke-linecap:round}.tree-heart{fill:#ff6b8a;font-size:22px}.tree-node{position:absolute;transform:translate(-50%,-32px);display:grid;justify-items:center;gap:2px;padding:0;border:none;background:none;transition:transform var(--transition-normal)}.tree-node:hover{transform:translate(-50%,-35px)}.tree-node.is-selected .person{border-color:#ff9f43;box-shadow:0 0 0 4px #ff9f4366,var(--shadow-md);animation:wiggle .5s}.tree-node.is-path:not(.is-selected) .person{border-color:#ffc27a}.tree-name{min-width:2.6em;padding:1px 8px;border-radius:999px;background:#ffffffeb;font-weight:700;font-size:1rem;white-space:nowrap;box-shadow:var(--shadow-sm)}.tree-node.is-selected .tree-name{background:#ffe4d0}.path-badge,.met-badge{position:absolute;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:.8rem;font-weight:700;line-height:1}.path-badge{left:-8px;top:-6px;background:var(--accent-orange);color:#fff;border:2px solid #fff}.met-badge{right:-8px;top:-6px;font-size:.85rem;background:#fff}.relative-card{position:sticky;top:12px}.rc-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.rc-head>div{display:grid;gap:2px;flex:1;justify-items:start}.rc-head small{color:var(--text-secondary);font-size:.95rem}.rc-call{display:inline-flex;align-items:center;gap:8px;font-size:2.2rem;line-height:1.2;letter-spacing:.06em}.side-tag{align-self:flex-start;padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:700;background:#fff1d6;color:#a05a00}.side-tag[data-side=dad]{background:#e5f0ff;color:#2f5fa8}.side-tag[data-side=mom]{background:#ffe8f6;color:#a8407f}.rc-chain{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:14px 0 6px}.rc-chain li{position:relative;padding:4px 12px;border-radius:999px;background:#f3f8ff;border:2px solid #cfe0f7;font-weight:700;animation:pop .35s both}.rc-chain li:nth-child(2){animation-delay:70ms}.rc-chain li:nth-child(3){animation-delay:.14s}.rc-chain li:nth-child(4){animation-delay:.21s}.rc-chain li.is-note{background:#fff7e6;border-color:#ffd7a8}.rc-back,.rc-also,.rc-note{margin:6px 0;line-height:1.7;font-size:1.05rem}.rc-back b{font-size:1.2rem;color:#c25e00}.rc-also,.rc-note{color:var(--text-secondary);font-size:.98rem}.rc-family{margin-top:12px;padding-top:12px;border-top:2px dashed var(--border-light)}.rc-family h3{margin:0 0 8px;font-size:1rem}.rc-actions{margin-top:14px}.train{overflow-x:auto;padding:18px 16px 26px;border-radius:var(--radius-lg);background:linear-gradient(180deg,#e6f4ff 70%,#f4e9dc 70%);border:3px solid var(--border-color)}.train-track{position:relative;display:flex;align-items:flex-end;gap:6px;min-width:max-content}.train-track:after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:6px;border-radius:3px;background:repeating-linear-gradient(90deg,#8b6b4a 0 14px,transparent 14px 24px)}.car{position:relative;display:grid;justify-items:center;gap:2px;min-width:84px;padding:10px 12px 12px;border-radius:18px 18px 10px 10px;background:#fff;border:3px solid #8db6f0;box-shadow:0 4px #b8cde9;font-size:2rem;line-height:1.1;animation:car-in .45s both}.car b{font-size:1.05rem}.car i{position:absolute;left:-16px;top:50%;transform:translateY(-50%);font-style:normal;font-size:.95rem;font-weight:700;color:#4d7fd0;background:#e6f4ff;padding:0 2px}.car.is-engine{min-width:96px;background:#fff1e0;border-color:#ff9f43;box-shadow:0 4px #f3c08e}.car.is-empty{justify-content:center;align-content:center;min-height:78px;color:var(--text-muted);border-style:dashed;border-color:#cfe0f7;box-shadow:none;animation:none}.car+.car{margin-left:14px}.train-controls{display:grid;gap:12px;margin:16px 0}.step-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.step-btn{display:grid;justify-items:center;gap:2px;padding:10px 6px;border-radius:var(--radius-sm);border:3px solid var(--border-color);background:#fff;font-weight:700;font-size:1.05rem;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),box-shadow .2s}.step-btn span{font-size:1.8rem;line-height:1.1}.step-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:#ffc27a}.step-btn:active:not(:disabled){transform:translateY(1px)}.step-btn:disabled{opacity:.35;filter:grayscale(.6)}.train-actions{display:flex;flex-wrap:wrap;gap:10px}.train-result{min-height:140px}.tr-chain{margin:0;color:var(--text-secondary);font-size:1.05rem}.tr-answer{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0}.tr-answer small{font-size:1rem;color:var(--text-secondary)}.tr-answer strong{font-size:2.4rem;letter-spacing:.06em;animation:pop .35s both}.tr-note{margin:4px 0;color:var(--text-secondary);line-height:1.7}.tr-back{margin:6px 0;font-size:1.1rem}.tr-back b{color:#c25e00;font-size:1.25rem}.guess{display:grid;gap:14px;justify-items:start}.guess-q{margin:0;font-size:1.4rem;font-weight:700;line-height:1.5}.quiz-progress{display:flex;gap:8px;justify-content:center;margin:4px 0 14px}.quiz-progress span{width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--border-color)}.quiz-progress .is-now{border-color:#ff9f43;transform:scale(1.2)}.quiz-progress .is-right{background:var(--accent-green);border-color:var(--accent-green)}.quiz-progress .is-wrong{background:var(--accent-red);border-color:var(--accent-red)}.quiz-card{position:relative;max-width:760px;margin:0 auto;display:grid;justify-items:center;text-align:center;gap:6px}.quiz-figure{position:relative;display:grid;justify-items:center;gap:6px;margin-top:4px}.figure-q{position:absolute;right:-10px;top:-8px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent-purple);color:#fff;font-size:1.1rem;font-weight:700;border:2px solid #fff}.figure-bubble{padding:2px 12px;border-radius:999px;background:#fff7e6;border:2px solid #ffd7a8;font-size:.9rem;font-weight:700}.figure-name{font-weight:700;font-size:1.1rem;animation:pop .3s both}.quiz-prompt{margin:6px 0 10px;font-size:clamp(1.3rem,3vw,1.6rem);line-height:1.5}.options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}.options.is-long{grid-template-columns:1fr}.option{padding:14px 12px;border-radius:var(--radius-sm);border:3px solid var(--border-color);background:#fff;font-size:1.35rem;font-weight:700;box-shadow:0 3px 0 var(--border-light);transition:transform var(--transition-fast),background .2s,border-color .2s}.options.is-long .option{font-size:1.15rem}.option:hover:not(:disabled){transform:translateY(-2px);border-color:#ffc27a}.option.is-right{background:#e6f8e8;border-color:var(--accent-green);box-shadow:0 3px #4fa95b;animation:pop .3s}.option.is-wrong{background:#ffecec;border-color:var(--accent-red);box-shadow:0 3px #d95050;animation:shake .4s}.option.is-dim{opacity:.45}.feedback{position:relative;display:grid;justify-items:center;gap:4px;width:100%;margin-top:10px;text-align:left}.feedback .says{justify-self:stretch}.verdict{margin:4px 0 0;font-size:1.3rem;font-weight:700}.verdict.is-right{color:#2f8a3c}.verdict.is-wrong{color:#c94040}.burst{position:absolute;left:50%;top:10px;width:0;height:0;pointer-events:none}.burst span{position:absolute;font-size:1.6rem;animation:burst .9s ease-out both}.quiz-done{max-width:640px;margin:0 auto;display:grid;justify-items:center;text-align:center}.quiz-done .says,.quiz-done .rc-family{justify-self:stretch;text-align:left}.done-stars{margin:0;font-size:3.4rem;letter-spacing:6px;color:#e0a800;animation:pop .5s both}.quiz-done h2{margin:4px 0}.done-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:16px}.game-intro{max-width:640px;margin:0 auto;display:grid;justify-items:center;gap:6px;text-align:center}.game-intro .says{justify-self:stretch;text-align:left}.game-intro-emoji{font-size:4rem;line-height:1;animation:bob 3s ease-in-out infinite}.game-intro h2{margin:0}.game-score{display:flex;justify-content:space-between;gap:12px;max-width:760px;margin:0 auto 12px;padding:0 4px;font-weight:700;color:var(--text-secondary)}.game-score span:last-child{color:#c25e00}.drop-in{animation:drop-in .45s cubic-bezier(.3,1.4,.5,1) both}.door-scene{position:relative;display:grid;justify-items:center;margin:4px 0}.door-frame{position:relative;display:grid;place-items:center;width:180px;height:200px;overflow:hidden;border-radius:90px 90px 10px 10px;background:#fff7e6;border:6px solid #c0392b;box-shadow:var(--shadow-md)}.door-frame:before{content:"福";position:absolute;top:10px;z-index:3;font-size:1.4rem;font-weight:700;color:#c0392b;animation:door-fade .9s .4s both}.door-guest{animation:pop .4s .5s both}.door-leaf{position:absolute;top:0;bottom:0;width:50%;z-index:2;background:linear-gradient(90deg,#e74c3c,#c0392b)}.door-leaf.is-left{left:0;transform-origin:left;border-right:2px solid #a93226;animation:door-left .8s .2s both}.door-leaf.is-right{right:0;transform-origin:right;border-left:2px solid #a93226;animation:door-right .8s .2s both}.door-gift{position:absolute;right:calc(50% - 130px);top:40px;font-size:2.6rem;animation:gift .7s both}.door-haul{margin:0;font-size:2rem;letter-spacing:2px}.rows-layout{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,2fr);gap:16px;align-items:start}.rows-card,.sides-card{display:grid;justify-items:center;text-align:center;gap:4px;position:sticky;top:12px}.rows-card .feedback{margin-top:4px}.rows-name{display:inline-flex;align-items:center;gap:8px;margin:6px 0 0;font-size:2rem;letter-spacing:.06em}.rows-ask{margin:0;color:var(--text-secondary);font-size:1.05rem;font-weight:700}.rows{display:grid;gap:10px}.row{display:grid;grid-template-columns:7.5em 1fr;align-items:center;gap:10px;min-height:64px;padding:8px 12px;text-align:left;border-radius:var(--radius-md);border:3px solid var(--border-color);background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),border-color .2s,background .2s}.row:hover:not(:disabled){transform:translate(4px);border-color:#ffc27a;background:#fffaf2}.row:disabled{cursor:default}.row.is-hint{border-color:var(--accent-green);background:#e6f8e8}.row.is-wrong{border-color:var(--accent-red);background:#ffecec;animation:shake .4s}.row-label{display:flex;align-items:center;gap:6px;font-weight:700;font-size:1.1rem}.row-label span{font-size:1.5rem}.row-people,.side-pile{display:flex;flex-wrap:wrap;gap:6px}.row-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-weight:700;background:#e6f8e8;border:2px solid #9ad8a2;animation:pop .35s both}.row-chip.is-anchor{background:#fff1e0;border-color:#ffd7a8;color:var(--text-secondary);animation:none}.row-chip.is-fixed{background:#ffecec;border-color:#f3a5a5}.sides{display:grid;grid-template-columns:1fr minmax(240px,1.1fr) 1fr;gap:14px;align-items:stretch}.side-bin{display:grid;align-content:start;justify-items:center;gap:10px;min-height:260px;padding:14px 10px;border-radius:var(--radius-lg);border:3px solid;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),background .2s}.side-bin.is-dad{background:#eef5ff;border-color:#8db6f0}.side-bin.is-mom{background:#fff0fa;border-color:#f0a6d8}.side-bin:hover:not(:disabled){transform:translateY(-3px);box-shadow:var(--shadow-md)}.side-bin:disabled{cursor:default}.side-bin.is-hint{box-shadow:0 0 0 4px var(--accent-green)}.side-bin.is-wrong{animation:shake .4s;box-shadow:0 0 0 4px var(--accent-red)}.side-bin-head{display:grid;justify-items:center;font-size:1.25rem;font-weight:700}.side-bin-head span{font-size:2.6rem;line-height:1.1}.side-pile{justify-content:center}.side-bin small{margin-top:auto;color:var(--text-muted);font-size:.8rem}.sides-card{position:static;align-content:center}.sides-feedback{max-width:760px;margin:14px auto 0}.match-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:760px;margin:0 auto}.match-card{aspect-ratio:4 / 3;padding:0;border:none;background:none;perspective:800px}.match-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s}.match-card.is-open .match-inner{transform:rotateY(180deg)}.match-back,.match-front{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:2px;padding:6px;border-radius:var(--radius-md);border:3px solid var(--border-color);box-shadow:var(--shadow-sm);backface-visibility:hidden}.match-back{font-size:2.2rem;background:repeating-linear-gradient(45deg,#e6f8e8 0,#e6f8e8 12px,#d2f0d6 12px,#d2f0d6 24px);border-color:#9ad8a2}.match-card:hover:not(.is-open) .match-back{border-color:#ffc27a}.match-front{transform:rotateY(180deg);background:#fff}.match-front.is-chain{background:#f3f8ff;border-color:#cfe0f7}.match-front.is-chain b{font-size:1.05rem;line-height:1.4}.match-front.is-call b{font-size:1.5rem;letter-spacing:.06em}.match-front small{color:var(--text-secondary);font-size:.8rem}.match-emoji{font-size:1.8rem;line-height:1.1}.match-card.is-done .match-front{border-color:var(--accent-green);background:#e6f8e8}@keyframes drop-in{0%{opacity:0;transform:translateY(-60px) scale(.8)}to{opacity:1;transform:none}}@keyframes door-left{to{transform:perspective(500px) rotateY(-80deg)}}@keyframes door-right{to{transform:perspective(500px) rotateY(80deg)}}@keyframes door-fade{to{opacity:0}}@keyframes gift{0%{opacity:0;transform:translate(-60px,40px) scale(.4) rotate(-30deg)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes wiggle{0%,to{transform:rotate(0)}30%{transform:rotate(-8deg)}60%{transform:rotate(6deg)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes car-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:none}}@keyframes burst{0%{opacity:1;transform:rotate(var(--a)) translateY(0) rotate(calc(-1 * var(--a))) scale(.4)}to{opacity:0;transform:rotate(var(--a)) translateY(-110px) rotate(calc(-1 * var(--a))) scale(1.1)}}@media (max-width: 1100px){.tree-layout{grid-template-columns:1fr}.relative-card{position:static}}@media (max-width: 900px){.modes,.levels,.tips{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar h1{order:-1;flex-basis:100%}.rows-layout{grid-template-columns:1fr}.rows-card{position:static}}@media (max-width: 520px){.page{padding:12px 12px 40px}.modes,.levels,.tips{grid-template-columns:1fr}.duo{height:auto;display:flex;flex-direction:column;gap:8px;padding:12px 12px 10px}.duo-bubble{position:static;max-width:86%;font-size:.92rem}.duo-bubble.is-nian{align-self:flex-end}.duo-bubble.is-dad{align-self:flex-start}.duo-people{position:static;transform:none;align-self:center}.duo-dad{width:104px;height:104px}.duo-nian{width:80px;height:80px}.duo-hint{display:none}.step-grid{gap:6px}.step-btn{padding:8px 2px;font-size:.92rem;border-width:2px}.step-btn span{font-size:1.5rem}.car{min-width:72px;font-size:1.7rem}.options{grid-template-columns:1fr 1fr;gap:8px}.option{font-size:1.15rem;padding:12px 8px}.rc-call{font-size:1.9rem}.says-avatar{width:36px;height:36px}.row{grid-template-columns:1fr;gap:4px}.sides{grid-template-columns:1fr 1fr;gap:10px}.sides-card{order:-1!important;grid-column:1 / -1}.side-bin{min-height:160px}.side-bin small{display:none}.match-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.match-card{aspect-ratio:1}.match-front.is-chain b{font-size:.92rem}.match-front.is-call b{font-size:1.25rem}}@media (prefers-reduced-motion: reduce){.says,.tip-card,.rc-chain li,.car,.tr-answer strong,.duo-bubble,.figure-name,.done-stars,.option.is-right,.option.is-wrong,.duo-dad,.duo-nian,.tree-node.is-selected .person{animation:none}.burst{display:none}.drop-in,.door-leaf,.door-guest,.door-gift,.door-frame:before,.row-chip,.game-intro-emoji{animation:none}.door-leaf{display:none}.match-inner{transition:none}}
