:root{--rose-700:#9f304d;--rose-600:#bd435f;--rose-500:#d95c78;--rose-400:#e98298;--rose-300:#f2a6b7;--blush-100:#fce8ec;--cream-50:#fff9ed;--cream-100:#f9eed7;--parchment:#eec97a;--brown-950:#28180f;--brown-900:#3d281b;--brown-800:#4e3524;--brown-700:#66472e;--green-600:#3f8930;--green-500:#52a83d;--blue-600:#2d70bd;--blue-500:#3f86d9;--sky-100:#cdeeff;--white:#fff;--neutral-100:#f2f1ed;--neutral-300:#d7d4cc;--neutral-500:#8c877d;--danger:#c93f45;--overlay:#181412a3;--font-pixel:"Courier New", "Lucida Console", monospace;--font-ui:"Segoe UI", "Plus Jakarta Sans", Arial, sans-serif;--shadow-pixel:4px 5px 0 #2d1d12d1;--shadow-soft:0 12px 36px #2d1d123d}*{box-sizing:border-box}html{color:var(--brown-900);font-family:var(--font-ui);background:#ead9c2}body{background:linear-gradient(#fff9edb8,#f9eed7e0),url(/assets/game/romantic-mountain-world.webp) 50%/cover fixed;min-height:100dvh;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent;color:inherit}img{max-width:100%}::selection{color:var(--white);background:var(--rose-500)}:focus-visible{outline-offset:3px;outline:3px solid #2869bb}.guest-page{place-items:center;min-height:100dvh;display:grid}.guest-shell{background:var(--cream-50);isolation:isolate;width:100%;max-width:430px;min-height:100dvh;position:relative;overflow:hidden;box-shadow:0 0 64px #2d1d1257}.pixel-font{font-family:var(--font-pixel);letter-spacing:-.035em;font-weight:800}.pixel-border{border:3px solid var(--brown-900);box-shadow:0 4px 0 var(--brown-900), inset 0 0 0 2px #ffffff4d}.pixel-button{border:3px solid var(--brown-900);min-height:48px;color:var(--white);background:var(--rose-500);box-shadow:0 4px 0 var(--brown-900), inset 0 0 0 2px #ffffff47;font-family:var(--font-pixel);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-size:15px;font-weight:800;line-height:1.1;text-decoration:none;transition:transform .1s,box-shadow .1s,background .15s;display:inline-flex}.pixel-button:hover{background:var(--rose-600)}.pixel-button:active{box-shadow:0 1px 0 var(--brown-900), inset 0 0 0 2px #ffffff38;transform:translateY(3px)}.pixel-button:disabled{cursor:not-allowed;opacity:.58}.pixel-button.green{background:var(--green-500)}.pixel-button.green:hover{background:var(--green-600)}.pixel-button.blue{background:var(--blue-500)}.pixel-button.blue:hover{background:var(--blue-600)}.pixel-button.cream{color:var(--brown-900);background:var(--cream-50)}.pixel-button.danger{background:var(--danger)}.pixel-button.full{width:100%}.text-button{min-height:44px;color:var(--brown-700);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:8px 12px;font-weight:750;text-decoration:underline}.icon-button{border:3px solid var(--brown-900);width:46px;height:46px;box-shadow:0 3px 0 var(--brown-900);cursor:pointer;background:#fff9edf2;border-radius:8px;flex:none;place-items:center;transition:transform .1s;display:inline-grid}.icon-button:active{transform:translateY(2px)}.loading-screen{background:linear-gradient(#cdeeff73,#fff9edd1),url(/assets/game/romantic-mountain-world.webp) 50%/cover;place-items:center;min-height:100dvh;padding:32px 24px;display:grid;overflow:hidden}.loading-card{text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff9edf0;border-radius:10px;width:min(100%,330px);padding:30px 24px 24px}.loading-heart{border:3px solid var(--brown-900);width:60px;height:60px;color:var(--white);background:var(--rose-500);box-shadow:var(--shadow-pixel);border-radius:10px;place-items:center;margin:0 auto 16px;animation:1.3s ease-in-out infinite heart-beat;display:grid}.loading-card h1{margin:0;font-size:25px}.loading-card p{color:var(--brown-700);margin:10px 0 18px}.loading-track{border:3px solid var(--brown-900);background:var(--cream-100);height:18px;padding:3px;overflow:hidden}.loading-progress{background:repeating-linear-gradient(90deg, var(--rose-500) 0 16px, var(--rose-400) 16px 23px);height:100%;transition:width .22s}.cover-screen{min-height:100dvh;padding:max(12px, env(safe-area-inset-top)) 16px max(14px, env(safe-area-inset-bottom));text-align:center;background:linear-gradient(to bottom, #cdeeff08 0%, #fff9ed05 48%, #fff9edeb 100%), var(--cover-world,url(/assets/game/romantic-mountain-world.webp)) center / cover;flex-direction:column;align-items:center;display:flex;position:relative;overflow:hidden}.cover-screen:after{content:"";z-index:-1;background:radial-gradient(circle at 50% 44%,#0000 25%,#1b2d231a),linear-gradient(#0000 56%,#142c1f33);position:absolute;inset:0}.cover-topbar{justify-content:space-between;align-items:center;width:100%;min-height:44px;display:flex}.cover-version{color:var(--brown-900);text-transform:uppercase;background:#fff9ede0;border:2px solid #3d281bad;border-radius:6px;padding:6px 9px;font-size:10px;box-shadow:0 2px #3d281bb8}.cover-audio{margin-left:auto}.cover-audio-error{z-index:8;top:max(60px, calc(env(safe-area-inset-top) + 48px));color:#61261f;background:#fff1def5;border:2px solid #7b342f;border-radius:8px;margin:0 auto;padding:8px 11px;font-size:11px;font-weight:800;position:absolute;left:16px;right:16px;box-shadow:0 3px #492a1eb8}.cover-brand{z-index:2;width:min(100%,398px);min-height:46px;color:var(--rose-700);background:linear-gradient(#fff9edf5, #f9eed7f5), var(--cream-50);font-family:var(--font-pixel);letter-spacing:.025em;text-transform:uppercase;border-radius:7px;justify-content:center;align-items:center;gap:9px;margin-top:6px;padding:8px 12px;font-size:clamp(13px,4vw,16px);font-weight:900;display:flex;position:relative}.cover-heading{z-index:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff9edd6;border:2px solid #66472e47;border-radius:13px;margin-top:clamp(12px,3dvh,24px);padding:10px 18px 9px;position:relative}.cover-kicker{color:var(--brown-700);font-family:var(--font-pixel);letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px;font-size:13px;font-weight:800}.cover-title{color:var(--brown-900);font-family:var(--font-pixel);text-shadow:2px 2px #ffffffd9;margin:0;font-size:clamp(31px,9vw,42px);font-weight:900;line-height:.92}.cover-title span{color:var(--rose-600)}.cover-date{font-family:var(--font-pixel);margin:7px 0 0;font-size:14px;font-weight:800}.cover-character-stage{z-index:1;flex:290px;justify-content:center;align-items:flex-end;width:100%;min-height:205px;margin-top:4px;display:flex;position:relative}.cover-couple,.cover-theme-couple{z-index:1;width:min(78%,320px);height:min(38dvh,310px);image-rendering:pixelated;filter:drop-shadow(0 8px 4px #231c1452);justify-content:center;align-items:flex-end;gap:2px;margin-bottom:-7px;animation:3.4s ease-in-out infinite couple-float;display:flex;position:relative}.cover-theme-couple{filter:drop-shadow(0 4px #fff2cdc2)drop-shadow(0 11px 6px #231c1461);background-position:bottom;background-repeat:no-repeat;background-size:contain;width:min(78%,320px);height:min(42dvh,370px);margin-bottom:-3px}.cover-person{background-repeat:no-repeat;background-size:contain;width:50%;height:100%}.cover-heart{z-index:2;color:var(--rose-500);font-family:var(--font-pixel);filter:drop-shadow(2px 2px #3d281ba6);animation:2.8s ease-in-out infinite cover-heart-float;position:absolute}.heart-one{font-size:25px;top:20%;left:16%}.heart-two{font-size:19px;animation-delay:-.9s;top:7%;right:18%}.heart-three{font-size:14px;animation-delay:-1.7s;top:36%;right:11%}.cover-action-card{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff9edf0;border-radius:10px;width:100%;padding:12px 13px 9px;position:relative}.guest-label{color:var(--brown-700);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:12px;font-weight:750}.guest-name{font-family:var(--font-pixel);overflow-wrap:anywhere;margin:3px 0 10px;font-size:18px;font-weight:900}.cover-actions{gap:8px;display:grid}.cover-actions .pixel-button{min-height:51px}.game-screen{touch-action:none;background:#8ec9ee;width:100%;height:100dvh;position:relative;overflow:hidden}.game-canvas{position:absolute;inset:0}.game-canvas canvas{image-rendering:pixelated;display:block;width:100%!important;height:100%!important}.game-hud{top:max(12px, env(safe-area-inset-top));z-index:40;pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;left:12px;right:12px}.game-hud>*{pointer-events:auto}.hud-right{align-items:center;gap:8px;display:flex}.heart-counter{border:3px solid var(--brown-900);min-height:46px;color:var(--brown-900);box-shadow:0 3px 0 var(--brown-900);font-family:var(--font-pixel);background:#fff9edf2;border-radius:8px;align-items:center;gap:6px;padding:7px 10px;font-size:14px;font-weight:900;display:flex}.heart-counter svg{color:var(--brown-900);fill:#3d281b47}.heart-meter{gap:2px;padding-inline:8px}.heart-meter svg.filled{color:var(--rose-700);fill:var(--rose-500)}.game-scene-label{top:max(70px, calc(env(safe-area-inset-top) + 58px));z-index:35;min-width:146px;max-width:calc(100% - 136px);color:var(--brown-900);font-family:var(--font-ui);letter-spacing:.02em;text-align:center;background:linear-gradient(90deg,#ffffff57,#0000 24% 76%,#ffffff38),#e8bd7b;border:2px solid #70462c;border-radius:4px;padding:9px 18px 7px;font-size:13px;font-weight:900;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 4px #4d301f,inset 0 0 0 2px #fff4d29e}.game-scene-label:before,.game-scene-label:after{content:"";z-index:-1;background:#c98a4d;border:2px solid #70462c;width:10px;height:22px;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.game-scene-label:before{left:-7px}.game-scene-label:after{right:-7px}.game-scene-label span,.game-scene-label small{display:block}.game-scene-label small{color:var(--rose-700);font-family:var(--font-ui);letter-spacing:.12em;margin-top:2px;font-size:8px;font-weight:900}.game-controls{right:15px;bottom:max(19px, calc(env(safe-area-inset-bottom) + 11px));z-index:50;pointer-events:none;justify-content:space-between;align-items:flex-end;display:flex;position:absolute;left:15px}.direction-controls{pointer-events:auto;gap:12px;display:flex}.game-control{border:4px solid var(--brown-900);width:64px;height:64px;color:var(--brown-900);box-shadow:0 5px 0 var(--brown-900), inset 0 0 0 3px #ffffff8c;cursor:pointer;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;background:#fff9ede8;border-radius:12px;place-items:center;display:grid}.game-control:active,.game-control.active{box-shadow:0 1px 0 var(--brown-900), inset 0 0 0 3px #ffffff73;transform:translateY(4px)}.action-controls{pointer-events:auto;align-items:flex-end;gap:10px;display:flex;position:relative}.run-control{width:52px;height:52px;color:var(--brown-900);background:#f9eed7f0;align-content:center;gap:0;padding:4px}.run-control.active{color:#fff9ed;box-shadow:0 2px 0 var(--brown-900), inset 0 0 0 3px #ffffff47;background:#568b43;transform:translateY(3px)}.run-control small{font-family:var(--font-pixel);margin-top:-3px;font-size:8px;font-weight:900;display:block}.jump-control{width:68px;height:68px;color:var(--white);background:var(--rose-500);border-radius:50%}.interact-control{width:55px;height:55px;color:var(--brown-900);background:#f2c984;border-radius:50%;animation:1.5s ease-in-out infinite prompt-pulse;position:absolute;bottom:82px;right:7px}.game-prompt{right:84px;bottom:max(154px, calc(env(safe-area-inset-bottom) + 144px));z-index:60;max-width:210px;color:var(--brown-900);font-family:var(--font-ui);text-align:center;background:radial-gradient(circle at 15% 20%,#f4a3b733,#0000 28%),#fff9edf5;border:2px solid #70462c;border-radius:16px 16px 5px;justify-content:center;align-items:center;gap:9px;padding:12px 17px;font-size:13px;font-weight:800;line-height:1.4;animation:2s ease-in-out infinite prompt-float;display:flex;position:absolute;box-shadow:0 5px #4d301f,inset 0 0 0 2px #f1d7a9}.game-prompt:after{content:"";background:#fff9ed;border-bottom:2px solid #70462c;border-right:2px solid #70462c;width:16px;height:16px;position:absolute;bottom:-10px;right:18px;transform:rotate(45deg)}.game-prompt svg{color:var(--rose-700);flex:none}.obstacle-warning{z-index:24;right:18px;bottom:max(232px, calc(env(safe-area-inset-bottom) + 220px));color:#5f281f;width:fit-content;max-width:calc(100% - 36px);font-family:var(--font-pixel);text-align:left;background:#ffeec4f7;border:3px solid #5b3427;border-radius:9px;align-items:center;gap:8px;margin:0 auto;padding:10px 13px;font-size:12px;font-weight:900;animation:.18s ease-out warning-pop;display:flex;position:absolute;left:18px;box-shadow:0 4px #3e271dc7}@keyframes warning-pop{0%{opacity:0;transform:translateY(9px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.tutorial-overlay{z-index:82;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#171e24a8;place-items:center;padding:22px;display:grid;position:absolute;inset:0}.tutorial-card{background:var(--cream-50);text-align:center;border-radius:10px;width:100%;max-width:350px;padding:24px 20px 20px}.tutorial-card h2{font-family:var(--font-pixel);margin:0 0 8px;font-size:23px}.tutorial-visual{border:3px solid var(--brown-900);width:84px;height:84px;color:var(--rose-600);background:var(--blush-100);box-shadow:var(--shadow-pixel);border-radius:18px;place-items:center;margin:16px auto;display:grid;position:relative}.tutorial-accent{border:2px solid var(--brown-900);color:var(--brown-900);box-sizing:content-box;background:#f2c984;border-radius:50%;padding:3px;position:absolute;bottom:-9px;right:-10px}.tutorial-card p{min-height:54px;color:var(--brown-700);margin:0 0 16px;line-height:1.55}.tutorial-dots{justify-content:center;gap:8px;margin-bottom:18px;display:flex}.tutorial-dot{border:2px solid var(--brown-900);background:var(--cream-100);width:9px;height:9px}.tutorial-dot.active{background:var(--rose-500)}.modal-overlay{z-index:90;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-items:center;animation:.18s fade-in;display:grid;position:absolute;inset:0}.pixel-modal{border:4px solid var(--brown-900);background:var(--cream-50);width:min(100%,390px);max-height:min(82dvh,760px);box-shadow:0 7px 0 var(--brown-950), var(--shadow-soft);border-radius:8px;flex-direction:column;animation:.24s cubic-bezier(.16,1,.3,1) modal-in;display:flex;position:relative;overflow:hidden}.pixel-modal.parchment{background:linear-gradient(#fff9edc2,#f9eed7e0),repeating-linear-gradient(0deg,#66472e0a 0 2px,#0000 2px 7px),#f3d998}.modal-header{border-bottom:3px solid var(--brown-900);background:#fff9edd1;justify-content:center;align-items:center;min-height:64px;padding:14px 62px 12px 20px;display:flex}.modal-header h2{font-family:var(--font-pixel);text-align:center;margin:0;font-size:20px;line-height:1.1}.modal-close{z-index:2;position:absolute;top:8px;right:8px}.modal-body{overscroll-behavior:contain;min-height:0;padding:20px;overflow-y:auto}.panel-intro{color:var(--brown-700);text-align:center;margin:0 0 18px;line-height:1.58}.letter-panel{text-align:center}.letter-ornament{width:54px;height:54px;color:var(--rose-600);place-items:center;margin:0 auto 12px;display:grid}.letter-panel .recipient{font-family:var(--font-pixel);margin:0 0 14px;font-size:19px;font-weight:900}.letter-panel .letter-copy{color:var(--brown-800);margin:0 0 18px;line-height:1.7}.signature{font-family:var(--font-pixel);margin:16px 0;font-size:18px;font-weight:900}.profile-grid{gap:14px;display:grid}.profile-card{border:2px solid var(--brown-900);background:#ffffffa8;border-radius:10px;padding:16px;box-shadow:0 3px #3d281b94}.profile-card h3{color:var(--rose-700);font-family:var(--font-pixel);margin:0 0 3px;font-size:20px}.profile-card .full-name{margin:0 0 8px;font-size:14px;font-weight:800}.profile-card p{color:var(--brown-700);margin:7px 0 0;font-size:13px;line-height:1.55}.profile-couple-image{width:210px;image-rendering:pixelated;margin:-4px auto 14px;display:block}.profile-image-pair{justify-content:center;align-items:flex-end;gap:8px;display:flex}.profile-person-image{border:2px solid var(--brown-900);image-rendering:auto;background-color:#f9eed7b8;background-repeat:no-repeat;background-size:contain;border-radius:9px;width:100%;min-height:170px;margin-bottom:12px}.profile-image-pair .profile-person-image{width:50%;min-height:210px;margin:0}.theme-couple-panel{aspect-ratio:4/5;filter:drop-shadow(0 9px 5px #3d281b47);background-position:bottom;background-repeat:no-repeat;background-size:contain;width:min(100%,310px);margin:0 auto 12px}.theme-couple-label{color:var(--rose-700);font-family:var(--font-pixel);text-align:center;margin:0 0 16px;font-size:13px;font-weight:900}.carousel-visual{aspect-ratio:4/3;border:3px solid var(--brown-900);background-image:url(/assets/game/romantic-mountain-world.webp);background-size:auto 100%;border-radius:6px;width:100%;margin-bottom:16px;box-shadow:0 4px #3d281bad}.carousel-content{text-align:center}.carousel-year{border:2px solid var(--brown-900);color:var(--white);background:var(--rose-500);font-family:var(--font-pixel);border-radius:999px;margin-bottom:7px;padding:4px 9px;font-size:12px;font-weight:900;display:inline-block}.carousel-content h3{font-family:var(--font-pixel);margin:0 0 7px;font-size:20px}.carousel-content p{min-height:68px;color:var(--brown-700);margin:0;line-height:1.55}.carousel-controls{justify-content:space-between;align-items:center;gap:12px;margin-top:17px;display:flex}.carousel-index{font-family:var(--font-pixel);font-size:13px;font-weight:900}.event-list{gap:13px;display:grid}.event-card{border:2px solid var(--brown-900);background:#ffffffb3;border-radius:10px;padding:15px;box-shadow:0 3px #3d281b8a}.event-card h3{color:var(--rose-700);font-family:var(--font-pixel);margin:0 0 9px;font-size:18px}.event-detail{color:var(--brown-700);align-items:flex-start;gap:9px;margin:7px 0;font-size:14px;line-height:1.45;display:flex}.event-detail svg{color:var(--rose-600);flex:none;margin-top:1px}.countdown{grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 16px;display:grid}.countdown-cell{border:2px solid var(--brown-900);background:var(--blush-100);text-align:center;border-radius:7px;padding:9px 3px}.countdown-cell strong{font-family:var(--font-pixel);font-size:17px;display:block}.countdown-cell span{text-transform:uppercase;font-size:10px;font-weight:800}.form-stack{gap:15px;display:grid}.form-field{gap:7px;display:grid}.form-field label,.field-label{color:var(--brown-800);font-size:13px;font-weight:800}.form-field input,.form-field textarea,.form-field select,.dashboard-field input,.dashboard-field textarea,.dashboard-field select{border:2px solid var(--brown-700);width:100%;min-height:46px;color:var(--brown-900);background:#ffffffd1;border-radius:8px;outline:none;padding:10px 12px}.form-field textarea,.dashboard-field textarea{resize:vertical;min-height:94px}.form-field input:focus,.form-field textarea:focus,.form-field select:focus,.dashboard-field input:focus,.dashboard-field textarea:focus,.dashboard-field select:focus{border-color:var(--blue-600);box-shadow:0 0 0 3px #3f86d92e}.radio-grid{gap:8px;display:grid}.radio-card{border:2px solid var(--brown-700);cursor:pointer;background:#ffffffb8;border-radius:8px;align-items:center;gap:10px;min-height:50px;padding:10px 12px;display:flex;position:relative}.radio-card.selected{border-color:var(--green-600);background:#e9f7e3;box-shadow:0 0 0 2px #52a83d33}.radio-card input{width:19px;height:19px;accent-color:var(--green-600)}.form-error{border-left:4px solid var(--danger);color:#7d2229;background:#fde7e8;margin:0;padding:10px 12px;font-size:13px;line-height:1.45}.success-card{border:2px solid var(--green-600);color:#265b1f;text-align:center;background:#e8f6e3;border-radius:10px;padding:20px 16px}.success-card svg{margin-bottom:8px}.success-card h3{font-family:var(--font-pixel);margin:0 0 7px}.success-card p{margin:0;line-height:1.5}.gift-list{gap:12px;display:grid}.gift-card{border:2px solid var(--brown-900);background:#ffffffb8;border-radius:10px;padding:15px}.gift-card-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.gift-card-head h3{font-family:var(--font-pixel);margin:0;font-size:17px}.copy-row{align-items:stretch;gap:8px;display:flex}.copy-value{border:2px dashed var(--brown-700);overflow-wrap:anywhere;background:var(--cream-100);min-width:0;font-family:var(--font-pixel);border-radius:7px;flex:1;align-items:center;padding:10px;font-size:13px;font-weight:900;display:flex}.wish-form{gap:12px;margin-bottom:20px;display:grid}.wish-list{gap:10px;display:grid}.wish-card{background:#ffffffad;border:2px solid #66472e9e;border-radius:10px;padding:14px}.wish-card strong{color:var(--rose-700);font-family:var(--font-pixel);margin-bottom:5px;display:block}.wish-card p{color:var(--brown-700);margin:0;font-size:14px;line-height:1.52}.closing-panel{text-align:center}.closing-couple{width:230px;min-height:190px;image-rendering:pixelated;margin:-12px auto 8px}.closing-panel h3{font-family:var(--font-pixel);margin:0 0 9px;font-size:23px}.closing-panel p{color:var(--brown-700);line-height:1.6}.closing-actions{gap:10px;margin-top:18px;display:grid}.drawer-overlay{z-index:78;background:#18141275;animation:.15s fade-in;position:absolute;inset:0}.quick-drawer{width:min(86%,345px);padding:max(20px, env(safe-area-inset-top)) 18px max(20px, env(safe-area-inset-bottom));border-right:4px solid var(--brown-900);background:var(--cream-50);flex-direction:column;animation:.26s cubic-bezier(.16,1,.3,1) drawer-in;display:flex;position:absolute;top:0;bottom:0;left:0;box-shadow:14px 0 32px #2319124d}.drawer-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.drawer-header h2{font-family:var(--font-pixel);margin:0;font-size:23px}.drawer-progress{border:2px solid var(--brown-900);background:var(--blush-100);border-radius:8px;margin-bottom:18px;padding:12px}.drawer-progress-top{font-family:var(--font-pixel);justify-content:space-between;margin-bottom:7px;font-size:12px;font-weight:900;display:flex}.progress-line{border:2px solid var(--brown-900);background:var(--cream-50);height:10px;overflow:hidden}.progress-line div{background:var(--rose-500);height:100%}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid;overflow-y:auto}.quick-item{border:2px solid var(--brown-900);min-height:84px;color:var(--brown-900);background:var(--white);font-family:var(--font-pixel);cursor:pointer;border-radius:9px;align-content:center;place-items:center;gap:6px;padding:10px 8px;font-size:12px;font-weight:900;display:grid;box-shadow:0 3px #3d281bb3}.quick-item:hover{background:var(--blush-100)}.drawer-footer{gap:8px;margin-top:auto;padding-top:18px;display:grid}.simple-mode{background:var(--cream-50);min-height:100dvh}.simple-header{z-index:20;padding:max(12px, env(safe-area-inset-top)) 14px 12px;border-bottom:3px solid var(--brown-900);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff9edf2;justify-content:space-between;align-items:center;gap:10px;display:flex;position:sticky;top:0}.simple-header h1{font-family:var(--font-pixel);margin:0;font-size:18px}.simple-hero{text-align:center;background:linear-gradient(#0000 28%,#fff9edeb 86%),url(/assets/game/romantic-mountain-world.webp) 50%/cover;flex-direction:column;justify-content:flex-end;align-items:center;min-height:540px;padding:40px 20px 28px;display:flex;position:relative;overflow:hidden}.simple-hero img{width:250px;image-rendering:pixelated}.simple-theme-couple{aspect-ratio:4/5;filter:drop-shadow(0 4px #fff2cdb8)drop-shadow(0 12px 8px #261d1661);background-position:bottom;background-repeat:no-repeat;background-size:contain;width:min(82%,320px);margin-bottom:8px}.simple-theme-label{border:2px solid var(--brown-900);color:var(--brown-900);background:var(--cream-100);font-family:var(--font-pixel);border-radius:999px;margin-top:10px;padding:6px 10px;font-size:11px;font-weight:900}.simple-gallery-grid{gap:14px;display:grid}.simple-gallery-card{border:2px solid var(--brown-900);background:var(--cream-50);border-radius:9px;overflow:hidden;box-shadow:0 3px #3d281b99}.simple-gallery-image{aspect-ratio:4/5;background-color:var(--cream-100);background-repeat:no-repeat;background-size:cover;width:100%}.simple-gallery-card h3,.simple-gallery-card p{margin-inline:14px}.simple-qris-image{aspect-ratio:1;border:2px solid var(--brown-900);background:#fff 50%/contain no-repeat;border-radius:8px;width:min(100%,220px);margin:10px auto 0}.simple-gallery-card h3{color:var(--rose-700);margin-top:12px;margin-bottom:4px}.simple-gallery-card p{color:var(--brown-700);margin-top:0;margin-bottom:14px}.simple-hero h2{font-family:var(--font-pixel);margin:0;font-size:34px}.simple-hero p{max-width:340px;color:var(--brown-700);margin:8px 0 0;line-height:1.55}.simple-content{padding:22px 16px max(30px, env(safe-area-inset-bottom));gap:18px;display:grid}.simple-section{border:3px solid var(--brown-900);background:var(--white);border-radius:10px;padding:20px;box-shadow:0 4px #3d281bb8}.simple-section>h2{color:var(--rose-700);font-family:var(--font-pixel);text-align:center;margin:0 0 15px;font-size:22px}.simple-nav{background:var(--cream-100);border-bottom:2px solid #66472e40;gap:8px;padding:12px 14px;display:flex;overflow-x:auto}.simple-nav a{border:2px solid var(--brown-900);background:var(--white);font-family:var(--font-pixel);border-radius:999px;flex:none;padding:7px 10px;font-size:11px;font-weight:900;text-decoration:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.spin,button[disabled] svg{animation:.9s linear infinite spinner}.dashboard-login{background:linear-gradient(#fff9edc7,#f9eed7e0),url(/assets/game/romantic-mountain-world.webp) 50%/cover;place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{width:min(100%,430px);box-shadow:0 6px 0 var(--brown-900), 0 28px 70px #3021164d;background:#fff9edf5;border-radius:12px;padding:34px 30px 28px}.login-mark{border:3px solid var(--brown-900);width:58px;height:58px;color:var(--white);background:var(--rose-500);box-shadow:var(--shadow-pixel);border-radius:10px;place-items:center;margin-bottom:18px;display:grid}.login-card h1{font-family:var(--font-pixel);margin:3px 0 10px;font-size:27px}.login-card>p:not(.dashboard-eyebrow):not(.login-hint){color:var(--brown-700);margin:0 0 22px;line-height:1.55}.login-hint{color:var(--brown-700);text-align:center;margin:18px 0 0;font-size:12px}.login-hint code{color:var(--brown-900);background:var(--cream-100);border-radius:4px;padding:2px 5px;font-weight:800}.password-field{position:relative}.password-field svg{color:var(--brown-700);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.password-field input{padding-left:42px}.dashboard-shell{color:#34261c;background:#f8f4ed;min-height:100dvh;display:flex}.dashboard-sidebar{z-index:50;background:#fffdfa;border-right:1px solid #e1d7c9;flex-direction:column;width:246px;padding:22px 16px;display:flex;position:fixed;inset:0 auto 0 0}.dashboard-brand{border-bottom:1px solid #eee5d8;align-items:center;gap:11px;padding:0 6px 22px;display:flex}.brand-heart{width:42px;height:42px;color:var(--white);background:var(--rose-500);box-shadow:0 3px 0 var(--rose-700);border-radius:10px;flex:none;place-items:center;display:grid}.dashboard-brand strong,.dashboard-brand span{display:block}.dashboard-brand strong{font-family:var(--font-pixel);font-size:14px}.dashboard-brand span{color:#8a7b6c;margin-top:2px;font-size:11px}.dashboard-menu-close{background:0 0;border:0;margin-left:auto;display:none}.dashboard-nav{gap:5px;margin-top:22px;display:grid}.dashboard-nav button,.dashboard-sidebar-footer a,.dashboard-sidebar-footer button{color:#736457;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:11px;width:100%;min-height:44px;padding:10px 12px;font-size:14px;font-weight:700;text-decoration:none;display:flex}.dashboard-nav button:hover,.dashboard-sidebar-footer a:hover,.dashboard-sidebar-footer button:hover{color:var(--rose-700);background:#fbf0f2}.dashboard-nav button.active{color:var(--rose-700);box-shadow:inset 3px 0 0 var(--rose-500);background:#fce8ec}.dashboard-sidebar-footer{border-top:1px solid #eee5d8;gap:4px;margin-top:auto;padding-top:18px;display:grid}.dashboard-main{width:calc(100% - 246px);min-width:0;margin-left:246px}.dashboard-header{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdfaeb;border-bottom:1px solid #e7ddcf;justify-content:space-between;align-items:center;gap:20px;min-height:78px;padding:14px 28px;display:flex;position:sticky;top:0}.dashboard-title-row{align-items:center;gap:12px;display:flex}.dashboard-title-row h1{font-family:var(--font-pixel);margin:1px 0 0;font-size:21px}.dashboard-eyebrow{color:var(--rose-700);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:10px;font-weight:850}.dashboard-mobile-menu{background:var(--white);border:1px solid #ded3c4;border-radius:9px;place-items:center;width:42px;height:42px;display:none}.dashboard-header-actions{align-items:center;gap:10px;display:flex}.publish-badge,.table-status{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:5px 9px;font-size:11px;font-weight:800;display:inline-flex}.publish-badge.published,.table-status.success,.table-status.approved,.table-status.attending{color:#2d6b28;background:#e5f4df}.publish-badge.draft,.table-status.muted,.table-status.pending{color:#786d61;background:#eeeae4}.table-status.not_attending,.table-status.hidden,.table-status.spam{color:#922e39;background:#f9e3e5}.table-status.tentative{color:#895d0d;background:#f9edcf}.dashboard-icon-action{background:var(--white);cursor:pointer;border:1px solid #ded3c4;border-radius:9px;place-items:center;width:40px;height:40px;display:grid}.dashboard-content{max-width:1480px;margin:0 auto;padding:28px;position:relative}.dashboard-toast{z-index:80;color:#315e2b;background:#eef8eb;border:1px solid #b9d8b2;border-radius:9px;align-items:center;gap:8px;max-width:min(420px,100vw - 32px);padding:11px 12px;font-size:13px;font-weight:700;display:flex;position:fixed;top:92px;right:24px;box-shadow:0 8px 24px #372c2124}.dashboard-toast button{background:0 0;border:0;place-items:center;margin-left:6px;padding:3px;display:grid}.dashboard-section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.dashboard-section-heading h2{margin:3px 0 0;font-size:25px;line-height:1.15}.dashboard-primary-action,.dashboard-secondary-action{border:1px solid var(--rose-600);min-height:42px;color:var(--white);background:var(--rose-500);box-shadow:0 2px 0 var(--rose-700);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex}.dashboard-primary-action:hover{background:var(--rose-600)}.dashboard-primary-action:disabled{cursor:wait;opacity:.65}.dashboard-secondary-action{color:#54483d;background:var(--white);border-color:#d7cab9;box-shadow:0 2px #d7cab9}.danger-action{background:#c94851;border-color:#b83741;box-shadow:0 2px #8b2630}.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.metric-card{background:var(--white);border:1px solid #e4dacd;border-radius:12px;align-items:center;gap:11px;min-width:0;padding:15px 13px;display:flex;box-shadow:0 2px 8px #4331210d}.metric-icon{border-radius:10px;flex:none;place-items:center;width:42px;height:42px;display:grid}.metric-icon.rose{color:#a43150;background:#fce8ec}.metric-icon.blue{color:#276aaf;background:#e4f0fb}.metric-icon.green{color:#397b31;background:#e6f4e2}.metric-icon.pink{color:#b33e68;background:#f9e6ef}.metric-icon.gold{color:#966618;background:#faefd6}.metric-icon.purple{color:#7652a8;background:#eee8f8}.metric-card strong,.metric-card span{min-width:0;display:block}.metric-card strong{margin-bottom:2px;font-size:21px}.metric-card span{color:#807266;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.dashboard-overview-grid{grid-template-columns:minmax(0,1fr) minmax(340px,.75fr);gap:18px;display:grid}.dashboard-card{background:var(--white);border:1px solid #e3d9cc;border-radius:13px;padding:20px;box-shadow:0 3px 12px #4331210e}.dashboard-card>h3,.card-heading h3{margin:0;font-size:16px}.card-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px;display:flex}.card-heading button,.card-heading a,.small-link{color:var(--rose-700);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:12px;font-weight:800;text-decoration:none;display:inline-flex}.rsvp-summary{gap:10px;display:grid}.rsvp-summary>div{background:#faf7f2;border-radius:9px;justify-content:space-between;align-items:center;padding:13px 14px;display:flex}.rsvp-summary span{color:#746659;font-size:13px;font-weight:700}.rsvp-summary strong{font-size:20px}.preview-card{min-height:590px}.phone-preview{background:#31261e;border:5px solid #31261e;border-radius:28px;width:252px;height:500px;margin:0 auto;padding:7px;overflow:hidden;box-shadow:0 18px 36px #2c211933}.phone-preview iframe{transform-origin:0 0;border:0;border-radius:17px;width:390px;height:780px;transform:scale(.59)}.editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.editor-section h3{border-bottom:1px solid #eee6dc;align-items:center;gap:8px;margin:0 0 18px;padding-bottom:12px;display:flex}.editor-helper{color:#74665a;margin:-6px 0 16px;font-size:13px;line-height:1.55}.couple-theme-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.couple-theme-card{color:#49382d;text-align:left;cursor:pointer;background:#fffaf2;border:2px solid #d7cbbb;border-radius:11px;min-width:0;padding:0;transition:border-color .16s,box-shadow .16s,transform .16s;position:relative;overflow:hidden}.couple-theme-card:hover{border-color:#b26a73;transform:translateY(-2px);box-shadow:0 8px 18px #5b3b2c1f}.couple-theme-card.selected{border-color:var(--rose-600);box-shadow:0 0 0 3px #cd536c2b,0 8px 18px #5b3b2c24}.couple-theme-preview{aspect-ratio:4/5;background-position:bottom,50%;background-repeat:no-repeat;background-size:84%,cover;width:100%;display:block}.couple-theme-copy{gap:4px;padding:10px;display:grid}.couple-theme-copy strong{font-size:13px}.couple-theme-copy small{color:#76685b;font-size:10px;line-height:1.4}.couple-theme-check{color:#fff;background:var(--rose-600);border:2px solid #fff7e6;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:absolute;top:8px;right:8px;box-shadow:0 2px #3d281b80}.dashboard-audio-preview{background:#fffaf2;border:1px solid #d7cbbb;border-radius:10px;grid-template-columns:minmax(0,1fr) minmax(240px,1fr);align-items:center;gap:14px;padding:13px;display:grid}.dashboard-audio-preview div{gap:3px;display:grid}.dashboard-audio-preview small{color:#74665a;line-height:1.4}.dashboard-audio-preview audio{width:100%}.editor-section-title,.event-editor-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.editor-section-title{border-bottom:1px solid #eee6dc;margin-bottom:18px;padding-bottom:12px}.editor-section-title h3{border:0;margin:0;padding:0}.event-editor-heading{margin-bottom:12px}.event-editor-heading strong{color:var(--rose-700);font-size:13px}.event-editor-heading button{color:#a63e4b;cursor:pointer;background:#fff5f5;border:1px solid #e4c8c8;border-radius:7px;place-items:center;padding:6px;display:grid}.event-editor-heading button:disabled{cursor:not-allowed;opacity:.4}.dashboard-upload-action{color:#66513d;cursor:pointer;background:#fffaf2;border:1px dashed #b99e7c;border-radius:9px;justify-content:center;align-self:end;align-items:center;gap:8px;min-height:42px;padding:9px 12px;font-size:12px;font-weight:800;display:inline-flex}.media-preview{background-color:#f3ecdf;background-repeat:no-repeat;background-size:contain;border:1px solid #d7cbbb;border-radius:10px;min-height:220px;box-shadow:inset 0 0 0 4px #ffffff8c}.story-media-preview,.gallery-media-preview{background-size:cover;min-height:260px}.qris-preview{background-position:50%;min-height:180px}.dashboard-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.dashboard-field{gap:6px;display:grid}.dashboard-field>span{color:#66584c;font-size:12px;font-weight:800}.dashboard-field input,.dashboard-field textarea,.dashboard-field select{background:#fffefc;border:1px solid #d7cbbb}.span-2{grid-column:1/-1}.event-editor{background:#faf7f2;border:1px solid #e5dbcf;border-radius:10px;padding:15px}.event-editor+.event-editor{margin-top:12px}.event-editor>strong{color:var(--rose-700);margin-bottom:12px;font-size:13px;display:block}.toggle-row{align-items:center;gap:9px;margin-bottom:16px;font-size:13px;font-weight:800;display:flex}.toggle-row input{width:19px;height:19px;accent-color:var(--rose-500)}.dashboard-list-grid{grid-template-columns:330px minmax(0,1fr);align-items:start;gap:18px;display:grid}.dashboard-list-grid .dashboard-card>h3{margin-bottom:16px}.dashboard-help{color:#8b7d70;margin:14px 0 0;font-size:11px;line-height:1.5}.dashboard-table-wrap{width:100%;overflow-x:auto}.dashboard-table{border-collapse:collapse;width:100%;font-size:12px}.dashboard-table th{color:#7d6f62;letter-spacing:.05em;text-align:left;text-transform:uppercase;white-space:nowrap;background:#faf7f2;border-bottom:1px solid #ded4c7;padding:10px 12px;font-size:10px}.dashboard-table td{color:#5e5146;vertical-align:middle;border-bottom:1px solid #eee7de;max-width:280px;padding:12px;line-height:1.45}.dashboard-table td strong,.dashboard-table td span:not(.table-status){display:block}.dashboard-table td span:not(.table-status){color:#94877a;margin-top:2px;font-size:10px}.table-actions{gap:6px;display:flex}.table-actions button{color:#65564a;background:var(--white);cursor:pointer;border:1px solid #d9cebf;border-radius:7px;place-items:center;width:33px;height:33px;display:grid}.empty-table{text-align:center;color:#8d8074!important;padding:48px!important}.wish-admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.wish-admin-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.wish-admin-head strong,.wish-admin-head span:not(.table-status){display:block}.wish-admin-head span:not(.table-status){color:#918376;margin-top:3px;font-size:10px}.wish-admin-card>p{color:#66584c;min-height:66px;margin:14px 0;font-size:13px;line-height:1.55}.wish-admin-actions{gap:8px;display:flex}.wish-admin-actions button{color:#6d5f53;cursor:pointer;background:#faf7f2;border:1px solid #d7cabb;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:5px;min-height:36px;font-size:11px;font-weight:800;display:inline-flex}.wish-admin-actions button.approve{color:#35702e;background:#edf7ea;border-color:#b9d7b3}.publish-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.publish-card{align-items:flex-start;gap:16px;display:flex}.publish-status-icon{width:54px;height:54px;color:var(--rose-700);background:var(--blush-100);border-radius:12px;flex:none;place-items:center;display:grid}.publish-card h3{margin:3px 0 8px;font-size:19px}.publish-card p:not(.dashboard-eyebrow){color:#716356;margin:0 0 15px;font-size:13px;line-height:1.55}.public-link-box{background:#faf7f2;border:1px solid #dacfc0;border-radius:9px;align-items:center;gap:9px;margin-top:15px;padding:11px 12px;display:flex}.public-link-box code{text-overflow:ellipsis;flex:1;min-width:0;font-size:12px;font-weight:800;overflow:hidden}.public-link-box button{background:0 0;border:0;place-items:center;padding:4px;display:grid}.publish-checklist{gap:11px;margin:15px 0 0;padding:0;list-style:none;display:grid}.publish-checklist li{color:#65574b;align-items:center;gap:9px;font-size:13px;font-weight:700;display:flex}.publish-checklist svg{color:var(--green-600)}.system-info{gap:11px;margin-top:15px;display:grid}.system-info>div{background:#faf7f2;border-radius:8px;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;padding:10px;font-size:12px;display:grid}.system-info strong{font-size:11px}.dashboard-sidebar-backdrop{display:none}@keyframes spinner{to{transform:rotate(360deg)}}@keyframes heart-beat{0%,to{transform:scale(1)}45%{transform:scale(1.09)}}@keyframes couple-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes cover-heart-float{0%,to{opacity:.7;transform:translateY(5px)scale(.92)}50%{opacity:1;transform:translateY(-7px)scale(1.08)}}@keyframes prompt-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes prompt-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(18px)scale(.96)}}@keyframes drawer-in{0%{transform:translate(-100%)}}@media (max-width:1180px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wish-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.couple-theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:900px){.dashboard-sidebar{transition:transform .22s;transform:translate(-100%)}.dashboard-sidebar.open{transform:translate(0)}.dashboard-menu-close{place-items:center;display:grid}.dashboard-sidebar-backdrop{z-index:45;background:#251c156b;border:0;display:block;position:fixed;inset:0}.dashboard-main{width:100%;margin-left:0}.dashboard-mobile-menu{display:grid}.dashboard-overview-grid,.editor-grid,.publish-grid,.dashboard-list-grid{grid-template-columns:1fr}.couple-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.preview-card{min-height:auto}}@media (max-width:620px){.dashboard-header{min-height:70px;padding:11px 14px}.dashboard-title-row h1{font-size:17px}.dashboard-header-actions .publish-badge{display:none}.dashboard-content{padding:20px 14px}.dashboard-section-heading{align-items:flex-start}.dashboard-section-heading h2{font-size:22px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-form-grid,.wish-admin-grid,.dashboard-audio-preview{grid-template-columns:1fr}.dashboard-form-grid .span-2{grid-column:auto}.dashboard-card{padding:16px}.dashboard-primary-action,.dashboard-secondary-action{padding-inline:11px}}@media (max-width:374px){.cover-screen{padding-left:11px;padding-right:11px}.cover-brand{gap:6px;padding-inline:8px;font-size:12px}.cover-heading{margin-top:8px;padding-block:8px}.cover-title{font-size:31px}.cover-character-stage{min-height:184px}.cover-couple{width:72%}.cover-theme-couple{width:min(76%,270px)}.game-hud{left:9px;right:9px}.heart-meter{min-height:43px;padding-inline:6px}.heart-meter svg{width:14px;height:14px}.game-scene-label{max-width:calc(100% - 118px);font-size:11px}.game-controls{left:11px;right:11px}.game-control{width:56px;height:56px}.direction-controls{gap:9px}.action-controls{gap:8px}.run-control{width:48px;height:48px}.jump-control{width:62px;height:62px}.interact-control{width:50px;height:50px;bottom:75px;right:4px}.game-prompt{right:72px;bottom:max(142px, calc(env(safe-area-inset-bottom) + 132px));max-width:190px;font-size:11px}.quick-grid{gap:8px}.modal-body{padding:17px}}@media (max-height:740px){.cover-brand{min-height:40px;margin-top:2px;padding-block:6px}.cover-heading{margin-top:6px;padding-block:7px}.cover-kicker,.cover-date{font-size:11px}.cover-title{font-size:29px}.cover-character-stage{flex-basis:190px;min-height:158px}.cover-couple{width:min(66%,255px)}.cover-theme-couple{width:min(70%,245px);height:min(34dvh,265px)}.cover-action-card{padding-top:9px}.cover-actions .pixel-button{min-height:46px}}@media (min-width:431px){.guest-shell{border:8px solid #3d281bdb;border-radius:32px;height:min(932px,100dvh);min-height:min(932px,100dvh);margin:24px 0}.cover-screen,.loading-screen,.game-screen{height:100%;min-height:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.animation-lab{min-height:100dvh;color:var(--cream-50);background:linear-gradient(#231914f0,#231914fa),url(/assets/game/romantic-mountain-world.webp) 50%/cover fixed;padding:36px clamp(16px,4vw,48px) 64px}.animation-lab-heading{text-align:center;max-width:760px;margin:0 auto 28px}.animation-lab-heading p{color:var(--rose-300);text-transform:uppercase;margin:0 0 8px}.animation-lab-heading h1{font-family:var(--font-pixel);margin:0 0 9px;font-size:clamp(28px,6vw,48px)}.animation-lab-heading span{color:#e7d6bd}.animation-lab-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;max-width:1040px;margin:0 auto;display:grid}.animation-preview-card{min-height:184px;color:var(--brown-900);background:#fff9edf5;border:3px solid #6b4830;border-radius:10px;align-items:center;gap:14px;padding:14px;display:flex;box-shadow:0 5px #120d0a}.animation-preview-stage{background-color:#fff4df;background-image:linear-gradient(45deg,#ead7b6 25%,#0000 25%),linear-gradient(-45deg,#ead7b6 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#ead7b6 75%),linear-gradient(-45deg,#0000 75%,#ead7b6 75%),none;background-position:0 0,0 8px,8px -8px,-8px 0;background-repeat:repeat,repeat,repeat,repeat,repeat;background-size:16px 16px;background-attachment:scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box;border:2px solid #a77d54;flex:0 0 144px;width:144px;height:144px;overflow:hidden}.animation-preview-scale{transform-origin:0 0;width:96px;height:96px;transform:scale(1.5)}.animation-preview-sprite{background-image:var(--sprite-url);width:96px;height:96px;image-rendering:pixelated;animation:animation-preview var(--animation-duration) steps(var(--frame-count)) infinite;background-position:0 0;background-repeat:no-repeat}.animation-preview-card h2{font-family:var(--font-pixel);margin:0 0 4px;font-size:18px}.animation-preview-card p{color:var(--brown-700);margin:0;font-size:12px}.animation-key-list{background:#140e0bb8;border:2px solid #6b4830;border-radius:8px;max-width:1040px;margin:22px auto 0;padding:18px}.animation-key-list h2{margin:0 0 10px;font-size:16px}.animation-key-list code{color:#f5c5d1;overflow-wrap:anywhere;line-height:1.8}@keyframes animation-preview{to{background-position-x:calc(-1 * var(--sprite-width))}}@media (max-width:520px){.animation-preview-card{min-height:160px}.animation-preview-stage{flex-basis:120px;width:120px;height:120px}.animation-preview-scale{transform:scale(1.25)}}@media (prefers-reduced-motion:reduce){.animation-preview-sprite{animation-play-state:paused}}
