:root{--color-bg: #fef9f4;--color-bg-alt: #fff5f0;--color-cream: #fef3e8;--color-text: #4a3f55;--color-text-light: #7a6f88;--color-pink: #e87ca0;--color-pink-light: #fce4ec;--color-purple: #9b7ec8;--color-purple-light: #ede7f6;--color-peach: #f5a882;--color-peach-light: #fff0e6;--color-mint: #7ec8a4;--color-mint-light: #e0f5ec;--color-border: #f0e4dc;--color-card-bg: #ffffff;--color-code-bg: #fdf2f8;--color-code-block-bg: #2d2b3d;--shadow-soft: 0 2px 12px rgba(233, 124, 160, .08), 0 1px 4px rgba(0, 0, 0, .04);--shadow-card: 0 4px 20px rgba(233, 124, 160, .1), 0 2px 8px rgba(0, 0, 0, .04);--shadow-hover: 0 8px 30px rgba(233, 124, 160, .15), 0 4px 12px rgba(0, 0, 0, .06);--radius: 16px;--radius-sm: 10px;--radius-lg: 24px}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.7;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at 20% 20%,rgba(232,124,160,.06) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(155,126,200,.06) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(245,168,130,.04) 0%,transparent 50%);pointer-events:none;z-index:0}.candy-wrapper{position:relative;z-index:1;max-width:56rem;margin:0 auto;padding:0 1.25rem;display:flex;flex-direction:column;min-height:100vh}.nav{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 0;border-bottom:2px dashed var(--color-border);margin-bottom:2rem;flex-wrap:wrap;gap:.75rem}.nav-brand{font-size:1.2rem;font-weight:700;color:var(--color-pink);text-decoration:none;letter-spacing:-.02em}.nav-links{display:flex;gap:.25rem}.nav-links a{color:var(--color-text-light);text-decoration:none;padding:.4rem .9rem;border-radius:var(--radius-sm);font-size:.95rem;font-weight:500;transition:all .2s ease}.nav-links a:hover{color:var(--color-pink);background:var(--color-pink-light)}.nav-links a.active{color:var(--color-pink);background:var(--color-pink-light);font-weight:600}.main{flex:1}.footer{margin-top:4rem;padding:2rem 0;border-top:2px dashed var(--color-border);text-align:center;color:var(--color-text-light);font-size:.9rem}.footer-deco{font-size:.9rem;color:var(--color-pink);margin-bottom:.5rem;letter-spacing:.5rem}.footer a{color:var(--color-pink);text-decoration:none}.footer a:hover{text-decoration:underline}.footer-sub{font-size:.8rem;color:var(--color-text-light);margin-top:.3rem;opacity:.7}::selection{background:var(--color-pink-light);color:var(--color-pink)}@media (max-width: 768px){.nav{padding:1rem 0}.nav-brand{font-size:1.05rem}.nav-links a{padding:.3rem .7rem;font-size:.9rem}.candy-wrapper{padding:0 1rem}}.cat-pet{position:fixed;z-index:999;cursor:grab;user-select:none;-webkit-user-select:none;filter:drop-shadow(0 3px 6px rgba(232,124,160,.15))}.cat-pet:hover{filter:drop-shadow(0 5px 12px rgba(232,124,160,.25))}.cat-pet.dragging{cursor:grabbing;filter:drop-shadow(0 8px 18px rgba(232,124,160,.3))}.cat-sprite{position:relative;width:80px;height:90px;transition:transform .15s ease}.cat-pet[data-facing=right] .cat-sprite{transform:scaleX(-1)}.cat-pet.dragging .cat-sprite{transform:scale(1.1)}.cat-pet.dragging[data-facing=right] .cat-sprite{transform:scaleX(-1) scale(1.1)}.cat-pet.idle .cat-body-wrap{animation:catBreathe 2.5s ease-in-out infinite}.cat-pet.idle .cat-tail{animation:tailIdle 2.8s ease-in-out infinite}.cat-pet.walking .cat-paw-l{animation:pawStep .3s ease-in-out infinite alternate}.cat-pet.walking .cat-paw-r{animation:pawStep .3s ease-in-out infinite alternate-reverse}.cat-pet.walking .cat-body-wrap{animation:catBounce .3s ease-in-out infinite alternate}.cat-pet.walking .cat-tail{animation:tailWalk .4s ease-in-out infinite alternate}.cat-tail{position:absolute;right:-8px;bottom:18px;width:24px;height:8px;background:#f5cdb8;border-radius:0 8px 8px 0;transform-origin:left center}.cat-tail:after{content:"";position:absolute;right:-8px;top:-6px;width:14px;height:14px;background:#f5cdb8;border-radius:50%}.cat-body-wrap{position:absolute;bottom:0;left:50%;transform:translate(-50%)}.cat-body{width:56px;height:36px;background:linear-gradient(180deg,#ffe8d6,#f5cdb8);border-radius:50% 50% 44% 44%;position:relative}.cat-belly{position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:30px;height:16px;background:#fff5ee;border-radius:50%}.cat-paw{position:absolute;bottom:-6px;width:16px;height:10px;background:#f5cdb8;border-radius:50% 50% 45% 45%;z-index:1}.cat-paw-l{left:6px}.cat-paw-r{right:6px}.cat-paw:after{content:"";position:absolute;bottom:1px;left:50%;transform:translate(-50%);width:10px;height:5px;background:#fce4ec;border-radius:50%}.cat-head-wrap{position:absolute;top:0;left:50%;transform:translate(-50%)}.cat-head{width:60px;height:50px;background:linear-gradient(180deg,#ffe8d6,#f5cdb8);border-radius:50% 50% 46% 46%;position:relative}.cat-ear{position:absolute;top:-10px;width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:18px solid #f5cdb8}.cat-ear-l{left:4px;transform:rotate(-10deg)}.cat-ear-r{right:4px;transform:rotate(10deg)}.cat-ear-inner{position:absolute;top:8px;left:-6px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:10px solid #fbb8c4}.cat-eye{position:absolute;top:20px;width:10px;height:12px;background:#4a3f55;border-radius:50%;overflow:hidden}.cat-eye-l{left:13px}.cat-eye-r{right:13px}.cat-pupil{position:absolute;top:2px;left:2px;width:6px;height:7px;background:#2a1f35;border-radius:50%;transition:transform .12s ease}.cat-eye:after{content:"";position:absolute;top:2px;right:2px;width:3px;height:3px;background:#fff;border-radius:50%;z-index:2}.cat-nose{position:absolute;top:32px;left:50%;transform:translate(-50%);width:7px;height:5px;background:#e87ca0;border-radius:50% 50% 40% 40%}.cat-mouth{position:absolute;top:36px;left:50%;transform:translate(-50%);width:12px;height:5px;border-bottom:1.5px solid #c9918a;border-radius:0 0 50% 50%}.cat-whisker{position:absolute;width:16px;height:1px;background:#d4a299;transform-origin:right center}.cat-whisker.cat-wh-l1{top:30px;left:-8px;transform:rotate(-8deg)}.cat-whisker.cat-wh-l2{top:33px;left:-10px;transform:rotate(0)}.cat-whisker.cat-wh-l3{top:36px;left:-8px;transform:rotate(8deg)}.cat-whisker.cat-wh-r1{top:30px;right:-8px;transform:rotate(8deg);transform-origin:left center}.cat-whisker.cat-wh-r2{top:33px;right:-10px;transform:rotate(0);transform-origin:left center}.cat-whisker.cat-wh-r3{top:36px;right:-8px;transform:rotate(-8deg);transform-origin:left center}.cat-blush{position:absolute;top:28px;width:9px;height:5px;background:#e87ca040;border-radius:50%}.cat-blush-l{left:5px}.cat-blush-r{right:5px}@keyframes catBreathe{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-1.5px)}}@keyframes catBounce{0%{transform:translate(-50%) translateY(0)}to{transform:translate(-50%) translateY(-2px)}}@keyframes pawStep{0%{transform:translateY(0)}to{transform:translateY(-3px)}}@keyframes tailIdle{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes tailWalk{0%{transform:rotate(-15deg)}to{transform:rotate(15deg)}}.cat-speech{position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(8px) scale(.8);background:var(--color-card-bg);color:var(--color-text);padding:.4rem .75rem;border-radius:var(--radius-sm);font-size:.8rem;white-space:nowrap;box-shadow:var(--shadow-card);border:2px solid var(--color-pink-light);opacity:0;pointer-events:none;transition:all .25s ease;margin-bottom:8px}.cat-speech:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--color-card-bg)}.cat-speech.show{opacity:1;transform:translate(-50%) translateY(0) scale(1)}@media (max-width: 768px){.cat-sprite{transform:scale(.85)}.cat-pet[data-facing=right] .cat-sprite{transform:scaleX(-1) scale(.85)}}
