/**
 * love.css
 * http://616.romeozhou.com
 * Copyright 2026, design by romeozhou.com
 */
@charset "UTF-8";
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        html {
            height:100%;
        }
        body {
            height: 100%;
            font-family: "Microsoft YaHei", sans-serif;
            perspective: 1200px;
            -webkit-perspective:1200px;
            background: linear-gradient(#0a0420, #241040, #401a5c);
        }

        /* ==========礼物开箱前置动画========== */
        .gift-overlay {
            position: fixed;
            inset: 0;
            background: #1a103d;
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 9999;
            transition: opacity 0.6s ease, visibility 0.6s;
        }
        .gift-overlay.hide {
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
        }
        .gift-box {
            width: 140px;
            height: 140px;
            max-width: 45vw;
            cursor: pointer;
            position: relative;
            transform-origin: center bottom;
        }
        .gift-box.bounce {
            animation: bounce 0.5s ease-in-out;
        }
        @keyframes bounce {
            0% { transform: translateY(0) scale(1); }
            30% { transform: translateY(-40px) scale(1.05); }
            60% { transform: translateY(0) scale(0.95); }
            80% { transform: translateY(-15px) scale(1.02); }
            100% { transform: translateY(0) scale(1); }
        }
        .gift-box.open .gift-lid{
            transform: translateY(-60px) rotate(-15deg);
            transition: all 0.4s ease-out;
        }
        .gift-base {
            width: 100%;
            height: 100px;
            background: #e63946;
            border-radius: 8px;
            position: absolute;
            bottom: 0;
        }
        .gift-lid {
            width: 110%;
            height: 32px;
            background: #ff5c6a;
            position: absolute;
            top: 0;
            left: -5%;
            border-radius: 6px;
            transition: none;
        }
        .gift-ribbon-v {
            position: absolute;
            width: 12px;
            height: 100%;
            background: #ffd700;
            left: 50%;
            transform: translateX(-50%);
            z-index:2;
        }
        .gift-ribbon-h {
            position: absolute;
            width: 100%;
            height:12px;
            background:#ffd700;
            top:50%;
            transform: translateY(-50%);
            z-index:2;
        }
        .confetti-wrap {
            position: fixed;
            inset:0;
            pointer-events:none;
            z-index:10000;
        }
        .confetti {
            position:absolute;
            width:10px;
            height:10px;
            border-radius:2px;
            will-change: transform;
            -webkit-will-change:transform;
        }
        /* ====================================== */

        .time-count {
            margin: 15px auto;
            font-size: 22px;
            color: #ffd0e3;
            text-shadow: 0 0 6px #ff66aa;
        }
        .time-num {
            color: #fff;
            font-size: 26px;
            padding: 0 6px;
        }

        #sakura {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 1;
            pointer-events: none;
        }
        .title-box {
            position: relative;
            z-index: 9;
            text-align: center;
            padding-top: 40px;
            color: #fff;
        }
        .main-title {
            font-size: 36px;
            letter-spacing: 4px;
            text-shadow: 0 0 10px #ff88bb, 0 0 20px #ff4499;
            margin-bottom: 10px;
        }
        .sub-text {
            font-size: 18px;
            color: #ffc8e0;
            letter-spacing: 2px;
        }

        /*3D相册容器，关键修复：加上webkit前缀，preserve‑3d必须开启*/
        .wrap {
            width: 320px;
            height: 420px;
            position: absolute;
            left: 50%;
            top: 55%;
            transform: translate(-50%, -50%);
            -webkit-transform: translate(-50%, -50%);
            transform-style: preserve-3d;
            -webkit-transform-style: preserve-3d;
            animation: rotate 25s linear infinite;
            -webkit-animation: rotate 25s linear infinite;
        }
        .photo-item {
            width: 100%;
            height: 100%;
            position: absolute;
            left: 0;
            top: 0;
            border: 4px solid #fff;
            border-radius: 12px;
            box-shadow: 0 0 25px rgba(255,130,180,0.6);
            overflow: hidden;
            background: #fff;
            backface-visibility: hidden;
            -webkit-backface-visibility:hidden;
        }
        .photo-item img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        /*电脑端角度半径*/
        .photo1 { transform: rotateY(0deg) translateZ(420px);-webkit-transform: rotateY(0deg) translateZ(420px); }
        .photo2 { transform: rotateY(60deg) translateZ(420px);-webkit-transform: rotateY(60deg) translateZ(420px); }
        .photo3 { transform: rotateY(120deg) translateZ(420px);-webkit-transform: rotateY(120deg) translateZ(420px); }
        .photo4 { transform: rotateY(180deg) translateZ(420px);-webkit-transform: rotateY(180deg) translateZ(420px); }
        .photo5 { transform: rotateY(240deg) translateZ(420px);-webkit-transform: rotateY(240deg) translateZ(420px); }
        .photo6 { transform: rotateY(300deg) translateZ(420px);-webkit-transform: rotateY(300deg) translateZ(420px); }

        @keyframes rotate {
            0% { transform: translate(-50%, -50%) rotateY(0deg); }
            100% { transform: translate(-50%, -50%) rotateY(360deg); }
        }
        @-webkit-keyframes rotate {
            0% { -webkit-transform: translate(-50%, -50%) rotateY(0deg); }
            100% { -webkit-transform: translate(-50%, -50%) rotateY(360deg); }
        }
        .wrap:hover {
            animation-play-state: paused;
            -webkit-animation-play-state: paused;
        }

        .love-tip {
            position: fixed;
            bottom: 30px;
            width: 100%;
            text-align: center;
            z-index: 9;
            color: #ffb8d6;
            font-size: 20px;
            letter-spacing: 3px;
            text-shadow: 0 0 8px #ff5599;
        }
        .heart {
            color: #ff2266;
            animation: beat 1s infinite alternate;
        }
        @keyframes beat {
            0% { transform: scale(1); }
            100% { transform: scale(1.3); }
        }

        /*手机端：删掉无效css变量，直接写死角度和缩小translateZ半径！*/
        @media screen and (max-width:768px) {
            .wrap {
                width: 200px;
                height: 260px;
            }
            .photo1 { transform: rotateY(0deg) translateZ(240px);-webkit-transform: rotateY(0deg) translateZ(240px); }
            .photo2 { transform: rotateY(60deg) translateZ(240px);-webkit-transform: rotateY(60deg) translateZ(240px); }
            .photo3 { transform: rotateY(120deg) translateZ(240px);-webkit-transform: rotateY(120deg) translateZ(240px); }
            .photo4 { transform: rotateY(180deg) translateZ(240px);-webkit-transform: rotateY(180deg) translateZ(240px); }
            .photo5 { transform: rotateY(240deg) translateZ(240px);-webkit-transform: rotateY(240deg) translateZ(240px); }
            .photo6 { transform: rotateY(300deg) translateZ(240px);-webkit-transform: rotateY(300deg) translateZ(240px); }
            .main-title {
                font-size: 24px;
            }
        }
  