.photo-option video{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}.click-hint{z-index:3;border-radius:24px}.click-hint svg{width:100%;height:100%;overflow:visible;pointer-events:none}.tap-hand{fill:#ffffff66;stroke:#ffffffe0;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;animation:cursor-tap 1.5s ease-in-out infinite}.tap-ring{fill:none;stroke:#ffffff70;stroke-width:5;transform-origin:45px 18px;animation:tap-ripple 1.5s ease-out infinite}@keyframes cursor-tap{0%,65%,100%{transform:translate(0,0)}30%,45%{transform:translate(0,-5px)}}@keyframes tap-ripple{0%,15%{opacity:0;transform:scale(.45)}35%{opacity:.8}70%,100%{opacity:0;transform:scale(1.15)}}@media(prefers-reduced-motion:reduce){.tap-hand,.tap-ring{animation:none}.tap-ring{opacity:.4}}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#1b1021}body{font-family:Arial,"Microsoft YaHei",sans-serif}button{font:inherit;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}.viewport{min-height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden}.frame{position:relative;flex:none;overflow:hidden}.stage{position:absolute;left:0;top:0;width:880px;transform-origin:top left;isolation:isolate}.backdrop{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;user-select:none}.controls{position:absolute;inset:0}.tap{position:absolute;border:0;background:transparent;color:transparent;cursor:pointer;padding:0;touch-action:manipulation;border-radius:22px}.tap:focus-visible,.photo-option:focus-visible,.radio-option:focus-visible{outline:6px solid #7e459a;outline-offset:6px;z-index:2}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.radio-option{position:absolute;border:3px solid transparent;border-radius:19px;background:transparent;padding:0;cursor:pointer}.radio-option[aria-checked=true]{border-color:#8f4eaf}.radio-option .radio-circle{display:none;position:absolute;right:39px;top:27px;width:57px;height:57px;border:4px solid #8348a1;border-radius:50%;background:#ffffff}.radio-option[aria-checked=true] .radio-circle{display:block}.radio-circle:after{content:"";position:absolute;inset:6px;border-radius:50%;background:#553367}.submit-face{background:#502f60;color:#ffffff;font-size:38px}.submit-face:disabled{opacity:0}.submit-face.busy{opacity:1}.spinner{display:block;width:29px;height:29px;margin:auto;border:4px solid #ffffff70;border-right-color:white;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.photo-option{position:absolute;border:0;padding:0;overflow:hidden;background:#dac5e5;border-radius:28px;cursor:pointer;outline:4px solid transparent;outline-offset:-2px}.photo-option img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}.photo-option[aria-pressed=true]{outline-color:#985bb6}.disabled-mask{border-radius:60px;background:#bb93cf80;cursor:not-allowed}.progress-track{position:absolute;height:30px;background:#f8f0f8;border-radius:30px;overflow:hidden}.progress-fill{height:100%;width:0;background:linear-gradient(90deg,#a36dbe,#ba92ce);border-radius:30px;transition:width .06s linear}.plain-screen{position:absolute;inset:0;background:linear-gradient(#dfcce8,#dcc8e6 47%,#eed9ef);color:#1f1225}.plain-title{margin:30px 0 0;text-align:center;font-size:46px;font-weight:900;font-style:italic}.plain-center{position:absolute;left:110px;right:110px;top:500px;text-align:center}.plain-center h1{font-size:46px;line-height:1.4;margin:0 0 32px}.plain-center p{font-size:30px;line-height:1.8;margin:0}.plain-button{position:absolute;left:140px;right:140px;bottom:125px;height:100px;border:0;border-radius:56px;background:#24152b;color:white;font-size:36px;cursor:pointer}.plain-button:focus-visible{outline:6px solid #7e459a;outline-offset:6px}.secondary-end{bottom:250px;background:transparent;border:3px solid #26172e;color:#26172e}.scrim{position:absolute;inset:0;background:#00020677;display:flex;justify-content:center;align-items:center;z-index:20}.dialog{background:white;border-radius:24px;padding:40px;width:710px;color:#281830;box-shadow:0 12px 50px #00020633}.dialog h2{font-size:40px;margin:0 0 26px}.dialog p{font-size:29px;line-height:1.65}.dialog button{width:100%;font-size:32px;min-height:84px;background:#533163;color:white;border:0;border-radius:16px;cursor:pointer}.dialog button+button{margin-top:18px;background:#f5e9f5;color:#281830}.dialog button:focus-visible{outline:5px solid #7e459a}.menu{position:absolute;right:36px;top:110px;width:300px;padding:10px;background:white;box-shadow:0 10px 30px #00020644;border-radius:15px;z-index:12}.menu button{display:block;width:100%;border:0;padding:22px 12px;background:white;color:#27172f;font-size:30px;text-align:center;cursor:pointer}.menu button+button{border-top:1px solid #ead1eb}.menu button:focus-visible{outline:4px solid #7e459a}.nojs{position:fixed;bottom:20px;left:20px;right:20px;padding:12px;background:#ffffff;color:#120b16;z-index:100;text-align:center}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:1.5s}.progress-fill{transition:none}}
.safari-launch{z-index:4;background:#ffffff;border-radius:35px;overflow:hidden}.safari-launch svg,.safari-placeholder-icon svg{display:block;width:100%;height:100%}.safari-placeholder-icon{position:absolute}.plain-center .preview-note{margin-top:36px;color:#73408d;font-size:24px}

:root{color-scheme:dark;--ink:#faf4fa;--muted:#d2b7df;--accent:#c09cd2;--night:radial-gradient(ellipse at 88% 5%,#37204288,transparent 44%),radial-gradient(ellipse at 3% 85%,#2c1a3588,transparent 48%),linear-gradient(145deg,#180e1d,#180e1d 65%,#1a0f1f)}
html,body{background:#180e1d;color:var(--ink)}
.stage{background:var(--night)}
.backdrop{filter:grayscale(1) invert(1) brightness(.87) contrast(1.6) sepia(.75) saturate(2.8) hue-rotate(220deg);mix-blend-mode:screen}
.controls{z-index:2}
.stage[data-page=welcome] .backdrop{height:1500px;object-fit:cover;object-position:50% 30%;filter:brightness(.78) saturate(.85);mix-blend-mode:normal;mask-image:linear-gradient(#000206 0%,#000206 55%,transparent 98%)}
.welcome-copy{position:absolute;z-index:1;margin:0;color:var(--ink)}
.welcome-copy h1{font-size:64px;line-height:1.25;margin:0 0 40px;font-weight:700;letter-spacing:-2px}
.welcome-copy p{font-size:36px;margin:0;color:#dfcce8}
.tap-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.tap.primary-face,.plain-button{background:linear-gradient(125deg,#b285c8,#9355b2);border:2px solid #cfb3dd63;color:#ffffff;box-shadow:0 12px 38px #a774c136,inset 0 1px 0 #ffffff1f;font-size:38px;font-weight:600}
.tap.secondary-face{background:linear-gradient(135deg,#26172e,#1b1021);border:2px solid #985db6;color:#edd8ee;font-size:38px}
.tap.pill-face{border-radius:60px}
.primary-face:hover,.plain-button:hover{filter:brightness(1.12)}
.tap:focus-visible,.photo-option:focus-visible,.radio-option:focus-visible,.plain-button:focus-visible,.dialog button:focus-visible{outline-color:#e0cfe9}
.tap.native-close,.tap.native-more{color:#f4e7f5;background:transparent;font-weight:300;font-size:60px;border:0}
.tap.native-more{font-size:32px;letter-spacing:5px}
.form-panel{position:absolute;background:linear-gradient(160deg,#26172e,#1c1122 62%,#1f1225);border:2px solid #4b2d5b;border-radius:24px;box-shadow:0 25px 80px #00020677}
.native-progress{position:absolute;background:linear-gradient(90deg,#be97d1,#ecd5ed);border-radius:8px;box-shadow:0 0 25px #c3a0d458}
.form-step,.form-title,.form-question,.form-privacy-copy{position:absolute;margin:0}
.form-step{font-size:30px;line-height:45px;color:#cbacda}
.form-title{font-size:46px;line-height:64px;font-weight:700;color:#faf4fa}
.form-question{font-size:34px;line-height:60px;color:#d2b9df}
.form-privacy-copy{font-size:27px;line-height:38px;color:#c4a3d5}
.tap.privacy-link{color:#edd8ee;font-size:28px;font-weight:600}
.radio-option{background:#1a0f1f;border:3px solid #452954;color:#f5e9f5;text-align:left}
.radio-label{position:absolute;left:32px;top:0;line-height:112px;font-size:38px}
.radio-option[aria-checked=true]{border-color:#c3a0d4;background:#311d3b;box-shadow:0 0 30px #aa78c329}
.radio-option .radio-circle{display:block;border-color:#975ab5;background:#1c1122}
.radio-option .radio-circle:after{display:none;background:#cbaeda}
.radio-option[aria-checked=true] .radio-circle{border-color:#dfcce8}
.radio-option[aria-checked=true] .radio-circle:after{display:block}
.submit-face:disabled{opacity:1;background:#311d3b;color:#af81c6;border-color:#452954;box-shadow:none}
.submit-face.busy{background:linear-gradient(125deg,#b285c8,#9355b2);color:#ffffff}
.success-mark{position:absolute;border-radius:50%;background:linear-gradient(140deg,#c4a1d5,#9c62b9);color:#ffffff;font-size:98px;text-align:center;line-height:140px;font-weight:700;box-shadow:0 0 85px #ad7ec550}
.success-title,.success-subtitle{position:absolute;margin:0;text-align:center}
.success-title{font-size:55px;line-height:90px;color:#faf4fa}
.success-subtitle{font-size:42px;line-height:70px;color:#d3bae0}
.photo-option{background:#24152b;outline:4px solid #9150b1;box-shadow:0 8px 24px #00020655}
.photo-option[aria-pressed=true]{outline-color:#cbacda;box-shadow:0 0 30px #b88fcd66}
.photo-option img{filter:none;mix-blend-mode:normal}
.tap.disabled-mask{background:#301d3a;border-color:#442852;color:#ac7bc4;box-shadow:none}
.progress-track{z-index:3;background:#25162d;box-shadow:inset 0 0 0 2px #482b57}
.progress-fill{background:linear-gradient(90deg,#a673c0,#c09cd2);box-shadow:0 0 25px #b78ecc80}
.plain-screen{background:var(--night);color:var(--ink)}
.plain-title{color:#ccafdb;text-shadow:0 0 36px #a572bf55}
.plain-center p{color:#d5bde1}
.plain-center .preview-note{color:#bf9ad2}
.secondary-end{background:#221429;border-color:#9355b2;color:#f0ddf1;box-shadow:none}
.scrim{background:#180e1db8;backdrop-filter:blur(8px)}
.dialog{background:#24152b;color:#faf4fa;border:2px solid #975ab5;box-shadow:0 25px 100px #00020688}
.dialog p{color:#dcc8e6}
.dialog button{background:linear-gradient(125deg,#b285c8,#9355b2);color:#ffffff}
.menu{background:#24152b;border:2px solid #8449a2;box-shadow:0 20px 65px #00020688}
.menu button{background:#24152b;color:#f7eef8}
.menu button+button{border-top-color:#442851}
.safari-launch{box-shadow:0 0 50px #ae7fc63b;background:#ffffff}
.nojs{background:#26172e;color:#f6ebf7;border:1px solid #9a60b7}

.gate-scene{position:absolute;inset:0;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 95% 20%,#9152b144,transparent 20%),radial-gradient(ellipse at 3% 74%,#331e3e5c,transparent 35%)}
.gate-scene::before,.gate-scene::after{content:"♥";position:absolute;color:#eed9ef48;font-size:240px;line-height:1;filter:blur(24px);transform:rotate(-25deg);right:-30px;top:200px}
.gate-scene::after{font-size:150px;right:650px;top:1230px;color:#c5a4d633;transform:rotate(15deg)}
.gate-heading{position:absolute;top:32px;left:55px;width:770px;text-align:center}
.gate-brand{font-size:60px;font-weight:900;font-style:italic;line-height:1.35;letter-spacing:1px;text-shadow:0 0 32px #c9a9d977;color:#f7eef8}
.gate-brand::before,.gate-brand::after{content:"⌁";display:inline-block;margin:0 45px;font-size:57px;color:#c4a1d584;font-weight:400;vertical-align:middle}
.gate-subtitle{font-size:29px;line-height:1.5;color:#efdbef;margin:12px 0 0}
.gate-card-stack{position:absolute;left:110px;top:275px;width:675px;height:1110px;border:3px solid #d3bae0;border-radius:40px;background:linear-gradient(160deg,#24152b,#1a1020 80%);transform:rotate(2deg);box-shadow:0 25px 80px #00020633}
.gate-card-stack::before,.gate-card-stack::after{content:"";position:absolute;inset:-12px;border:3px solid #c09cd2;border-radius:40px;transform:rotate(-7deg);z-index:-1}
.gate-card-stack::after{inset:-15px;transform:rotate(5deg);border-color:#aa78c3}
.gate-card-title,.gate-question,.gate-preference-title,.gate-progress-title,.gate-progress-sub,.gate-photo-caption,.gate-guide-action{position:absolute;margin:0;color:#f9f2fa}
.gate-card-title{font-size:29px;font-weight:900;font-style:italic;letter-spacing:1px;line-height:1.3;color:#ebd2ec;max-width:400px}
.gate-question{font-size:39px;font-weight:500;line-height:1.7;text-wrap:pretty}
.gate-preference-title{font-size:34px;line-height:1.4;font-weight:600}
.gate-photo-caption{font-size:30px;font-weight:700;line-height:44px;text-align:center;pointer-events:none}
.gate-progress-title{font-size:41px;font-weight:700;line-height:1.45;text-align:center}
.gate-progress-sub{font-size:29px;line-height:1.3;text-align:center;color:#dac5e5}
.gate-guide-copy{position:absolute;left:56px;top:200px;width:768px;color:#f4e7f5;font-size:31px;line-height:1.48}
.gate-guide-copy h1{font-size:46px;line-height:1.25;margin:0 0 26px;color:#faf4fa;font-weight:800}
.gate-guide-copy p{margin:0 0 26px}.gate-guide-copy .gate-guide-lead{font-size:33px;font-weight:600;color:#edd8ee}
.gate-guide-next{font-weight:600}
.gate-guide-notes{padding-left:44px;margin:42px 0 0;font-size:25px;line-height:1.5;color:#ceb2dc}
.gate-guide-notes li{padding-left:6px;margin-bottom:21px}
.gate-guide-action{font-size:31px;line-height:1.45;font-weight:700}
.gate-handoff-instructions{position:absolute;margin:0;padding:20px 24px;border:2px solid #b991cd4f;border-radius:20px;background:#301d3a4d;color:#f1e0f2;font-size:27px;line-height:1.45;white-space:pre-line;pointer-events:none}
.handoff-address{width:100%;margin:0 0 30px;padding:20px;border:2px solid #a572bf;border-radius:12px;background:#180e1d;color:#f7eef8;font-size:24px;user-select:text;-webkit-user-select:text}
.success-title{font-size:50px;line-height:1.4;display:flex;align-items:center;justify-content:center}
.success-subtitle{font-size:37px;line-height:1.4}
body.local-preview{max-width:390px;margin:0 auto;min-height:100dvh}


.photo-option img{object-fit:cover;object-position:center 28%}.age-tile{display:grid;place-items:center;background:linear-gradient(135deg,#331e3e,#201326);color:#f9f2fa}.age-tile-label{font-size:38px;font-weight:700;line-height:1.5;padding:16px}.form-title{font-size:42px}.gate-question{font-size:42px}.gate-preference-title{font-size:38px}

.text-option{position:absolute;display:flex;align-items:center;gap:28px;border:3px solid #4b2d5b;border-radius:24px;padding:22px 30px;background:linear-gradient(135deg,#25162c,#1a1020);color:#f9f2fa;text-align:left;cursor:pointer}
.text-option[aria-checked=true]{border-color:#cbacda;background:#331e3e;box-shadow:0 0 30px #b88fcd55}
.text-option:focus-visible{outline:6px solid #e0cfe9;outline-offset:6px}.answer-number{display:grid;place-items:center;width:48px;height:48px;border:2px solid #b991cd;border-radius:50%;font-size:28px;color:#d8c1e3;flex:none}.answer-label{font-size:39px;font-weight:650;flex:1}.answer-radio{width:34px;height:34px;border:3px solid #b082c7;border-radius:50%;flex:none}.text-option[aria-checked=true] .answer-radio{background:#ceb2dc;border:7px solid #2e1b37;outline:3px solid #ceb2dc}
.photo-option[aria-checked=true]{outline-color:#cbacda;box-shadow:0 0 30px #b88fcd66}.ai-badge{position:absolute;left:10px;bottom:10px;padding:5px 10px;background:#1d1123cc;border:1px solid #dac5e5;border-radius:8px;color:#faf4fa;font-size:21px;line-height:1.3}.stage[data-page=pref0] .gate-preference-title{font-size:37px}.stage[data-page=pref0] .gate-photo-caption{font-size:31px}
