:root{color:#231942;font-synthesis:none;--purple:#7557ff;--pink:#f46fa8;--ink:#231942;--muted:#766e89;--line:#e8e1f2;--surface:#fff;--page:#f8f5ff;background:#ede8f7;font-family:Inter,ui-rounded,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html{background:#ede8f7}body{background:#ede8f7;min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #7557ff59}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-frame{width:min(100%,480px);min-height:100dvh;padding:0 22px calc(28px + env(safe-area-inset-bottom));background:var(--page);margin:0 auto;overflow:hidden;box-shadow:0 0 70px #3024551f}.topbar{justify-content:space-between;align-items:center;gap:16px;min-height:72px;display:flex}.brand{color:var(--ink);background:0 0;border:0;align-items:center;gap:10px;padding:0;font-weight:900;display:flex}.brand span{color:#fff;background:linear-gradient(135deg, var(--purple), var(--pink));border-radius:14px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 8px 20px #7557ff40}.top-badge{color:#756d86;background:#ffffffb8;border:1px solid #ded5ef;border-radius:999px;padding:7px 10px;font-size:.75rem;font-weight:700}.card{background:var(--surface);border:1px solid #dcd4ebcc;border-radius:24px;box-shadow:0 14px 40px #31235b14}.eyebrow{color:var(--purple);letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:.78rem;font-weight:900}h1{color:var(--ink);letter-spacing:-.045em;margin:0;font-size:clamp(2rem,9vw,2.8rem);line-height:1.13}h1 em{color:var(--purple);font-style:normal}.description{color:var(--muted);margin:16px 0 0;font-size:1rem;line-height:1.75}.primary,.secondary,.danger{border-radius:17px;width:100%;min-height:54px;margin-top:14px;padding:13px 18px;font-size:1rem;font-weight:900}.primary{color:#fff;background:linear-gradient(100deg, var(--purple), #9b55ef 55%, var(--pink));border:0;box-shadow:0 14px 28px #7557ff3b}.primary:disabled{cursor:default;opacity:.38;box-shadow:none}.secondary{color:#4e3c79;background:#fff;border:1px solid #dcd3ee}.danger{color:#b52d59;background:#fff3f7;border:1px solid #ffc9d8}.text-button{width:100%;color:var(--muted);background:0 0;border:0;padding:17px}.hero-grid{padding-top:18px}.home-actions{margin-top:26px}.character-stage{place-items:end center;height:350px;margin:18px -22px 0;display:grid;position:relative;overflow:hidden}.character-stage:before{content:"";background:radial-gradient(circle at 45% 40%,#fff 0 32%,#ebe4ff 33% 58%,#f5e6ff33 59%);border-radius:50%;width:270px;height:270px;position:absolute;bottom:22px}.character-stage img{z-index:2;object-fit:contain;filter:drop-shadow(0 20px 20px #2f1f592e);max-width:300px;height:325px;position:relative}.orbit{z-index:1;border:1px solid #7557ff33;border-radius:50%;position:absolute}.orbit-one{width:330px;height:160px;bottom:80px;transform:rotate(-13deg)}.orbit-two{width:280px;height:280px;bottom:20px}.float-chip{z-index:3;color:#54486e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffdb;border:1px solid #ffffffe6;border-radius:999px;padding:8px 12px;font-size:.75rem;font-weight:800;position:absolute;box-shadow:0 9px 22px #3021581f}.chip-one{top:76px;left:14px}.chip-two{top:150px;right:8px}.steps{grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0 34px;display:grid}.step{flex-direction:column;gap:13px;min-height:92px;padding:14px;display:flex}.step strong{color:var(--purple);font-size:.75rem}.step span{font-size:.78rem;font-weight:800;line-height:1.4}.page-head{padding:30px 0 20px}.guidance{gap:8px;margin:4px 0 18px;display:flex}.guidance span{color:#5c5370;text-align:center;background:#eee9f9;border-radius:999px;flex:1;padding:9px 4px;font-size:.73rem;font-weight:800}.photo-picker{width:100%;min-height:230px;color:var(--muted);border-style:dashed;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:0;display:flex;overflow:hidden}.photo-picker b{color:#fff;background:linear-gradient(135deg, var(--purple), var(--pink));border-radius:18px;place-items:center;width:54px;height:54px;font-size:1.8rem;display:grid}.photo-picker strong{color:var(--ink);font-size:1.08rem}.photo-picker span{font-size:.85rem}.photo-picker.has-photo{border-style:solid;height:330px;display:block;position:relative}.photo-picker.has-photo img{object-fit:cover;width:100%;height:100%}.photo-picker.has-photo span{color:#fff;background:#191230b8;border-radius:999px;padding:8px 12px;position:absolute;bottom:12px;right:12px}.photo-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.photo-actions .primary,.photo-actions .secondary{margin-top:12px}.camera-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#130d23d1;align-items:end;padding:18px;display:grid;position:fixed;inset:0}.camera-panel{background:#fff;border-radius:26px;width:min(100%,520px);margin:0 auto;padding:14px;box-shadow:0 22px 70px #0006}.camera-preview{aspect-ratio:3/4;background:#181324;border-radius:19px;position:relative;overflow:hidden}.camera-preview video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.camera-preview span{color:#fff;background:#140e23b8;border-radius:999px;width:max-content;max-width:calc(100% - 28px);padding:8px 12px;font-size:.84rem;position:absolute;bottom:14px;left:50%;translate:-50%}.consent{color:#5e566e;align-items:flex-start;gap:11px;margin:18px 3px;font-size:.86rem;line-height:1.55;display:flex}.consent input{width:19px;height:19px;accent-color:var(--purple);flex:none}.privacy-note{color:#645b76;margin-bottom:12px;padding:18px}.privacy-note strong{color:var(--ink)}.privacy-note p{margin:7px 0 0;font-size:.86rem;line-height:1.6}.error{color:#a52955;background:#fff0f5;border-radius:12px;padding:11px 14px;font-weight:800}.character-result{text-align:center;margin:16px 0 30px;padding:22px}.character-result img{object-fit:contain;width:100%;height:360px}.character-result>p:not(.eyebrow){color:var(--muted);line-height:1.6}.character-strip{grid-template-columns:68px 1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.character-strip img{object-fit:contain;background:#eee8ff;border-radius:18px;width:68px;height:68px}.character-strip div{flex-direction:column;gap:5px;min-width:0;display:flex}.character-strip div span{color:var(--muted);font-size:.76rem}.character-strip button{color:var(--purple);background:0 0;border:0;padding:9px;font-size:.78rem;font-weight:900}.section-heading{margin:34px 2px 15px}.section-heading h2{margin:0;font-size:1.1rem}.section-heading p{color:var(--muted);margin:5px 0 0;font-size:.82rem;line-height:1.5}.situation-list{gap:14px;display:grid}.situation-card{color:#fff;text-align:left;border:0;flex-direction:column;min-height:210px;padding:24px;display:flex;overflow:hidden}.theme-late{background:linear-gradient(145deg,#33216f,#7759ee)}.theme-message{background:linear-gradient(145deg,#6f245d,#d9548f)}.theme-lottery{background:linear-gradient(145deg,#8e4224,#ed8751)}.card-topline,.card-action{justify-content:space-between;align-items:center;display:flex}.card-topline{opacity:.78;font-size:.72rem}.situation-card>strong{margin-top:32px;font-size:1.42rem;line-height:1.3}.situation-card>small{opacity:.78;margin-top:9px;font-size:.84rem;line-height:1.55}.card-action{border-top:1px solid #ffffff2e;margin-top:auto;padding-top:17px;font-size:.83rem;font-weight:900}.card-action b{background:#ffffff24;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.history{margin-bottom:34px}.history-list{padding:0 18px;overflow:hidden}.history-list button{border:0;border-bottom:1px solid var(--line);width:100%;min-height:76px;color:var(--ink);text-align:left;background:0 0;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:14px 0;display:grid}.history-list button:last-child{border-bottom:0}.history-list button span{flex-direction:column;gap:4px;display:flex}.history-list small{color:var(--muted)}.history-list button>strong{max-width:145px;color:var(--purple);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.history-list i{color:#a49bb7;font-style:normal}.progress-row{color:var(--muted);justify-content:space-between;align-items:center;padding:20px 0 28px;font-size:.8rem;font-weight:800;display:flex}.progress-row b{color:var(--purple);background:#ece6ff;border-radius:999px;padding:7px 10px}.story-stage{padding-bottom:28px}.story-stage>.primary:first-of-type{margin-top:22px}.story-stage.center{text-align:center;flex-direction:column;justify-content:center;min-height:590px;display:flex}.event-value{color:var(--purple);letter-spacing:-.08em;font-size:4.5rem;font-weight:950;line-height:1}.entry-scene{background:linear-gradient(155deg,#ded6ff,#fff 65%);height:350px;margin-top:26px;position:relative;overflow:hidden}.entry-scene>b{z-index:2;color:#fff;background:#2b1e52cc;border-radius:999px;padding:8px 12px;position:absolute;top:18px;left:18px}.entry-scene img{object-fit:contain;width:100%;height:100%}.entry-scene>span{color:#fff;background:#2b1e52d1;border-radius:12px;padding:9px 12px;font-size:.8rem;font-weight:800;position:absolute;bottom:16px;right:16px}.speaker{color:var(--purple);margin:18px 0 10px;font-size:.82rem;font-weight:900}.quote{font-size:2.6rem}.quote.small{font-size:2rem}.choice-hint{color:var(--muted);margin:14px 0 24px}.choice-list{gap:12px;display:grid}.choice-button{width:100%;min-height:82px;color:var(--ink);text-align:left;background:#fff;border:1px solid #ded6ec;border-radius:20px;grid-template-columns:44px 1fr auto;align-items:center;gap:13px;padding:13px 16px;display:grid;box-shadow:0 10px 25px #31235b0f}.choice-button>b{width:42px;height:42px;color:var(--purple);background:#eee9ff;border-radius:14px;place-items:center;display:grid}.choice-button>span{flex-direction:column;gap:5px;min-width:0;display:flex}.choice-button small{color:var(--muted)}.choice-button i{color:var(--purple);font-style:normal}.choice-button.previous{border-color:var(--purple)}.choice-button.previous small{color:var(--purple)}.choice-button.selected{border-color:var(--purple);background:#faf8ff}.choice-button.locked{cursor:default}.spinner{background:radial-gradient(circle,#fff 0 38%,#e9e1ff 39% 61%,#0000 62%);border-radius:50%;align-self:center;place-items:center;width:210px;height:210px;margin-bottom:30px;display:grid;position:relative}.spinner:after{content:"";border:2px dashed #7557ff61;border-radius:50%;animation:7s linear infinite spin;position:absolute;inset:7px}.spinner img{z-index:2;object-fit:contain;width:145px;height:170px;position:relative}@keyframes spin{to{transform:rotate(360deg)}}.error-card{padding:22px}.consequence{background:linear-gradient(145deg,#e6deff,#ffe6f1);height:430px;margin-top:20px;position:relative;overflow:hidden}.consequence img{object-fit:contain;width:100%;height:100%}.consequence>b{color:#fff;background:#2d1d56c7;border-radius:999px;padding:8px 10px;font-size:.75rem;position:absolute;bottom:12px;right:12px}.preview-symbol{color:#fff;background:linear-gradient(135deg, var(--purple), var(--pink));border-radius:18px;place-items:center;min-width:58px;height:58px;padding:0 10px;font-size:1.5rem;font-weight:900;display:grid;position:absolute;top:18px;right:18px}.reaction{margin:14px 0;padding:18px}.reaction p{margin:0 0 8px;line-height:1.6}.reaction p:last-child{margin-bottom:0}.episode-title{margin-bottom:18px}.episode-title h1{font-size:clamp(2rem,8vw,2.7rem)}.episode-title>p:last-child{color:var(--muted);line-height:1.6}.panel-progress{grid-template-columns:repeat(5,1fr);gap:7px;margin:18px 0;display:grid}.panel-progress span{background:#e6def2;border-radius:99px;height:5px}.panel-progress span.done{background:linear-gradient(90deg, var(--purple), var(--pink))}.webtoon-panel{position:relative;overflow:hidden}.panel-number{z-index:2;color:#fff;letter-spacing:.08em;background:#261947c7;border-radius:999px;padding:7px 9px;font-size:.68rem;font-weight:900;position:absolute;top:12px;left:12px}.panel-image{background:linear-gradient(145deg,#e6deff,#ffe6f1);height:430px}.panel-image img{object-fit:contain;width:100%;height:100%;display:block}.panel-copy{padding:18px}.panel-copy h2{margin:0;font-size:1.25rem}.panel-copy p{color:var(--muted);margin:8px 0 0;line-height:1.55}.webtoon-choice{margin-top:22px}.webtoon-choice h2{margin:0 0 14px}.generation-note{color:var(--muted);margin-top:20px;font-size:.8rem}.episode-result>header{margin-bottom:24px}.episode-result>header>p:not(.eyebrow){color:var(--muted);line-height:1.55}.episode-path{gap:18px;display:grid}.webtoon-panel.compact .panel-image,.ending-panel .panel-image{height:360px}.webtoon-panel.compact .panel-copy{padding:15px}.ending-panel{position:relative;overflow:hidden}.ending-panel .panel-copy{background:linear-gradient(145deg,#f2edff,#fff0f6)}.ending-panel .panel-copy h2{color:var(--purple)}.result-card{overflow:hidden}.result-card>div{color:var(--muted);justify-content:space-between;padding:14px 16px;font-size:.75rem;display:flex}.result-card>img{object-fit:contain;background:linear-gradient(145deg,#e6deff,#ffe6f1);width:100%;height:360px;display:block}.result-card article{padding:20px}.result-card article h1{letter-spacing:-.02em;font-size:1.35rem}.result-card article p{margin:10px 0 0;line-height:1.6}.result-card footer{color:var(--purple);background:#f1ecff;justify-content:space-between;padding:13px 16px;font-size:.72rem;font-weight:900;display:flex}.replay-question{text-align:center;margin:22px 0 4px;font-weight:900}.missing,.legal{margin:60px 0;padding:26px}.missing h1,.legal h1{font-size:2rem}.missing p,.legal>p:not(.eyebrow){color:var(--muted);line-height:1.7}.app-frame>footer{border-top:1px solid var(--line);color:#898197;text-align:center;padding-top:28px}.app-frame>footer nav{flex-wrap:wrap;justify-content:center;gap:5px 13px;display:flex}.app-frame>footer button{color:#655b77;background:0 0;border:0;padding:4px 0;font-size:.75rem}.app-frame>footer p{font-size:.68rem;line-height:1.5}@media (width>=760px){.app-frame{width:min(100%,920px);padding-inline:42px}.hero-grid{grid-template-columns:1fr 1fr;align-items:center;gap:26px;min-height:620px;display:grid}.character-stage{margin-inline:0}.steps{max-width:600px;margin-inline:auto}.page-head{max-width:620px}.situation-list{grid-template-columns:repeat(3,1fr)}.situation-card{min-height:300px}.story-stage{max-width:520px;margin-inline:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
