
:root{color-scheme:light;--bg:#F4F4F8;--plate:#F4F4F8;--fg:#242238;--muted:#55536B;--red:#801115;--option:#E9E9F1;--selected:#231F67;--on:#F5F3FA}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:Inter,"Microsoft YaHei",sans-serif}body[data-mode=M],body[data-mode=H],body[data-mode=K]{color-scheme:dark}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:1}button:focus-visible{outline:2px solid var(--red);outline-offset:4px}#screen{max-width:390px;min-height:100vh;min-height:100svh;margin:auto;padding:32px 16px;position:relative;overflow:hidden}.card{position:relative;display:flex;flex-direction:column;gap:16px;padding:24px;border:1px solid #ffffffcc;border-radius:16px;background:var(--plate);background:color-mix(in srgb,var(--plate) 96%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 12px 32px #241f5917}.meta{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:12px;line-height:20px}.badge{padding:2px 8px;border-radius:12px;background:var(--option);white-space:nowrap}.question{margin:0;font-size:16px;line-height:26px;white-space:pre-line;overflow-wrap:anywhere}.cover .question{font-size:28px;line-height:40px}.options{display:grid;gap:8px}.option{position:relative;overflow:hidden;min-height:48px;padding:12px 16px;border:0;border-radius:8px;background:var(--option);color:var(--fg);text-align:left;font-size:14px;line-height:22px}.option[aria-pressed=true]{background:var(--selected);color:var(--on)}.reply{min-height:30px;font-size:20px;line-height:30px;color:var(--muted);margin:0;white-space:pre-line}.turns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.turns button{min-height:48px;border:0;border-radius:24px;background:var(--selected);color:var(--on);font-size:14px}.turns button:disabled{opacity:.3;background:var(--option);color:var(--fg)}.note{margin:0;color:var(--muted);font-size:12px;line-height:20px;white-space:pre-line}.cover .turns{visibility:hidden}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;min-height:844px}.stage-line{position:absolute;left:40px;right:40px;top:358px;font-size:40px;line-height:56px;margin:0;color:var(--red);white-space:pre-line;overflow-wrap:anywhere}.stage-line.huge{font-size:96px;line-height:120px}.echo{position:absolute;width:310px;max-width:calc(100% - 16px);line-height:40px;color:var(--red);white-space:pre-line;overflow-wrap:anywhere;opacity:0}.echo.e1{left:8px;top:236px;font-size:28px;--alpha:.25;--delay:.44s}.echo.e2{left:145px;top:532px;font-size:24px;--alpha:.3;--delay:.58s}.echo.e3{left:20px;top:652px;font-size:20px;--alpha:.35;--delay:.72s}.echo.show{opacity:var(--alpha)}.heart{position:absolute;left:calc(100% - 66px);top:520px;font-family:"Microsoft YaHei",sans-serif;font-variant-emoji:text;font-size:12px;line-height:18px;color:var(--red)}.heart.float{animation:heart-float 1.4s both}.heart.stick{animation:heart-stick 1.5s both}.pressure .card,.ending .card,.converge .card{opacity:.09}.black .card,.code .card{opacity:0}.pressure .card,.ending .card,.black .card,.code .card,.converge .card{pointer-events:none}body[data-mode=K] .card{opacity:0}.ending .stage-line.light{color:var(--fg)}.enter{animation:emerge .18s both}.echo.enter{animation:echo-in .18s var(--delay) both}.faded{opacity:.12;animation:fade-message .6s both}.ready .faded{animation:none}.ripple{position:absolute;left:var(--x);top:var(--y);width:140px;height:140px;border:1px solid currentColor;border-radius:50%;opacity:0;animation:ripple .24s both;pointer-events:none}.code .stage-line,.code .echo{font-family:Inter,monospace;font-size:20px;line-height:36px;color:#F07888;animation:code-slip .6s linear both}.code .e1,.code .e3{color:#13A4E7}.code .echo{opacity:.6}.converge .stage-line{top:238px;font-size:24px;line-height:60px}.ready .echo{animation:none}.ending[data-state=aEnd5] .echo{left:46px;top:366px;font-size:40px;line-height:56px;--alpha:.22}.tiny-progress{position:absolute;left:40px;right:40px;top:90px;height:2px;background:#3F4CA033}.tiny-progress:after{content:"";display:block;height:2px;width:87.5%;background:#F0788866;animation:retreat .7s both}body[data-mode=M] .card,body[data-mode=H] .card{border-color:#3F4CA080}body[data-mode=K] .card{box-shadow:none}body[data-mode=M] .option,body[data-mode=H] .option{border:1px solid #3F4CA057}body[data-mode=H] .heart{color:#FF8A9A}
@keyframes emerge{from{opacity:0}to{opacity:1}}@keyframes echo-in{from{opacity:0}to{opacity:var(--alpha)}}@keyframes fade-message{from{opacity:1}to{opacity:.12}}@keyframes ripple{from{transform:translate(-50%,-50%) scale(.05);opacity:.35}to{transform:translate(-50%,-50%) scale(1);opacity:0}}@keyframes heart-float{0%{transform:translateY(14px);opacity:0}13%{opacity:1}50%,79%{transform:translateY(0);opacity:1}100%{transform:translateY(0);opacity:0}}@keyframes heart-stick{0%{transform:translateY(14px);opacity:0}12%{opacity:1}47%,100%{transform:translateY(0);opacity:1}}@keyframes code-slip{0%,100%{transform:translateX(0)}20%{transform:translateX(-12px)}42%{transform:translateX(8px)}67%{transform:translateX(-4px)}}@keyframes retreat{from{width:100%}to{width:87.5%}}
@supports not (backdrop-filter:blur(1px)){.card{background:var(--plate)}}@media(max-width:360px){.card{padding:20px}.stage-line{left:32px;right:32px;font-size:34px;line-height:48px}.echo.e2{left:110px;max-width:calc(100% - 110px)}.ending[data-state=aEnd5] .echo{left:38px;font-size:34px;line-height:48px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.heart.float{opacity:0}.echo.show{opacity:var(--alpha)}.code .stage-line{font-size:0}.code .stage-line:after{content:' ';font-size:20px}.code .echo{display:none}.card{backdrop-filter:none;background:var(--plate)}}

.reply{padding-right:14px}.heart.cling{animation:cling .85s both}.burst-word{position:absolute;white-space:nowrap;color:var(--red);line-height:1.4;opacity:var(--alpha);animation:word-burst .55s var(--delay) both}.ending[data-state=aEnd5] .echo{font-size:32px;font-size:clamp(26.24px,8.205vw,32px);line-height:1.4;width:calc(100% - 86px)}
.code .overlay{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;min-height:0;background:#0B0819;overflow:hidden}.glitch-code{position:absolute;white-space:pre;font-family:Inter,monospace;line-height:1.4;opacity:var(--alpha);text-shadow:2px 0 #801115,-1px 0 #13A4E755;animation:cyber-tear .9s linear both;will-change:transform,opacity}.glitch-code:nth-child(3n){letter-spacing:2px}
@keyframes cling{0%{opacity:0;transform:translateY(12px) scale(.7)}26%{opacity:1;transform:translateY(6px) scale(1.3)}47%{transform:translateY(2px) scale(1)}70%{transform:translateY(0) scale(1.2)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes word-burst{from{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.8)}to{opacity:var(--alpha);transform:translate(0,0) scale(1)}}
@keyframes cyber-tear{0%{opacity:0;transform:translateX(0)}9%{opacity:var(--alpha);transform:translateX(var(--dx))}21%{transform:translateX(calc(var(--dx)*-.8))}30%{opacity:calc(var(--alpha)*.55)}34%{transform:translateX(calc(var(--dx)*.4))}40%{opacity:var(--alpha)}52%{transform:translateX(calc(var(--dx)*-1))}68%{transform:translateX(calc(var(--dx)*.7));opacity:calc(var(--alpha)*.7)}79%{opacity:var(--alpha)}84%{transform:translateX(calc(var(--dx)*-.4))}100%{opacity:var(--alpha);transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.burst-word{transform:none;opacity:var(--alpha)}.code .glitch-code{display:none}}
.pressure .stage-line,.black .stage-line,.ending .stage-line,.ending[data-state=aEnd5] .echo{white-space:nowrap;overflow-wrap:normal;line-height:1.4}
.option.rewritten{color:var(--red)}

.final-echo{left:46px!important;top:366px!important;font-size:32px;line-height:1.4;width:calc(100% - 86px)}.approach{transform:translateX(12px)}.option.rewritten{color:var(--red)}.cover .question{font-weight:400}

.option.blocked-option{color:var(--red);text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:var(--red);animation:deny-option .32s ease-out both}.blocked-option.blocked-settled{animation:none}@keyframes deny-option{0%{transform:translateX(0);opacity:.45}30%{transform:translateX(-3px)}65%{transform:translateX(2px)}100%{transform:translateX(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.option.blocked-option{animation:none}}

/* Compact cover notices, matching the current Figma cover. */
.cover .notice{margin:0;font-size:12px;line-height:20px;color:var(--muted);white-space:pre-line}.cover .fan-notice{margin:0;font-size:11px;line-height:18px;color:var(--muted);opacity:.8;white-space:pre-line}
/* Chrome 61 layout baseline: margins work in Flex before gap support. */
.card,.meta,.options,.turns{gap:0}.card>*+*{margin-top:16px}.options>*+*{margin-top:8px}.turns>*+*{margin-left:12px}.meta>*+*{margin-left:8px}.card>*{min-width:0}.cover .notice,.cover .fan-notice{margin-top:16px}button:focus{outline:2px solid var(--red);outline-offset:4px}
#screen{padding-top:32px;padding-bottom:32px;padding-top:calc(32px + var(--safe-area-inset-top, env(safe-area-inset-top, 0px)));padding-bottom:calc(32px + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))}html{touch-action:manipulation}

/* Secondary cover copy: Light, pale grey, separated list items. */
.cover .cover-small,.cover .fan-notice{font-family:"Microsoft YaHei",sans-serif;font-size:11px;font-weight:300;line-height:20px;color:#80818B;opacity:1;white-space:normal}.cover-small p{margin:0 0 6px}.cover-small ul{list-style:none;margin:0;padding:0}.cover-small li{position:relative;padding-left:10px}.cover-small li:before{content:"·";position:absolute;left:0}.cover-small li+li{margin-top:6px}.cover .fan-notice{white-space:pre-line;line-height:26px}
