*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:"PingFang SC","Microsoft YaHei",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#ffe9d6;color:#2f2430;overflow:hidden}img{display:block;width:100%;height:100%;object-fit:cover}.deck{height:100vh;overflow-y:auto;scroll-snap-type:y mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.page{position:relative;min-height:100vh;scroll-snap-align:start;overflow:hidden;padding:calc(28px + env(safe-area-inset-top)) 18px calc(24px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#fff4da,#ffd7eb 45%,#d5f3ff)}.page:before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 12% 20%,rgba(255,153,102,.35),transparent 32%),radial-gradient(circle at 85% 15%,rgba(255,225,85,.35),transparent 28%),radial-gradient(circle at 70% 85%,rgba(109,216,255,.28),transparent 30%);animation:floatBg 12s ease-in-out infinite alternate;pointer-events:none}@keyframes floatBg{from{transform:translate3d(-2%,0,0) rotate(0deg)}to{transform:translate3d(2%,1%,0) rotate(5deg)}}.bg-image{position:absolute;inset:0;z-index:0}.bg-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.46))}.cover-card,.thanks-card,.page-content{position:relative;z-index:1;width:min(92vw,780px)}.cover-card,.thanks-card{padding:28px 24px;border-radius:28px;background:rgba(255,255,255,.82);box-shadow:0 24px 70px rgba(78,38,20,.24);backdrop-filter:blur(14px);text-align:center;border:1px solid rgba(255,255,255,.7)}.eyebrow{margin:0 0 8px;color:#ff6b35;font-size:12px;letter-spacing:.2em;font-weight:800}.cover-card h1{font-size:42px;line-height:1.05;margin:0 0 14px;color:#2c2230;text-shadow:0 2px 0 rgba(255,255,255,.35)}.subtitle{font-size:16px;line-height:1.8;margin:0 auto 22px;color:#5e5360}.primary-btn{appearance:none;border:0;border-radius:999px;padding:13px 22px;background:linear-gradient(135deg,#ff7a3d,#ffca3a);color:white;font-weight:900;font-size:15px;box-shadow:0 12px 28px rgba(255,122,61,.33)}.primary-btn:active{transform:scale(.98)}.primary-btn.ghost{background:rgba(255,255,255,.92);color:#ff6b35;border:1px solid rgba(255,107,53,.25)}.swipe-tip{position:absolute;z-index:2;left:50%;bottom:20px;transform:translateX(-50%);color:white;font-size:13px;letter-spacing:.2em;opacity:.9;animation:bounce 1.4s infinite}.swipe-tip:after{content:"";display:block;width:10px;height:10px;border-right:2px solid white;border-bottom:2px solid white;transform:rotate(45deg);margin:8px auto 0}@keyframes bounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}.music-toggle,.page-indicator{position:fixed;z-index:10;right:14px;border:0;border-radius:999px;background:rgba(255,255,255,.88);box-shadow:0 8px 26px rgba(61,34,12,.16);backdrop-filter:blur(12px)}.music-toggle{top:calc(14px + env(safe-area-inset-top));width:42px;height:42px;font-size:20px;color:#ff7a3d;font-weight:900}.music-toggle.playing{animation:spin 4s linear infinite;background:linear-gradient(135deg,#fff,#ffe0a8)}@keyframes spin{to{transform:rotate(360deg)}}.page-indicator{top:calc(62px + env(safe-area-inset-top));padding:7px 11px;font-size:12px;color:#8a5d24}.page-content{padding:22px 16px}.number-badge{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#ff7a3d,#ffcb45);color:white;font-size:22px;font-weight:1000;box-shadow:0 12px 30px rgba(255,122,61,.25);margin-bottom:12px}.page-content h2{font-size:34px;line-height:1.1;margin:0 0 12px;color:#352431}.lead{font-size:16px;line-height:1.78;margin:0 0 18px;color:#5b4a54}.hero-photo{height:56vh;min-height:360px;border-radius:28px;overflow:hidden;box-shadow:0 24px 60px rgba(72,54,34,.24);border:8px solid rgba(255,255,255,.8);transform:rotate(-.5deg)}.hero-photo.portrait{height:62vh}.duo-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px}.duo-layout figure,.triptych figure,.stack-layout figure,.polaroid-row figure,.masonry figure{margin:0;overflow:hidden;border-radius:24px;box-shadow:0 18px 44px rgba(66,37,26,.18);border:7px solid rgba(255,255,255,.76);background:#fff}.duo-layout figure{height:54vh}.duo-layout.square figure{height:48vh}.triptych{display:grid;grid-template-columns:1fr 1fr;gap:12px}.triptych figure{height:27vh}.triptych figure:first-child{grid-column:1/3;height:32vh}.stack-layout{position:relative;height:60vh}.stack-layout .big{height:52vh;width:82%;transform:rotate(-2deg)}.stack-layout .small{position:absolute;right:0;bottom:0;height:28vh;width:55%;transform:rotate(3deg)}.blue{background:linear-gradient(145deg,#e4f8ff,#f8eefb)}.warm{background:linear-gradient(145deg,#fff0d1,#ffdcd1)}.peach{background:linear-gradient(145deg,#fff1df,#ffe2ed)}.green{background:linear-gradient(145deg,#eeffe8,#fff2cc)}.candy{background:linear-gradient(145deg,#fff3dc,#ffd7f0,#d9f6ff)}.paper{background:#f9ecd8}.polaroid-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:end}.polaroid-row figure{height:53vh;background:white;padding:10px 10px 44px;border:0;border-radius:8px;transform:rotate(-2deg);position:relative}.polaroid-row figure:nth-child(2){transform:rotate(2deg);height:58vh}.polaroid-row figcaption{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-weight:900;color:#6a4a32}.masonry{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:center}.masonry figure{height:36vh}.masonry figure.tall{height:58vh}.night{background:#0c1320}.night:before{background:radial-gradient(circle at 75% 16%,rgba(255,185,73,.22),transparent 22%),linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.7))}.light-text h2,.light-text .lead{color:white;text-shadow:0 2px 12px rgba(0,0,0,.35)}.light-text .lead{opacity:.93}.night-photo{border-color:rgba(255,255,255,.2);box-shadow:0 28px 70px rgba(0,0,0,.55)}.vote-page{align-items:flex-start;overflow-y:auto;background:linear-gradient(160deg,#fff8d8 0%,#ffe4ed 50%,#dff8ff 100%)}.vote-content{padding-top:46px;padding-bottom:40px}.vote-status{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:999px;background:rgba(255,255,255,.7);font-size:13px;color:#6d4c41;margin-bottom:14px;box-shadow:0 8px 24px rgba(102,66,33,.08)}.vote-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.vote-card{border-radius:22px;background:rgba(255,255,255,.82);overflow:hidden;box-shadow:0 16px 40px rgba(80,51,41,.15);border:1px solid rgba(255,255,255,.8)}.vote-card img{height:150px}.vote-body{padding:12px}.vote-body h3{margin:0 0 5px;font-size:18px;color:#3b2830}.vote-body p{margin:0 0 10px;min-height:42px;font-size:12px;line-height:1.55;color:#6d5b61}.vote-btn{width:100%;border:0;border-radius:14px;padding:10px 8px;background:linear-gradient(135deg,#ff7a3d,#ffcb45);color:#fff;font-size:14px;font-weight:900;box-shadow:0 8px 18px rgba(255,122,61,.26)}.vote-card.voted{outline:3px solid #ff9f1c}.bar{height:8px;background:#f2dfd2;border-radius:999px;overflow:hidden;margin-top:10px}.bar span{display:block;height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,#ff7a3d,#ffcb45);transition:width .6s ease}.count{display:block;margin-top:5px;color:#8c6a5a}.thanks-page .bg-image:after{background:linear-gradient(180deg,rgba(255,128,64,.18),rgba(0,0,0,.5))}.thanks-card h2{font-size:38px;margin:0 0 12px}.thanks-card p{line-height:1.9;color:#574a50}.reveal{animation:rise .8s ease both}@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@media (max-width:700px){.cover-card h1{font-size:34px}.page-content h2{font-size:30px}.lead{font-size:15px}.duo-layout,.polaroid-row,.masonry{grid-template-columns:1fr}.duo-layout figure{height:28vh}.duo-layout.square figure{height:30vh}.polaroid-row figure,.polaroid-row figure:nth-child(2){height:34vh}.masonry figure,.masonry figure.tall{height:34vh}.stack-layout{height:58vh}.stack-layout .big{width:100%;height:40vh}.stack-layout .small{height:26vh;width:66%}.vote-grid{grid-template-columns:1fr 1fr;gap:10px}.vote-card img{height:118px}.vote-body{padding:10px}.vote-body h3{font-size:16px}.vote-body p{font-size:11px;min-height:50px}.hero-photo{height:52vh;min-height:300px}}@media (max-width:390px){.vote-grid{grid-template-columns:1fr}.vote-card img{height:170px}.vote-body p{min-height:auto}.page{padding-left:14px;padding-right:14px}.cover-card{padding:24px 18px}.hero-photo{height:48vh}.page-content h2{font-size:27px}}
