:root{--red:#7f1d2d;--red-dark:#50101c;--gold:#e4bd61;--cream:#fff0cf;--ink:#2c2020;--safe:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#281017;font-family:"PingFang SC","Microsoft YaHei",sans-serif;touch-action:none;user-select:none}button,input{font:inherit}.phone-stage{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(circle at 50% 10%,#7a3040,#281017 74%)}.game-shell{position:relative;width:min(100vw,430px);height:100dvh;max-height:932px;overflow:hidden;background:#c8a277;box-shadow:0 0 70px #14070b}#game-canvas{display:block;width:100%;height:calc(100% - 142px - var(--safe));image-rendering:pixelated}
.game-hud{position:absolute;z-index:8;left:0;right:0;top:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;padding:calc(11px + env(safe-area-inset-top,0px)) 12px 24px;color:#fff6dd;background:linear-gradient(rgba(43,9,16,.94),rgba(77,15,28,.72),transparent)}.game-hud small{display:block;color:var(--gold);font-size:8px;letter-spacing:.18em}.game-hud strong{display:block;max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.game-hud span{font-size:10px;color:#ff9fab}.mission-title{text-align:center}.mission-title strong{max-width:none;font:700 17px "STKaiti","KaiTi",serif;letter-spacing:.12em}.yanze-status{text-align:right}.mission-toast{position:absolute;z-index:9;left:50%;top:76px;transform:translateX(-50%);width:max-content;max-width:88%;padding:7px 14px;border:1px solid rgba(255,240,207,.4);border-radius:20px;background:rgba(54,13,22,.78);color:#fff1d4;font-size:10px;letter-spacing:.08em;transition:.25s}.mission-toast.pop{transform:translateX(-50%) scale(1.05);background:#852437}.enemy-bar{position:absolute;z-index:9;left:50%;top:106px;transform:translateX(-50%);width:62%;color:#fff1d4;text-align:center;font-size:9px}.enemy-bar i{display:block;height:7px;margin-top:4px;padding:1px;border:1px solid var(--gold);background:#351018}.enemy-bar b{display:block;height:100%;width:100%;background:linear-gradient(90deg,#f3c960,#d43a4d);transition:width .15s}
.controls{position:absolute;z-index:10;left:0;right:0;bottom:0;height:calc(142px + var(--safe));padding:17px 19px calc(18px + var(--safe));display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#641522,#430d17);border-top:3px solid var(--gold)}.direction-controls,.action-controls{display:flex;gap:12px}.control-tip{position:absolute;left:50%;top:14px;transform:translateX(-50%);display:grid;gap:2px;text-align:center;pointer-events:none}.control-tip b{color:#ffe4a0;font-size:10px;letter-spacing:.16em}.control-tip span{color:rgba(255,239,194,.7);font-size:8px;white-space:nowrap}.controls button{width:64px;height:64px;border:1px solid rgba(255,240,207,.55);border-radius:17px;background:linear-gradient(145deg,#962a3c,#641522);box-shadow:inset 0 2px rgba(255,255,255,.14),0 5px #29070d;color:#fff1d5;font-size:21px;font-weight:700}.controls button.active,.controls button:active{transform:translateY(4px);box-shadow:inset 0 2px 5px #350811,0 1px #29070d}.action-controls{margin-left:auto}.action-controls button{width:76px;height:76px;border-radius:50%}.action-controls span{display:grid;place-items:center;width:43px;height:43px;margin:auto;border:1px solid var(--gold);border-radius:50%;font:700 20px "STKaiti","KaiTi",serif}.attack-control{background:linear-gradient(145deg,#b47d31,#73421f)!important}
.full-panel{position:absolute;z-index:20;inset:0 0 calc(142px + var(--safe));display:flex;flex-direction:column;align-items:center;justify-content:center;padding:26px;text-align:center;color:var(--cream);background:linear-gradient(155deg,rgba(67,11,23,.98),rgba(126,27,43,.98) 56%,rgba(59,9,20,.99));transition:opacity .35s,transform .35s}.hidden{opacity:0!important;pointer-events:none!important;transform:scale(1.03)}.full-panel:after{content:"";position:absolute;inset:15px;border:1px solid rgba(228,189,97,.38);pointer-events:none}.eyebrow{position:relative;z-index:3;margin:0 0 12px;color:var(--gold);font:700 9px Georgia,serif;letter-spacing:.28em}.gold-button,.red-button{position:relative;z-index:4;min-width:225px;border:1px solid var(--gold);padding:13px 22px;background:var(--gold);box-shadow:4px 4px #310910;color:#54101d;font-weight:700;letter-spacing:.12em}.gold-button:active,.red-button:active{transform:translate(3px,3px);box-shadow:1px 1px #310910}.gold-button span,.red-button span{margin-left:10px}.text-button,.skip-intro{position:relative;z-index:4;border:0;background:transparent;color:rgba(255,240,207,.6);font-size:10px;text-decoration:underline;text-underline-offset:4px}
.intro-panel{overflow:hidden;background:linear-gradient(#350a15,#7d1d30 58%,#3c0916)}.curtain{position:absolute;z-index:8;top:0;bottom:0;width:54%;background:repeating-linear-gradient(90deg,#5b0e1d 0 18px,#761629 18px 36px);box-shadow:0 0 25px #21050b;animation:curtainOpen 1.2s .2s ease-out forwards}.curtain-left{left:0;border-right:4px solid var(--gold)}.curtain-right{right:0;border-left:4px solid var(--gold)}.intro-moon{position:absolute;right:13%;top:15%;width:78px;height:78px;border-radius:50%;background:#d69e76;box-shadow:0 0 35px rgba(231,184,119,.2);opacity:0;animation:fadeUp .8s 1s forwards}.intro-cloud{position:absolute;width:90px;height:11px;background:rgba(255,231,196,.11);box-shadow:20px -9px rgba(255,231,196,.11),42px 0 rgba(255,231,196,.11);opacity:0;animation:fadeUp .8s 1.2s forwards}.cloud-one{left:-10px;top:25%}.cloud-two{right:20px;bottom:29%;transform:scale(.7)}.procession{position:absolute;z-index:2;left:-260px;bottom:21%;display:flex;align-items:flex-end;gap:19px;animation:processionWalk 3s 1s ease-in-out forwards}.lantern-man{position:relative;width:24px;height:45px;background:#252029;border:3px solid #171016}.lantern-man:before{content:"";position:absolute;left:4px;top:-18px;width:13px;height:15px;background:#e9b992;border:3px solid #171016}.lantern-man:after{content:"";position:absolute;left:27px;top:-20px;width:2px;height:42px;background:#21151a}.lantern-man i{position:absolute;left:22px;top:-30px;width:25px;height:28px;display:grid;place-items:center;background:#a92335;border:2px solid #e5bc61;color:#ffd97f;font:normal 13px serif}.second{transform:scaleX(-1)}.second i{transform:scaleX(-1)}.palanquin{position:relative;width:74px;height:48px;border:4px solid #38121a;background:#a82336;box-shadow:inset 0 0 0 4px #dfb55b}.palanquin:before{content:"";position:absolute;left:-15px;top:-18px;width:96px;height:18px;background:#671220;clip-path:polygon(12% 100%,0 0,100% 0,88% 100%)}.palanquin:after{content:"";position:absolute;left:-30px;right:-30px;bottom:-8px;height:4px;background:#dfb55b}.palanquin b{display:grid;place-items:center;height:100%;color:#f2d078;font:25px serif}.pixel-groom{position:relative;width:30px;height:45px;border:3px solid #1c1115;background:#9e2134;box-shadow:inset 0 -18px #771628}.pixel-groom:before{content:"";position:absolute;left:5px;top:-17px;width:14px;height:16px;border:3px solid #1c1115;background:#e9b997}.pixel-groom:after{content:"";position:absolute;left:4px;top:-20px;width:18px;height:6px;background:#1c1115}.intro-copy{position:relative;z-index:4;margin-top:-120px;opacity:0;animation:fadeUp .8s 2.1s forwards}.intro-copy p{margin:0;color:var(--gold);font-size:9px;letter-spacing:.3em}.intro-copy h1{margin:12px 0 8px;font:700 47px "STKaiti","KaiTi",serif;letter-spacing:.12em;text-shadow:0 4px #3a0914}.intro-copy h1 span{color:#f0c666}.intro-copy strong{font-size:11px;letter-spacing:.12em;color:rgba(255,240,207,.75)}.intro-line{width:0;height:1px;margin:12px auto;background:var(--gold);animation:lineGrow .8s 2.7s forwards}.intro-enter{position:absolute;bottom:55px;opacity:0;animation:fadeUp .6s 3.6s forwards}.skip-intro{position:absolute;right:25px;top:calc(18px + env(safe-area-inset-top,0px));color:rgba(255,240,207,.45);text-decoration:none}.intro-panel.intro-skipped *{animation-duration:.01ms!important;animation-delay:0s!important}
.profile-panel h2,.briefing-panel h2,.gameover-panel h2,.result-panel h2{position:relative;z-index:3;margin:0;color:#fff0cf;font:700 33px "STKaiti","KaiTi",serif}.profile-lead{position:relative;z-index:3;margin:8px 0 22px;color:rgba(255,240,207,.64);font-size:11px}.profile-panel form{position:relative;z-index:3;width:100%;max-width:310px}.profile-panel fieldset{border:0;margin:0 0 20px;padding:0}.profile-panel legend{margin:0 auto 12px;color:var(--gold);font-size:10px;letter-spacing:.18em}.gender-options{display:grid;grid-template-columns:1fr 1fr;gap:13px}.gender-options input{position:absolute;opacity:0}.gender-options label>span{height:126px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;border:1px solid rgba(228,189,97,.35);background:rgba(255,255,255,.04);color:rgba(255,240,207,.6)}.gender-options input:checked+span{border-color:var(--gold);background:rgba(228,189,97,.13);color:#fff0cf;box-shadow:inset 0 0 0 3px rgba(228,189,97,.1)}.gender-options b{font-size:12px;letter-spacing:.15em}.profile-pixel{position:relative;width:32px;height:45px;border:3px solid #201217;background:#35445c;box-shadow:inset 0 -17px #202d43}.profile-pixel:before{content:"";position:absolute;left:5px;top:-18px;width:16px;height:17px;border:3px solid #201217;background:#e9b997}.profile-pixel:after{content:"";position:absolute;left:3px;top:-21px;width:22px;height:7px;background:#201217}.female-pixel{background:#a82b4b;box-shadow:inset 0 -7px #e3b860}.female-pixel:after{left:1px;width:24px;height:10px;border-radius:8px 8px 0 0}.name-field{display:block;margin-bottom:22px;text-align:left}.name-field span{display:block;margin-bottom:8px;color:var(--gold);font-size:10px;letter-spacing:.1em}.name-field input{width:100%;border:0;border-bottom:1px solid rgba(228,189,97,.55);border-radius:0;padding:12px 4px;background:transparent;color:#fff4dc;outline:none;font-size:16px;text-align:center}.name-field input::placeholder{color:rgba(255,240,207,.25)}.privacy-note{margin:13px 0 0;color:rgba(255,240,207,.35);font-size:9px}
.briefing-panel{justify-content:center}.briefing-panel h2 span{color:var(--gold)}.mission-card{position:relative;z-index:3;width:100%;max-width:315px;display:flex;align-items:center;gap:20px;margin:22px 0;padding:22px 18px;border:1px solid rgba(228,189,97,.42);background:rgba(26,4,10,.2);text-align:left}.briefing-groom{flex:0 0 30px;margin-left:8px}.mission-card small{display:block;color:var(--gold);font-size:9px;letter-spacing:.16em}.mission-card strong{display:block;margin:4px 0;color:#fff1d5;font-size:18px}.mission-card p{margin:0;color:rgba(255,240,207,.55);font-size:10px;line-height:1.65}.briefing-rules{position:relative;z-index:3;width:100%;max-width:300px;margin:0 0 25px;padding:0;list-style:none;text-align:left}.briefing-rules li{display:flex;align-items:center;gap:12px;margin:10px 0;color:rgba(255,240,207,.72);font-size:11px}.briefing-rules i{width:27px;height:27px;display:grid;place-items:center;border:1px solid var(--gold);color:var(--gold);font:normal 9px Georgia,serif}
.dialog-panel{position:absolute;z-index:25;left:13px;right:13px;bottom:calc(156px + var(--safe));min-height:112px;display:flex;align-items:center;gap:13px;padding:15px;border:2px solid var(--gold);background:rgba(59,10,20,.96);color:#fff0d1;box-shadow:5px 5px #25060c;transition:.25s}.dialog-avatar{flex:0 0 48px;height:48px;display:grid;place-items:center;border:2px solid #fff1ca;background:#9d2638;color:#f5ce75;font:700 24px "STKaiti","KaiTi",serif}.dialog-panel>div:nth-child(2){flex:1;text-align:left}.dialog-panel strong{color:var(--gold);font-size:12px}.dialog-panel p{margin:4px 0 0;font-size:10px;line-height:1.6}.dialog-panel button{align-self:flex-end;border:0;padding:7px 9px;background:var(--gold);color:#54101d;font-size:9px;font-weight:700}.gameover-panel p,.result-panel>p{position:relative;z-index:3;max-width:280px;color:rgba(255,240,207,.65);font-size:11px;line-height:1.8}.result-seal,.invite-seal{position:relative;z-index:3;width:55px;height:55px;display:grid;place-items:center;margin-bottom:10px;border:1px solid var(--gold);color:var(--gold);font:34px serif}.result-stats{position:relative;z-index:3;width:100%;max-width:280px;display:flex;margin:10px 0 22px;border-top:1px solid rgba(228,189,97,.35);border-bottom:1px solid rgba(228,189,97,.35)}.result-stats span{flex:1;padding:11px;color:rgba(255,240,207,.5);font-size:9px}.result-stats span+span{border-left:1px solid rgba(228,189,97,.35)}.result-stats b{display:block;margin-bottom:3px;color:var(--gold);font:700 20px Georgia,serif}.result-panel .text-button{margin-top:16px}.celebrate-burst{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 -38px var(--gold),27px -27px #fff,38px 0 #d84b59,27px 27px var(--gold),0 38px #fff,-27px 27px #d84b59,-38px 0 var(--gold),-27px -27px #fff;animation:burst 1.5s infinite}
.invite-panel{z-index:35;bottom:0;justify-content:flex-start;padding-top:46px;padding-bottom:calc(30px + var(--safe));overflow-y:auto;background:linear-gradient(#fff4dc,#ead8b3);color:var(--ink)}.invite-panel:after{border-color:rgba(127,29,45,.35)}.close-invite{position:absolute;z-index:4;right:23px;top:23px;width:34px;height:34px;border:1px solid rgba(127,29,45,.3);background:transparent;color:var(--red);font-size:20px}.invite-panel .eyebrow{color:var(--red)}.invite-panel h2{position:relative;z-index:3;margin:2px 0 7px;color:var(--red-dark);font:700 29px "STKaiti","KaiTi",serif}.invite-panel h2 i{color:#bd9347;font-family:Georgia,serif}.invite-copy{position:relative;z-index:3;margin:0 0 20px;color:#806b59;font-size:10px;letter-spacing:.1em}.invite-date{position:relative;z-index:3;width:100%;max-width:290px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:13px 0;border-top:1px solid #c49c57;border-bottom:1px solid #c49c57}.invite-date small{font-size:9px;color:#806b59}.invite-date strong{padding:0 15px;border-left:1px solid #c49c57;border-right:1px solid #c49c57;color:var(--red);font-size:17px}.invite-place{position:relative;z-index:3;margin:22px 0}.invite-place span{color:#b58b42;font-size:9px;letter-spacing:.2em}.invite-place strong{display:block;margin:6px 0;color:var(--red-dark)}.invite-place p{margin:0;color:#806b59;font-size:10px}.red-button{background:var(--red);border-color:var(--red);color:#fff0d1;box-shadow:4px 4px #d0aa62}.invite-panel #rsvp-status{position:relative;z-index:3;min-height:20px;color:var(--red);font-size:10px}
@keyframes curtainOpen{to{width:6%;opacity:.75}}@keyframes processionWalk{0%{left:-260px}100%{left:calc(50% - 105px)}}@keyframes fadeUp{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}@keyframes lineGrow{to{width:190px}}@keyframes burst{0%{opacity:0;transform:scale(.1)}40%,70%{opacity:1}100%{opacity:0;transform:scale(1.15)}}
@media(min-width:700px){.game-shell{height:min(100dvh,880px);border:4px solid #bd8c3a}}@media(max-height:700px){.controls{height:122px}.game-shell #game-canvas{height:calc(100% - 122px - var(--safe))}.full-panel{bottom:calc(122px + var(--safe));padding:18px}.dialog-panel{bottom:calc(136px + var(--safe))}.intro-copy{margin-top:-90px}.intro-copy h1{font-size:39px}.intro-enter{bottom:35px}.gender-options label>span{height:105px}.mission-card{margin:14px 0}.briefing-rules{margin-bottom:15px}.invite-panel{bottom:0}}
.pixel-groom{width:38px;height:55px;background:#7a3d22;box-shadow:inset 0 -20px #52151e,inset 8px 0 #a72234}.pixel-groom:before{left:8px;top:-21px;width:16px;height:19px;box-shadow:-5px -4px #171116,5px -7px #171116,10px -3px #171116}.pixel-groom:after{content:"〰";left:5px;top:-23px;width:23px;height:7px;color:#e6b953;background:transparent;font:bold 18px/7px serif}.mission-card{gap:16px;padding:14px}.yanze-portrait{flex:0 0 88px;width:88px;height:112px;object-fit:cover;object-position:50% 24%;border:2px solid var(--gold);box-shadow:4px 4px #2a0710}
/* Light 3D wedding adventure theme */
:root{--red:#bd4a4f;--red-dark:#87333c;--gold:#f3b653;--cream:#fff9ec;--ink:#365160;--ice:#dff2fb;--ice-deep:#8fc5df;--panel:#f8fdff;--shadow:#557889;--safe:env(safe-area-inset-bottom,0px)}
html,body{background:#bad9e8;color:var(--ink)}
.phone-stage{background:radial-gradient(circle at 50% 18%,#f8fdff 0,#cfe9f5 38%,#8fb8cc 100%)}
.game-shell{background:#d9edf6;box-shadow:0 24px 70px rgba(45,79,94,.42);border:1px solid rgba(255,255,255,.75)}
#game-canvas{image-rendering:auto}
.game-hud{margin:8px 9px 0;padding:calc(9px + env(safe-area-inset-top,0px)) 11px 12px;border:1px solid rgba(255,255,255,.9);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(226,242,249,.9));box-shadow:0 5px 0 rgba(86,124,140,.22),0 10px 24px rgba(55,91,107,.18);color:#365160;text-shadow:none}
.game-hud small{color:#bc7250;font-weight:800}.game-hud strong{color:#365160}.game-hud span{color:#e85c65;filter:drop-shadow(0 1px #fff)}
.mission-title strong{color:#a94449;text-shadow:0 1px #fff}
.mission-toast{top:88px;border:2px solid rgba(255,255,255,.92);background:linear-gradient(#ffffff,#e7f4f9);box-shadow:0 4px 0 rgba(77,111,126,.24),0 8px 18px rgba(48,81,96,.18);color:#456373;font-weight:700}
.mission-toast.pop{background:linear-gradient(#fff9e8,#ffe0a8);color:#8b5233}
.enemy-bar{top:122px;color:#4c6673;font-weight:800}.enemy-bar i{height:12px;padding:2px;border:2px solid #fff;border-radius:9px;background:#8ba5b2;box-shadow:0 3px rgba(72,101,114,.25)}.enemy-bar b{border-radius:5px;background:linear-gradient(90deg,#ffd56e,#ef7065)}
.controls{height:calc(142px + var(--safe));padding:16px 18px calc(18px + var(--safe));background:linear-gradient(180deg,#d9edf6,#b8d9e8);border-top:3px solid rgba(255,255,255,.9);box-shadow:0 -8px 22px rgba(73,109,125,.18)}
.controls:before{content:"";position:absolute;inset:8px 10px calc(10px + var(--safe));border-radius:24px;background:rgba(255,255,255,.28);pointer-events:none}
.direction-controls,.action-controls{position:relative;z-index:2}
.controls button{width:64px;height:64px;border:3px solid rgba(255,255,255,.9);border-radius:21px;background:linear-gradient(145deg,#8fc7df,#5f9fc0);box-shadow:inset 0 4px rgba(255,255,255,.35),inset 0 -5px rgba(51,104,132,.18),0 6px 0 #477e99,0 10px 16px rgba(54,90,106,.24);color:#fff;text-shadow:0 2px rgba(49,83,99,.3)}
.controls button.active,.controls button:active{transform:translateY(5px);box-shadow:inset 0 3px 6px rgba(41,79,99,.25),0 1px 0 #477e99}
.action-controls button{width:69px;height:69px}.action-controls span{border:2px solid rgba(255,255,255,.75);background:rgba(255,255,255,.12);font-family:"PingFang SC","Microsoft YaHei",sans-serif}
.attack-control{background:linear-gradient(145deg,#ffc766,#ed8d3d)!important;box-shadow:inset 0 4px rgba(255,255,255,.4),inset 0 -5px rgba(155,86,33,.18),0 6px 0 #bd6931,0 10px 16px rgba(93,82,57,.24)!important}
.full-panel{inset:0 0 calc(142px + var(--safe));padding:26px;color:#3b5968;background:linear-gradient(165deg,rgba(239,249,253,.98),rgba(204,233,245,.98) 54%,rgba(248,236,218,.98));text-shadow:none}
.full-panel:before{content:"";position:absolute;inset:18px;border-radius:28px;background:rgba(255,255,255,.36);box-shadow:inset 0 1px rgba(255,255,255,.9),0 14px 35px rgba(64,101,118,.15);pointer-events:none}
.full-panel:after{inset:14px;border:2px solid rgba(255,255,255,.76);border-radius:31px}
.eyebrow{color:#b8654a;text-shadow:0 1px #fff}.profile-panel h2,.briefing-panel h2,.gameover-panel h2,.result-panel h2{color:#365160;font-family:"PingFang SC","Microsoft YaHei",sans-serif;font-weight:900;text-shadow:0 2px #fff}
.profile-panel h2 span,.briefing-panel h2 span{color:#b34c4c}
.profile-lead,.gameover-panel p,.result-panel>p{color:#65808d}
.gold-button,.red-button{border:3px solid rgba(255,255,255,.92);border-radius:18px;padding:13px 22px;background:linear-gradient(180deg,#ffc861,#efa040);box-shadow:inset 0 3px rgba(255,255,255,.34),0 6px 0 #be7135,0 11px 20px rgba(92,100,84,.2);color:#714124;text-shadow:0 1px rgba(255,255,255,.55)}
.red-button{background:linear-gradient(180deg,#ee7779,#c44f56);box-shadow:inset 0 3px rgba(255,255,255,.3),0 6px 0 #913941,0 11px 20px rgba(92,65,67,.2);color:#fff}
.gold-button:active,.red-button:active{transform:translateY(5px);box-shadow:inset 0 3px 7px rgba(109,65,35,.18),0 1px 0 #be7135}
.text-button,.skip-intro{color:#6c8793}
.intro-panel{background:linear-gradient(180deg,#9bcce6 0,#e4f3f9 44%,#f7ddbe 100%)}
.intro-panel:before{background:radial-gradient(circle at 70% 24%,rgba(255,255,255,.85) 0 42px,transparent 44px),linear-gradient(150deg,transparent 0 48%,rgba(255,255,255,.48) 49% 54%,transparent 55%);box-shadow:none}
.curtain{background:repeating-linear-gradient(90deg,#a93f48 0 18px,#c95458 18px 36px);box-shadow:0 0 25px rgba(82,41,44,.25)}.curtain-left{border-right-color:#ffd477}.curtain-right{border-left-color:#ffd477}
.intro-moon{background:#fff7dd;box-shadow:0 0 38px rgba(255,255,255,.72)}.intro-cloud{background:rgba(255,255,255,.58);box-shadow:20px -9px rgba(255,255,255,.58),42px 0 rgba(255,255,255,.58);border-radius:20px}
.intro-copy{padding:24px 26px;border:2px solid rgba(255,255,255,.78);border-radius:26px;background:rgba(255,255,255,.57);box-shadow:0 9px 0 rgba(82,119,135,.14),0 18px 34px rgba(75,111,127,.16)}
.intro-copy p{color:#af6046}.intro-copy h1{color:#3d5d6c;font-family:"PingFang SC","Microsoft YaHei",sans-serif;font-size:43px;font-weight:900;text-shadow:0 3px #fff}.intro-copy h1 span{color:#bc4a4d}.intro-copy strong{color:#5f7d89}.intro-line{background:#d89b54}
.procession{filter:drop-shadow(0 8px 5px rgba(50,78,90,.18))}.lantern-man{border-color:#4a5660;border-radius:7px;background:#597b8d}.lantern-man:before{border-color:#4a5660;border-radius:50%;background:#efb890}.palanquin{border-color:#8c3a41;border-radius:10px;background:#c94e56;box-shadow:inset 0 0 0 4px #ffd77b}.pixel-groom{border-color:#443840;border-radius:9px;background:#b9424d;box-shadow:inset 0 -18px #8d303c}.pixel-groom:before{border-color:#443840;border-radius:50%;background:#efbb91}
.gender-options label>span{height:126px;border:2px solid rgba(255,255,255,.78);border-radius:22px;background:rgba(255,255,255,.42);color:#64808d;box-shadow:0 5px 0 rgba(80,116,132,.13)}.gender-options input:checked+span{border-color:#f2b456;background:linear-gradient(#fff8e8,#ffdfaa);color:#795037;box-shadow:0 6px 0 rgba(177,106,47,.23),inset 0 0 0 3px rgba(255,255,255,.42)}
.profile-pixel{border:0;border-radius:11px;background:linear-gradient(#72add0,#3e789b);box-shadow:inset 0 -14px rgba(34,83,111,.3),0 5px rgba(62,92,106,.18)}.profile-pixel:before{border:0;border-radius:50%;background:#efb98d}.profile-pixel:after{border-radius:10px 10px 3px 3px}.female-pixel{background:linear-gradient(#ee8498,#b84e6c);box-shadow:inset 0 -7px #e6bd66,0 5px rgba(62,92,106,.18)}
.name-field span{color:#9a634a}.name-field input{border:2px solid rgba(255,255,255,.85);border-radius:15px;padding:13px 12px;background:rgba(255,255,255,.58);box-shadow:inset 0 2px 5px rgba(65,101,117,.1);color:#365160}.name-field input::placeholder{color:#9ab0ba}.privacy-note{color:#78919d}
.mission-card{border:2px solid rgba(255,255,255,.86);border-radius:22px;background:rgba(255,255,255,.56);box-shadow:0 6px 0 rgba(75,111,127,.16),0 13px 25px rgba(70,106,122,.13)}.yanze-portrait{border:4px solid #fff;border-radius:18px;box-shadow:0 5px 0 #d5a059,0 9px 16px rgba(77,98,102,.2)}.mission-card small{color:#ad684d}.mission-card strong{color:#a34547}.mission-card p{color:#627e8a}.briefing-rules li{color:#577482}.briefing-rules i{border:2px solid #fff;border-radius:9px;background:#f3b458;box-shadow:0 3px #bc743b;color:#fff;font-weight:800}
.dialog-panel{border:3px solid #fff;border-radius:20px;background:linear-gradient(#f9fdff,#dceef6);box-shadow:0 6px 0 rgba(69,103,118,.3),0 15px 25px rgba(52,82,96,.2);color:#486674}.dialog-avatar{border:3px solid #fff;border-radius:50%;background:linear-gradient(#df696b,#ae4049);box-shadow:0 4px #8d343c;color:#fff3c5}.dialog-panel strong{color:#a84448}.dialog-panel button{border:2px solid #fff;border-radius:10px;background:#f1aa49;box-shadow:0 3px #bd6d34;color:#fff}
.result-seal,.invite-seal{border:3px solid #fff;border-radius:50%;background:linear-gradient(#e35f62,#ad3d48);box-shadow:0 5px #8b333c;color:#fff4c2}.result-stats{border-color:rgba(89,127,144,.2)}.result-stats strong{color:#a94649}.invite-panel{background:linear-gradient(165deg,#f4fbfe,#d7edf6 55%,#ffe4c2)}.invite-card{border-color:rgba(255,255,255,.9);border-radius:22px;background:rgba(255,255,255,.58);box-shadow:0 7px 0 rgba(70,107,123,.16)}
@media (min-width:431px){.game-shell{height:min(932px,96dvh);border-radius:34px;box-shadow:0 28px 80px rgba(47,78,92,.45);outline:7px solid rgba(255,255,255,.42)}}
/* Journey to the West wedding theme */
:root{--red:#b54149;--red-dark:#6c293d;--gold:#f3bd58;--cream:#fff1c8;--ink:#49344e;--ice:#ead9e7;--ice-deep:#9f7299;--panel:#fff0ca;--shadow:#4d3156}
html,body{background:#241a38}.phone-stage{background:radial-gradient(circle at 50% 18%,#a8799b 0,#55375f 42%,#21172f 100%)}
.game-shell{background:#583d62;border-color:rgba(255,222,139,.55);box-shadow:0 26px 78px rgba(23,12,35,.6)}
.game-hud{border-color:#ffe2a0;background:linear-gradient(180deg,rgba(255,240,197,.97),rgba(241,205,137,.93));box-shadow:0 5px 0 rgba(91,48,61,.36),0 12px 25px rgba(47,24,51,.3);color:#5a3342}.game-hud small{color:#a23d45}.game-hud strong{color:#5a3342}.mission-title strong{color:#922f42}.game-hud span{color:#d84d58}
.mission-toast{border-color:#ffe4a4;background:linear-gradient(#fff4cd,#eec77b);box-shadow:0 4px 0 rgba(99,54,55,.35),0 8px 20px rgba(50,25,52,.28);color:#673946}.mission-toast.pop{background:linear-gradient(#ffe7ae,#f49b67);color:#78353c}
.enemy-bar{color:#ffeab5;text-shadow:0 2px #44233f}.enemy-bar i{border-color:#ffe6a3;background:#4a2848;box-shadow:0 3px rgba(37,19,40,.45)}.enemy-bar b{background:linear-gradient(90deg,#ffd665,#ef6559)}
.controls{background:linear-gradient(180deg,#684a70,#3c2b50);border-top-color:#e5ad4e;box-shadow:0 -8px 24px rgba(31,17,42,.35)}.controls:before{background:rgba(255,226,154,.08);border:1px solid rgba(255,221,139,.14)}
.controls button{border-color:#f8d98d;background:linear-gradient(145deg,#8d6a9b,#60466f);box-shadow:inset 0 4px rgba(255,255,255,.2),inset 0 -5px rgba(40,18,54,.24),0 6px 0 #3b284b,0 10px 18px rgba(23,12,34,.34);color:#fff1bd;text-shadow:0 2px rgba(38,18,45,.45)}.controls button.active,.controls button:active{box-shadow:inset 0 3px 7px rgba(31,14,42,.35),0 1px 0 #3b284b}.attack-control{background:linear-gradient(145deg,#f4c15d,#c85e3f)!important;box-shadow:inset 0 4px rgba(255,255,255,.28),inset 0 -5px rgba(105,42,29,.2),0 6px 0 #8d3b35,0 10px 18px rgba(43,20,38,.36)!important}.jump-control{background:linear-gradient(145deg,#ae86bd,#71537f)!important}.action-controls span{border-color:#ffe8ad;background:rgba(255,229,158,.1)}
.full-panel{color:#fff0c5;background:linear-gradient(160deg,rgba(74,43,83,.98),rgba(134,66,91,.98) 52%,rgba(62,34,72,.99))}.full-panel:before{background:radial-gradient(circle at 78% 18%,rgba(255,224,147,.22) 0 52px,transparent 54px),rgba(255,224,155,.05);box-shadow:inset 0 1px rgba(255,230,166,.25),0 15px 38px rgba(31,16,40,.25)}.full-panel:after{border-color:rgba(247,201,100,.5)}
.eyebrow{color:#f5c960;text-shadow:0 2px #542b4a}.profile-panel h2,.briefing-panel h2,.gameover-panel h2,.result-panel h2{color:#fff0be;text-shadow:0 3px #4b2945}.profile-panel h2 span,.briefing-panel h2 span{color:#ffd565}.profile-lead,.gameover-panel p,.result-panel>p{color:#e6cbb5}
.gold-button,.red-button{border-color:#ffe5a2;background:linear-gradient(180deg,#ffd76c,#e58c3e);box-shadow:inset 0 3px rgba(255,255,255,.3),0 6px 0 #9f4c36,0 12px 22px rgba(34,18,41,.32);color:#6d3440}.red-button{background:linear-gradient(180deg,#e96060,#aa3549);box-shadow:inset 0 3px rgba(255,255,255,.25),0 6px 0 #76283d,0 12px 22px rgba(34,18,41,.32);color:#fff1bf}.text-button,.skip-intro{color:#e2c7b5}
.intro-panel{background:linear-gradient(180deg,#4a356b 0,#a65d7c 48%,#f1ad69 100%)}.intro-panel:before{background:radial-gradient(circle at 74% 22%,rgba(255,228,155,.78) 0 44px,transparent 47px),linear-gradient(150deg,transparent 0 48%,rgba(255,218,137,.15) 49% 55%,transparent 56%);box-shadow:none}.intro-moon{background:#ffe6a0;box-shadow:0 0 42px rgba(255,202,105,.52)}.intro-cloud{background:rgba(255,224,177,.3);box-shadow:20px -9px rgba(255,224,177,.3),42px 0 rgba(255,224,177,.3)}
.intro-copy{border-color:#f6d47d;background:linear-gradient(180deg,rgba(255,239,190,.92),rgba(236,191,122,.88));box-shadow:0 9px 0 rgba(84,43,60,.3),0 18px 36px rgba(39,18,47,.3)}.intro-copy p{color:#9c3b43}.intro-copy h1{color:#603745;text-shadow:0 3px #fff0c2;font-size:39px}.intro-copy h1 span{color:#b73545}.intro-copy strong{color:#754650}.intro-line{background:#c45749}
.gender-options label>span{border-color:rgba(246,207,112,.55);background:rgba(255,224,153,.08);color:#dfc1b3;box-shadow:0 5px 0 rgba(37,18,43,.2)}.gender-options input:checked+span{border-color:#ffd66d;background:linear-gradient(rgba(255,225,149,.22),rgba(210,125,101,.2));color:#ffeeb9;box-shadow:0 6px 0 rgba(48,23,46,.28),inset 0 0 0 3px rgba(255,225,148,.12)}
.name-field span{color:#f2c868}.name-field input{border-color:rgba(248,211,119,.6);background:rgba(255,238,194,.1);color:#fff1c5}.name-field input::placeholder{color:#c5a9a8}.privacy-note{color:#c4a8a4}
.mission-card{border-color:#f4cf72;background:linear-gradient(145deg,rgba(255,239,194,.16),rgba(118,66,92,.3));box-shadow:0 6px 0 rgba(42,20,46,.28),0 14px 26px rgba(32,15,41,.22)}.yanze-portrait{border-color:#f9d77e;box-shadow:0 5px 0 #9a493b,0 10px 18px rgba(30,16,39,.34)}.mission-card small{color:#f3c864}.mission-card strong{color:#ffe8a6}.mission-card p{color:#e1c5b4}.briefing-rules li{color:#ead0bb}.briefing-rules i{border-color:#ffe59b;background:#c8564b;box-shadow:0 3px #7e3040;color:#fff0bd}
.dialog-panel{border-color:#ffe095;background:linear-gradient(#fff0c5,#e7b875);box-shadow:0 6px 0 rgba(77,37,51,.42),0 15px 27px rgba(32,16,40,.34);color:#67414b}.dialog-avatar{border-color:#ffe49a;background:linear-gradient(#d74e53,#8f3048);box-shadow:0 4px #64263c;color:#ffe799}.dialog-panel strong{color:#9c3443}.dialog-panel button{border-color:#ffe397;background:#d75c4e;box-shadow:0 3px #8b3540;color:#fff0c1}
.result-seal,.invite-seal{border-color:#ffe196;background:linear-gradient(#dc5354,#923044);box-shadow:0 5px #64243a;color:#ffe797}.invite-panel{background:linear-gradient(165deg,#573b68,#a75a7c 55%,#eaa262)}.invite-card{border-color:#f4cc70;background:rgba(255,231,172,.12);box-shadow:0 7px 0 rgba(47,22,47,.25)}
@media(min-width:431px){.game-shell{outline-color:rgba(246,207,113,.28)}}
/* Wedding album time-warp chapter */
.album-panel{position:absolute;z-index:60;inset:0;overflow:hidden;background:#100b17;color:#f7ead5;transition:opacity .35s,transform .35s}.album-panel.hidden{opacity:0;pointer-events:none;transform:scale(1.025)}
.warp-scene{position:absolute;z-index:3;inset:0;display:grid;place-items:center;align-content:center;gap:12px;overflow:hidden;background:radial-gradient(circle at 50% 48%,#e7b763 0 3%,#854f86 8%,#2d183d 32%,#090710 70%);opacity:0;pointer-events:none}.warp-scene:before{content:"";position:absolute;inset:-30%;background:conic-gradient(from 20deg,transparent,#f5cf7a 8%,transparent 17%,#a57dc0 28%,transparent 39%,#e6a95d 52%,transparent 64%);filter:blur(16px);animation:warpSpin 1.1s linear infinite}.warp-scene i{position:absolute;width:68vw;max-width:310px;aspect-ratio:1;border:2px solid rgba(255,226,150,.72);border-radius:50%;box-shadow:0 0 28px rgba(239,190,103,.5),inset 0 0 22px rgba(183,119,195,.5);animation:warpTunnel 1.25s ease-in-out infinite}.warp-scene i:nth-child(2){width:47vw;max-width:220px;animation-delay:-.38s}.warp-scene i:nth-child(3){width:28vw;max-width:130px;animation-delay:-.72s}.warp-scene b,.warp-scene span{position:relative;z-index:2;text-shadow:0 3px 18px #120918}.warp-scene b{margin-top:190px;color:#ffe6a5;font:900 24px "PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:.12em}.warp-scene span{color:rgba(255,239,210,.72);font-size:11px;letter-spacing:.14em}.album-panel.warping .warp-scene{opacity:1;animation:warpFlash 1.5s ease-in-out both}
.album-experience{position:absolute;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:calc(24px + env(safe-area-inset-top,0px)) 20px calc(20px + env(safe-area-inset-bottom,0px));background:radial-gradient(circle at 82% 8%,rgba(228,181,102,.2),transparent 25%),linear-gradient(155deg,#1b1222,#321d31 48%,#140e1b);opacity:0;transform:scale(.94);transition:opacity .7s,transform .8s}.album-experience:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 0 42%,rgba(255,226,170,.045) 43% 44%,transparent 45% 100%),repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 4px)}.album-panel.gallery-ready .album-experience{opacity:1;transform:scale(1)}
.album-header{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto;align-items:end;padding:0 4px 16px;border-bottom:1px solid rgba(231,191,114,.35);text-align:left}.album-header p{grid-column:1/-1;margin:0 0 5px;color:#caa869;font:700 8px Georgia,serif;letter-spacing:.34em}.album-header h2{margin:0;color:#fff2d7;font:500 24px Georgia,"Songti SC",serif;letter-spacing:.05em}.album-header h2 i{color:#d7aa62;font-weight:400}.album-header span{color:#caa869;font:11px Georgia,serif;letter-spacing:.14em}
.album-viewport{position:relative;z-index:2;min-height:0;overflow:hidden;margin:17px -20px 0}.album-track{height:100%;display:flex;transition:transform .65s cubic-bezier(.22,.8,.25,1)}.album-slide{position:relative;flex:0 0 100%;height:100%;padding:0 27px 8px;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:0}.album-photo{position:relative;min-height:0;overflow:hidden;border:1px solid rgba(235,199,130,.6);border-radius:4px;background:radial-gradient(circle at 70% 18%,rgba(255,223,163,.28),transparent 22%),linear-gradient(145deg,#76515d,#321f32 52%,#9f6c5f);box-shadow:0 22px 50px rgba(4,2,8,.52),0 0 0 7px rgba(218,176,101,.055);display:flex;flex-direction:column;align-items:center;justify-content:center}.album-photo:before,.album-photo:after{content:"";position:absolute;border:1px solid rgba(241,205,137,.45);width:45px;height:45px}.album-photo:before{left:13px;top:13px;border-right:0;border-bottom:0}.album-photo:after{right:13px;bottom:13px;border-left:0;border-top:0}.album-photo img{width:100%;height:100%;object-fit:cover}.album-photo span{color:rgba(255,231,184,.2);font:64px Georgia,serif;line-height:1}.album-photo b{margin-top:-8px;color:#f4dfbd;font:500 17px "Songti SC",serif;letter-spacing:.18em}.album-photo small{margin-top:9px;color:rgba(244,223,189,.55);font-size:9px;letter-spacing:.16em}.album-copy{position:relative;margin:-55px 17px 0;padding:16px 18px 14px;border:1px solid rgba(229,190,117,.45);background:rgba(25,15,26,.88);backdrop-filter:blur(12px);text-align:left;box-shadow:0 12px 28px rgba(5,2,8,.32)}.album-copy small{color:#caa15e;font:8px Georgia,serif;letter-spacing:.28em}.album-copy h3{margin:5px 0 4px;color:#fff1d5;font:500 25px Georgia,"Songti SC",serif}.album-copy p{margin:0;color:rgba(244,226,199,.68);font-size:10px;line-height:1.7}
.album-footer{position:relative;z-index:2;padding-top:12px}.album-nav{height:38px;display:flex;align-items:center;justify-content:center;gap:15px}.album-nav>button{width:34px;height:34px;border:1px solid rgba(222,180,104,.58);border-radius:50%;background:rgba(255,235,198,.06);color:#e6bd72;font:25px/1 Georgia,serif}.album-nav>button:active{transform:scale(.92)}#album-dots{display:flex;gap:7px}#album-dots button{width:5px;height:5px;padding:0;border:0;border-radius:50%;background:rgba(236,207,157,.28);transition:.3s}#album-dots button.active{width:20px;border-radius:5px;background:#d7aa61}.album-resume{width:100%;margin-top:9px;padding:12px;border:1px solid #e0b568;border-radius:2px;background:linear-gradient(180deg,#d7ad68,#a66e42);box-shadow:0 5px 0 #67402e;color:#25151f;font-weight:800;letter-spacing:.12em}.album-resume:active{transform:translateY(4px);box-shadow:0 1px 0 #67402e}
@keyframes warpSpin{to{transform:rotate(360deg)}}@keyframes warpTunnel{0%,100%{transform:scale(.35);opacity:.12}55%{transform:scale(1.15);opacity:1}}@keyframes warpFlash{0%{filter:brightness(.7)}65%{filter:brightness(1)}100%{filter:brightness(2.4);opacity:0}}
@media(max-height:700px){.album-experience{padding-top:18px;padding-bottom:12px}.album-header{padding-bottom:10px}.album-header h2{font-size:20px}.album-viewport{margin-top:11px}.album-copy{margin-top:-47px;padding:11px 14px}.album-copy h3{font-size:20px}.album-footer{padding-top:6px}.album-resume{margin-top:5px;padding:9px}}
