body {
    background-color: #f7d9df;
    text-align: center;
    font-family: Arial, "Microsoft YaHei", sans-serif;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    overflow-x: hidden;
}

.container {
    width: 90%;
    max-width: 500px;
    padding: 28px 0;
}

.image-stage {
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
    position: relative;
    display: block;
    transition: all 0.3s ease;
}

.animal-stage {
    display: block;
    width: 100%;
    height: auto;
    filter: drop-shadow(0 16px 18px rgba(104, 73, 91, 0.12));
    animation: gentleFloat 3.8s ease-in-out infinite;
}

.mood-layer {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.anger {
    position: absolute;
    right: 17%;
    top: 16%;
    width: 42px;
    height: 8px;
    border-radius: 999px;
    background: #d1515c;
    opacity: 0;
    transform-origin: left center;
    box-shadow: 0 1px 0 rgba(104, 73, 91, 0.25);
}

.anger-1 {
    transform: rotate(-45deg);
}

.anger-2 {
    top: 21%;
    right: 10%;
    transform: rotate(-5deg);
}

.anger-3 {
    top: 25%;
    right: 16%;
    transform: rotate(35deg);
}

.tear {
    position: absolute;
    top: 47%;
    width: 20px;
    height: 28px;
    border-radius: 60% 60% 65% 65%;
    background: linear-gradient(#9bd8ff, #4da9df);
    border: 2px solid rgba(104, 73, 91, 0.55);
    opacity: 0;
    transform: rotate(18deg);
}

.tear-left {
    left: 32%;
}

.tear-right {
    right: 32%;
    transform: rotate(-18deg);
}

.image-stage.angry .anger {
    opacity: 1;
}

.image-stage.crying .tear {
    opacity: 1;
}

.image-stage.crying .animal-stage {
    filter: saturate(0.95) brightness(0.98);
}

.floaty {
    animation: bob 2.8s ease-in-out infinite;
    transform-origin: 130px 120px;
}

.shadow {
    fill: rgba(104, 73, 91, 0.18);
}

.wool circle {
    fill: #fff8ee;
    stroke: #68495b;
    stroke-width: 4;
}

.face {
    fill: #ffe2c9;
    stroke: #68495b;
    stroke-width: 4;
}

.ear path:first-child {
    fill: #ffe2c9;
    stroke: #68495b;
    stroke-width: 4;
}

.ear .inner {
    fill: #f4a6b3;
    stroke: none;
}

.left-ear {
    animation: earLeft 2.4s ease-in-out infinite;
    transform-origin: 80px 86px;
}

.right-ear {
    animation: earRight 2.4s ease-in-out infinite;
    transform-origin: 180px 86px;
}

.eyes circle,
.legs rect {
    fill: #68495b;
}

.eyes path {
    fill: none;
    stroke: #2f2b2a;
    stroke-linecap: round;
    stroke-width: 8;
}

.mouth {
    fill: none;
    stroke: #68495b;
    stroke-linecap: round;
    stroke-width: 4;
}

.blush {
    fill: #ef91a3;
    opacity: 0.72;
}

.opening-heart {
    animation: heartPop 2.5s ease-in-out infinite;
    transform-origin: 130px 50px;
}

.opening-heart path {
    fill: #d4818e;
}

.bouquet .stem {
    fill: none;
    stroke: #4f9a73;
    stroke-linecap: round;
    stroke-width: 4;
}

.bouquet .rose {
    stroke: #68495b;
    stroke-width: 3;
}

.bouquet .white {
    fill: #fffdf5;
}

.bouquet .blue {
    fill: #78bfe8;
}

.bouquet .wrap {
    fill: #b7d9f3;
    stroke: #68495b;
    stroke-linejoin: round;
    stroke-width: 3;
}

.bouquet .wrap-line {
    fill: none;
    stroke: #5f7891;
    stroke-linecap: round;
    stroke-width: 3;
}

.holding-paws ellipse {
    fill: #fff8ee;
    stroke: #68495b;
    stroke-width: 4;
}

.anger-mark,
.tears {
    opacity: 0;
    transition: opacity 0.2s ease;
}

.anger-mark path {
    fill: none;
    stroke: #d1515c;
    stroke-linecap: round;
    stroke-width: 6;
}

.tears path {
    fill: #78bfe8;
    stroke: #68495b;
    stroke-width: 2;
}

.sheep.shocked .eyes circle {
    r: 8px;
}

.sheep.think .mouth {
    d: path("M99 109 Q110 104 121 109");
}

.sheep.angry .floaty {
    animation: shake 0.22s ease-in-out infinite;
}

.sheep.angry .anger-mark {
    opacity: 1;
}

.sheep.angry .mouth,
.sheep.crying .mouth {
    d: path("M98 116 Q110 105 122 116");
}

.sheep.crying .tears {
    opacity: 1;
}

h1 {
    font-size: clamp(25px, 5vw, 30px);
    color: #68495b;
    margin: 22px 0 18px;
    font-weight: 800;
    line-height: 1.28;
    transition: all 0.3s ease;
}

.buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 34px;
    min-height: 76px;
    padding: 0 18px;
}

button {
    font-size: clamp(18px, 4vw, 18px);
    min-width: 116px;
    padding: 12px 24px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    margin: 10px;
    transition: all 0.3s ease;
    box-shadow: 0 8px 16px rgba(104, 73, 91, 0.16);
    font-weight: 700;
}

button:hover {
    transform: translateY(-2px);
}

#yes {
    background-color: #df7f91;
    color: white;
    transform-origin: right center;
    position: relative;
    z-index: 1;
}

