:root{--ink: #4a3560;--ink2: #7d6a93;--pink: #f07a9a;--lilac: #a98be0;--line: rgba(120, 90, 160, .18);--glass: rgba(255, 250, 253, .86);--r: 14px;--font: "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;background:#2b2858}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}input,select,textarea{font:inherit;color:var(--ink)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:#785aa059;border-radius:4px}[hidden]{display:none!important}.ico{display:inline-block;flex:none;background:url(/broken_/broken_romant/gen/art/icons.webp) no-repeat;background-size:600% 600%;background-position:calc(var(--x) * 20%) calc(var(--y) * 20%);vertical-align:middle}.sticker{display:inline-block;background:url(/broken_/broken_romant/gen/art/stickers.webp) no-repeat;background-size:400% 200%;background-position:calc(var(--x) * 33.333%) calc(var(--y) * 100%)}.scene-art{background:url(/broken_/broken_romant/gen/art/scenes.webp) no-repeat;background-size:300% 300%;background-position:calc(var(--x) * 50%) calc(var(--y) * 50%)}.panel{border:solid transparent;border-width:21px 17px;border-image:url(/broken_/broken_romant/gen/art/panel.webp) 42 34 fill / 21px 17px stretch}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 6px;border:solid transparent;border-width:0 18px;border-image:url(/broken_/broken_romant/gen/art/btn.webp) 48 fill / 20px 20px stretch;color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(180,60,100,.45);white-space:nowrap;transition:transform .12s,filter .12s}.btn.sub{border-image-source:url(/broken_/broken_romant/gen/art/btn2.webp);text-shadow:0 1px 2px rgba(90,60,160,.45)}.btn:hover{filter:brightness(1.06)}.btn:active{transform:scale(.96)}.btn:disabled{filter:grayscale(.8) opacity(.6);cursor:default}.chip{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:0 4px;border:solid transparent;border-width:0 12px;border-image:url(/broken_/broken_romant/gen/art/chip.webp) 48 fill / 15px 15px stretch;font-size:13px;font-weight:600;white-space:nowrap}.chip.on{filter:hue-rotate(-40deg) saturate(1.6)}.bubble{max-width:78%;padding:2px 4px;border:solid transparent;border-width:12px 10px;line-height:1.45;font-size:14px;word-break:keep-all;overflow-wrap:anywhere}.bubble.in{border-image:url(/broken_/broken_romant/gen/art/bubble_in.webp) 42 29 fill / 14px 10px stretch}.bubble.out{border-image:url(/broken_/broken_romant/gen/art/bubble_out.webp) 42 29 fill / 14px 10px stretch}.app{position:fixed;inset:0}.stage-host{position:absolute;inset:0}.stage-host canvas{display:block}.pins{position:absolute;inset:0;pointer-events:none;overflow:hidden}.pin{position:absolute;left:0;top:0;pointer-events:auto;display:flex;align-items:center;gap:4px;padding:3px 10px 3px 4px;border-radius:999px;background:var(--glass);box-shadow:0 4px 14px #46286e40;font-size:12px;font-weight:700;white-space:nowrap;transform-origin:50% 100%}.pin .ico{width:22px;height:22px}.pin:after{content:"";position:absolute;left:50%;bottom:-6px;width:2px;height:6px;background:#ffffffe6}.pin-meet{background:#ffeef6eb}.pin-home{background:#fff6dcf2}.pin.on{box-shadow:0 0 0 2px var(--pink),0 4px 14px #f05a8c66}.pin.far span{display:none}.pin.far{padding:3px}.hud{position:absolute;left:12px;top:calc(12px + env(safe-area-inset-top,0px));display:flex;gap:8px;align-items:center;z-index:5}.hud .panel{display:flex;align-items:center;gap:8px;padding:0 2px;font-size:13px;font-weight:700;min-height:30px}.hud .num{font-variant-numeric:tabular-nums}.ai-mark{position:absolute;right:12px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:30;padding:2px 8px;border-radius:6px;background:#281e468c;color:#fff;font-size:11px;font-weight:700;letter-spacing:.04em;pointer-events:none}.phone{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:360px;height:min(720px,calc(100% - 32px));z-index:10;border-radius:38px;padding:10px;background:linear-gradient(160deg,#fbe6f0,#e6dcfb);box-shadow:0 24px 60px #1e0a3c73,inset 0 0 0 2px #ffffffb3;transition:transform .38s cubic-bezier(.2,.9,.25,1.1),opacity .3s}.phone.down{transform:translateY(calc(50% + 40px)) translateY(-90px)}.phone.away{transform:translate(120%,-50%);opacity:0;pointer-events:none}.screen{position:relative;height:100%;border-radius:30px;overflow:hidden;background:#fffafd;display:flex;flex-direction:column}.statusbar{display:flex;justify-content:space-between;align-items:center;height:28px;padding:0 18px;font-size:12px;font-weight:700;flex:none}.notch{width:90px;height:20px;border-radius:12px;background:#2a2340}.app-view{flex:1;min-height:0;display:flex;flex-direction:column;animation:appIn .28s cubic-bezier(.2,.9,.3,1)}@keyframes appIn{0%{transform:scale(.92) translateY(16px);opacity:0}}.app-head{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px;flex:none;border-bottom:1px solid var(--line);font-weight:800}.app-head .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-body{flex:1;min-height:0;overflow-y:auto;padding:8px 12px}.home-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 8px;padding:22px 16px}.app-tile{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:700;position:relative}.app-tile .ico{width:56px;height:56px;border-radius:16px;background-color:#fff;box-shadow:0 6px 14px #7850aa2e}.badge{position:absolute;top:-4px;right:6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--pink);color:#fff;font-size:11px;line-height:18px;text-align:center;font-variant-numeric:tabular-nums}.home-wall{margin:0 16px;padding:12px 6px;display:flex;flex-direction:column;gap:4px;font-size:13px}.home-wall b{font-size:22px}.row{display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 4px;border-bottom:1px solid var(--line);width:100%;text-align:left}.row:hover{background:#f07a9a0f}.row .grow{flex:1;min-width:0}.row .name{font-weight:800;font-size:14px}.row .sub{font-size:12px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .meta{font-size:11px;color:var(--ink2);font-variant-numeric:tabular-nums;text-align:right}.face{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 12%;background:#f4ebfa;flex:none}.face.lg{width:64px;height:64px}.sec{display:flex;align-items:center;gap:6px;margin:12px 0 4px;font-size:12px;font-weight:800;color:var(--ink2)}.count{padding:0 6px;border-radius:8px;background:#a98be02e;font-variant-numeric:tabular-nums}.empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 0}.empty .ico{width:64px;height:64px;opacity:.6}.chat-log{flex:1;min-height:0;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:6px;background:linear-gradient(#fff7fb,#f6f0ff)}.msg{display:flex;gap:6px;align-items:flex-end}.msg.me{justify-content:flex-end}.msg .face{width:32px;height:32px}.msg.sys{justify-content:center}.msg.sys span{font-size:11px;color:var(--ink2);background:#a98be024;padding:3px 10px;border-radius:10px;max-width:90%;text-align:center}.day-sep{align-self:center;font-size:11px;color:var(--ink2);padding:2px 10px}.typing{display:inline-flex;gap:3px;padding:4px 2px}.typing i{width:6px;height:6px;border-radius:3px;background:var(--lilac);animation:blink 1s infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes blink{50%{opacity:.25;transform:translateY(-2px)}}.composer{display:flex;gap:6px;padding:8px;border-top:1px solid var(--line);flex:none;background:#fff}.composer input{flex:1;min-width:0;border:1px solid var(--line);border-radius:18px;padding:8px 12px;outline:none;background:#fbf7ff}.composer input:focus{border-color:var(--lilac)}.suggest{display:flex;gap:6px;overflow-x:auto;padding:6px 8px 0;flex:none}.gauge{display:grid;grid-template-columns:34px 1fr 28px;align-items:center;gap:6px;font-size:11px;height:16px}.gauge .bar{height:6px;border-radius:3px;background:#785aa024;overflow:hidden}.gauge .bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#f7a6c0,var(--pink));transition:width .5s}.gauge.t .bar i{background:linear-gradient(90deg,#c7b4f2,var(--lilac))}.gauge.x .bar i{background:linear-gradient(90deg,#ffc49a,#f0805a)}.gauge b{text-align:right;font-variant-numeric:tabular-nums}.stage-tag{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:800;padding:1px 8px 1px 2px;border-radius:10px;background:#f07a9a24;color:#c4486e}.stage-tag .ico{width:18px;height:18px}.pushes{position:absolute;left:50%;top:calc(12px + env(safe-area-inset-top,0px));transform:translate(-50%);z-index:40;display:flex;flex-direction:column;gap:6px;width:min(360px,calc(100% - 24px))}.push{display:flex;gap:10px;align-items:center;padding:8px 12px;border-radius:18px;background:#fffffff2;box-shadow:0 10px 30px #2814504d;text-align:left;animation:pushIn .4s cubic-bezier(.2,1.2,.3,1)}.push .grow{flex:1;min-width:0}.push .name{font-size:13px;font-weight:800}.push .sub{font-size:12px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes pushIn{0%{transform:translateY(-40px);opacity:0}}.place-card{position:absolute;left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));width:min(380px,calc(100% - 32px));z-index:12;animation:appIn .25s}.place-card .head{display:flex;align-items:center;gap:8px}.place-card .head .grow{flex:1;min-width:0}.place-card h3{margin:0;font-size:17px}.place-card .area{font-size:12px;color:var(--ink2)}.place-card .line{font-size:13px;line-height:1.5;margin:8px 0}.place-card .people{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px}.person{display:flex;flex-direction:column;align-items:center;gap:2px;width:70px;flex:none;font-size:12px;font-weight:700}.person small{font-size:10px;color:var(--ink2);font-weight:600}.acts{display:flex;gap:6px;flex-wrap:wrap}.x{width:28px;height:28px;border-radius:14px;display:grid;place-items:center;font-size:18px;color:var(--ink2)}.x:hover{background:#785aa01a}.vn{position:absolute;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translate(-50%);width:min(820px,calc(100% - 24px));z-index:20}.vn .box{position:relative;min-height:132px;padding:8px 6px 4px}.vn .tag{position:absolute;left:14px;top:-34px;display:flex;align-items:center;gap:6px;padding:4px 14px 4px 6px;border-radius:14px 14px 14px 4px;background:linear-gradient(90deg,#f78fae,#b78ee8);color:#fff;font-weight:800;font-size:14px;box-shadow:0 6px 16px #a03c784d}.vn .tag .mood{font-size:11px;font-weight:700;opacity:.9}.vn .text{font-size:17px;line-height:1.6;min-height:54px;word-break:keep-all}.vn .text.narr{font-style:italic;color:var(--ink2)}.vn .tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px}.vn .tools .grow{flex:1}.vn .say{display:flex;gap:6px;margin-top:8px}.vn .say input{flex:1;min-width:0;border:1px solid var(--line);border-radius:18px;padding:8px 14px;background:#ffffffd9;outline:none}.vn .next{position:absolute;right:10px;bottom:4px;font-size:12px;color:var(--ink2);animation:blink 1.2s infinite}.vn .beat{font-size:12px;font-weight:800;color:var(--ink2);font-variant-numeric:tabular-nums}.vn .rel{display:flex;gap:10px;font-size:11px;color:var(--ink2);font-variant-numeric:tabular-nums}.delta{position:absolute;right:18px;top:-30px;display:flex;gap:6px;font-size:13px;font-weight:800;animation:floatUp 1.6s forwards}.delta .up{color:#e0507a}.delta .dn{color:#6a6a9a}.delta .hot{color:#e06a2a}@keyframes floatUp{0%{opacity:0;transform:translateY(8px)}15%{opacity:1;transform:none}80%{opacity:1}to{opacity:0;transform:translateY(-14px)}}.outcome{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:6px 0}.outcome h3{margin:0;font-size:20px}.letterbox:before,.letterbox:after{content:"";position:absolute;left:0;right:0;height:7vh;background:#120c22;z-index:15;animation:lb .6s ease-out;pointer-events:none}.letterbox:before{top:0}.letterbox:after{bottom:0}@keyframes lb{0%{height:0}}.mood-pop{position:absolute;z-index:18;pointer-events:none;animation:pop 1.6s forwards}@keyframes pop{0%{transform:scale(.3);opacity:0}20%{transform:scale(1.1);opacity:1}30%{transform:scale(1)}85%{opacity:1}to{opacity:0;transform:translateY(-20px)}}.theater{position:absolute;inset:0;z-index:25}.sub-line{position:absolute;left:50%;bottom:12%;transform:translate(-50%);width:min(760px,88%);text-align:center;z-index:26}.sub-line .who{display:inline-block;margin-bottom:6px;padding:2px 12px;border-radius:10px;background:linear-gradient(90deg,#f78fae,#b78ee8);color:#fff;font-size:14px;font-weight:800}.sub-line .say{font-size:clamp(18px,2.6vw,26px);font-weight:800;line-height:1.45;color:#fff;word-break:keep-all;text-shadow:0 2px 0 #3a2550,0 0 8px rgba(30,10,60,.9),2px 0 0 #3a2550,-2px 0 0 #3a2550,0 -2px 0 #3a2550}.sub-line .say.narr{font-size:clamp(15px,2vw,20px);font-weight:600;font-style:italic}.title-card{position:absolute;inset:0;z-index:27;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,#3c1e5a59,#120c22e0);color:#fff;text-align:center;animation:fade .6s}.title-card h1{margin:0 0 10px;font-size:clamp(24px,4vw,40px);text-shadow:0 4px 20px rgba(240,120,170,.6)}.title-card p{margin:0;opacity:.85;font-size:15px}.title-card .genre{display:inline-block;margin-bottom:12px;padding:2px 12px;border-radius:10px;background:var(--pink);font-size:12px;font-weight:800}@keyframes fade{0%{opacity:0}}.rec-ctrl{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:12px;z-index:31;display:flex;gap:6px}.app.rec .stage-host{left:50%;right:auto;width:min(100vw,56.25vh);transform:translate(-50%)}.app.rec{background:#0d0918}.app.rec .theater{left:50%;right:auto;width:min(100vw,56.25vh);transform:translate(-50%)}.app.rec .ai-mark{right:calc(50% - min(50vw,28.125vh) + 12px)}.ep-card{display:flex;gap:10px;align-items:center;padding:10px 6px;border-bottom:1px solid var(--line);width:100%;text-align:left}.ep-card .grow{flex:1;min-width:0}.ep-card .t{font-weight:800;font-size:14px}.ep-card .l{font-size:12px;color:var(--ink2);line-height:1.4}.casts{display:flex}.casts img{width:32px;height:32px;border-radius:50%;object-fit:cover;object-position:50% 12%;margin-left:-8px;border:2px solid #fff;background:#f4ebfa}.chips{display:flex;flex-wrap:wrap;gap:6px}.cine{position:fixed;inset:0;z-index:100;background:#120c22}.cine canvas{width:100%;height:100%;display:block}.auth{position:fixed;inset:0;z-index:60;display:grid;place-items:center;overflow-y:auto;padding:24px 16px;background:url(/broken_/broken_romant/gen/art/keyart.webp) center / cover no-repeat,#2b2858}.auth:before{content:"";position:fixed;inset:0;background:linear-gradient(180deg,#2b285826,#2b28588c);pointer-events:none}.auth-card{position:relative;width:min(460px,100%);max-height:calc(100vh - 48px);overflow-y:auto}.auth-card .logo{display:block;width:240px;max-width:70%;margin:0 auto 6px}.tabs{display:flex;gap:6px;justify-content:center;margin:6px 0 10px}.form{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}.form label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:800;color:var(--ink2)}.form label.full{grid-column:1 / -1}.form input,.form select{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#ffffffd9;outline:none;font-weight:600}.form input:focus,.form select:focus{border-color:var(--lilac)}.bodies{display:flex;gap:6px;overflow-x:auto;padding:4px 0}.bodies button{flex:none;width:64px;height:84px;border-radius:12px;overflow:hidden;background:#f4ebfa;box-shadow:inset 0 0 0 2px transparent}.bodies button.on{box-shadow:inset 0 0 0 3px var(--pink)}.bodies img{width:100%;height:100%;object-fit:cover;object-position:50% 10%}.err{color:#d0406a;font-size:13px;font-weight:700;text-align:center;min-height:18px;margin:6px 0}.ai-note{font-size:11px;color:var(--ink2);text-align:center;margin-top:8px}.actions{display:flex;gap:8px;justify-content:center;margin-top:10px;flex-wrap:wrap}.intro{position:fixed;inset:0;z-index:50;overflow:hidden;background:#120c22;cursor:pointer}.intro .scene-art{position:absolute;inset:-4%;animation:kenburns 3.4s ease-out forwards}@keyframes kenburns{0%{transform:scale(1.12) translate(2%);opacity:0}18%{opacity:1}to{transform:scale(1)}}.intro .cap{position:absolute;left:50%;bottom:14%;transform:translate(-50%);width:min(720px,88%);text-align:center;color:#fff;font-size:clamp(17px,2.4vw,24px);font-weight:800;line-height:1.5;text-shadow:0 2px 10px rgba(0,0,0,.8);animation:fade .8s;word-break:keep-all}.intro .skip{position:absolute;right:16px;top:calc(16px + env(safe-area-inset-top,0px));color:#fff;opacity:.7;font-size:13px;font-weight:700}.phone-toggle{display:none}@media(max-width:760px){.phone{right:50%;transform:translate(50%,-50%);width:min(360px,calc(100% - 24px))}.phone.away{transform:translate(50%,120%)}.phone-toggle{display:flex;position:absolute;right:12px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:11}.place-card{bottom:calc(70px + env(safe-area-inset-bottom,0px))}.vn .text{font-size:15px}.form{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.walk-host{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:4}.walk-bubble{position:absolute;left:0;top:0;max-width:240px;padding:2px 4px;font-size:13px;font-weight:600;line-height:1.35;color:#3a2d55;border:solid transparent;border-width:14px 10px;border-image:url(/broken_/broken_romant/gen/art/bubble_in.webp) 42 29 fill / 14px 10px stretch;transition:opacity .2s;will-change:transform}.walk-hud{position:absolute;left:12px;top:calc(12px + env(safe-area-inset-top,0px));display:flex;gap:8px;align-items:center;z-index:5}.walk-hud .panel{display:flex;align-items:center;gap:8px;padding:0 2px;font-size:13px;font-weight:700;min-height:30px}