#no {
    background-color: #6784b1;
    color: white;
    position: relative;
    transform-origin: left center;
    z-index: 2;
    white-space: nowrap;
}

.yes-screen {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    background-color: #f7d9df;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px;
    box-sizing: border-box;
}

.yes-text {
    color: #68495b;
    font-size: clamp(30px, 7vw, 42px);
    margin: 0 20px 16px;
    line-height: 1.2;
    font-weight: 800;
}

.yes-image {
    width: min(92vw, 640px);
    max-height: 76vh;
    height: auto;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 18px 22px rgba(104, 73, 91, 0.13));
}

.hug-scene {
    width: 76%;
    max-width: 460px;
}

.hug-scene svg {
    display: block;
    width: 100%;
    height: auto;
}

.heart-pop {
    animation: heartPop 2.4s ease-in-out infinite;
    transform-origin: center;
}

.cat-hand,
.sheep-hand {
    animation: handPulse 3.2s ease-in-out infinite;
    transform-box: fill-box;
    transform-origin: center;
}

.sheep-hand {
    animation-delay: 0.2s;
}

.cat-face,
.cat-ear,
.cat-body,
.cat-leg {
    fill: #ffd2dc;
    stroke: #68495b;
    stroke-width: 4;
}

.sheep-body,
.sheep-leg,
.sheep-hug-ear {
    fill: #fff8ee;
    stroke: #68495b;
    stroke-width: 4;
}

.cat-inner {
    fill: #f39aaa;
}

.cat-stripe {
    fill: none;
    stroke: #c9c9bf;
    stroke-linecap: round;
    stroke-width: 8;
}

.cat-eye,
.cat-hand,
.sheep-eye,
.sheep-hand {
    fill: #68495b;
}

.cat-paw {
    fill: #ffd2dc;
    stroke: #68495b;
    stroke-width: 4;
}

.sheep-paw {
    fill: #fff8ee;
    stroke: #68495b;
    stroke-width: 4;
}

.candle-row {
    animation: candleGlow 2.8s ease-in-out infinite;
}

.candle-wax {
    fill: #fff8c7;
    stroke: #a66b50;
    stroke-width: 3;
}

.flame {
    fill: #ffd56b;
    stroke: #ffefb1;
    stroke-width: 3;
}

.hug-line {
    fill: none;
    stroke: #68495b;
    stroke-linecap: round;
    stroke-width: 4;
}

@keyframes bob {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

@keyframes gentleFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

@keyframes earLeft {
    0%, 100% { transform: rotate(0deg); }
    50% { transform: rotate(-5deg); }
}

@keyframes earRight {
    0%, 100% { transform: rotate(0deg); }
    50% { transform: rotate(5deg); }
}

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(4px); }
}

@keyframes heartPop {
    0%, 100% { transform: scale(1); opacity: 0.85; }
    50% { transform: scale(1.18); opacity: 1; }
}

@keyframes hugSway {
    0%, 100% { transform: rotate(0deg); }
    50% { transform: rotate(2deg); }
}

@keyframes handPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.12); }
}

@keyframes candleGlow {
    0%, 100% { opacity: 0.88; }
    50% { opacity: 1; }
}

@media (min-width: 768px) {
    body {
        display: block;
    }

    .container {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: auto;
        max-width: none;
    }

    .animal-stage {
        width: 100%;
    }

    .image-stage {
        width: 360px;
    }

    h1 {
        font-size: 28px;
    }

    button {
        font-size: 18px;
    }
}
