:root{color:#f7f7f8;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg:#08090a;--surface:#111214;--surface-raised:#17181b;--surface-hover:#1c1d21;--text:#f7f7f8;--muted:#92939b;--subtle:#62636b;--line:#ffffff1b;--line-strong:#ffffff2b;--accent:#ff5c61;--accent-bright:#ff797d;--accent-ink:#310c10;--landing-background:radial-gradient(ellipse 76% 48% at 50% 0%, #65668240, transparent 72%), radial-gradient(ellipse 45% 42% at 50% 100%, #43444f33, transparent 78%), #050506;--danger:#ff8c82;--danger-bg:#ef544e1c;--shadow:0 22px 70px #0000005c;background:#08090a;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--landing-background);min-width:320px}button,textarea,input{font:inherit}button{color:inherit}button:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid var(--accent-bright);outline-offset:3px}button:disabled,textarea:disabled,fieldset:disabled{cursor:not-allowed;opacity:.45}.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}.centered-page{text-align:center;place-content:center;justify-items:center;gap:1rem;min-height:100vh;padding:2rem;display:grid;position:relative;overflow:hidden}.centered-page:before{z-index:-1;content:"";border:1px solid #8b8dff29;border-radius:50%;width:min(52rem,130vw);height:min(52rem,130vw);position:absolute;box-shadow:0 0 0 6rem #8b8dff05,0 0 0 12rem #8b8dff03}.centered-page h1,.library-header h1,.story-title h1,.billing-card strong,.story-card strong{letter-spacing:-.045em}.centered-page h1{max-width:32rem;margin:.25rem 0;font-size:clamp(2.15rem,5vw,3.5rem);font-weight:590;line-height:1.05}.login-page{background:var(--landing-background);gap:6rem}.login-page:before{display:none}.ifengine-logo{color:#ff5c61;align-items:center;line-height:1;display:inline-flex}.ifengine-logo span{translate:0 -.035em}.login-logo{letter-spacing:-.078em;gap:.3rem;font-size:clamp(3.7rem,12vw,6.4rem);font-weight:750}.login-logo img{object-fit:contain;width:clamp(6.4rem,17vw,9.5rem);height:auto}.library-logo{letter-spacing:-.078em;gap:.08rem;font-size:clamp(1.35rem,3vw,1.75rem);font-weight:750}.library-logo img{object-fit:contain;width:clamp(2.6rem,5vw,3.3rem);height:auto}.google-login{place-items:center;min-width:17.5rem;min-height:2.8rem;display:grid}.book-mark{color:#fff;letter-spacing:-.08em;background:linear-gradient(145deg,#ffffff3b,#0000 48%),linear-gradient(145deg,#9597ff,#5758bc);border:1px solid #ffffff3d;border-radius:.85rem;place-items:center;width:3.35rem;height:3.35rem;font-size:.82rem;font-weight:750;display:grid;box-shadow:0 12px 28px #4e4fb845,inset 0 1px #ffffff59}.book-mark--small{border-radius:.53rem;width:1.85rem;height:1.85rem;font-size:.58rem;box-shadow:inset 0 1px #ffffff4d}.activity{color:var(--muted);font-size:.85rem}.pulse-dot{background:var(--accent-bright);border-radius:50%;width:.42rem;height:.42rem;margin-right:.55rem;animation:1.6s ease-in-out infinite pulse;display:inline-block;box-shadow:0 0 #ff5c6173}@keyframes pulse{50%{opacity:.45;transform:scale(.82);box-shadow:0 0 0 .34rem #ff5c6100}}.library-shell{width:min(70rem,100% - 3rem);margin:0 auto;padding:1.5rem 0 5rem}.library-page{min-height:100vh;padding-top:1.75rem}.library-page .library-header{max-width:none;padding:0}.library-page .library-header .brand-line{gap:.9rem;width:100%;margin-bottom:0}.account-menu{margin-left:auto;position:relative}.account-avatar{color:#1c143c;cursor:pointer;background:radial-gradient(circle at 32% 24%,#ffffff61,#0000 32%),linear-gradient(145deg,#a58cff,#6352c2);border:1px solid #a491ff85;border-radius:50%;place-items:center;width:2.3rem;height:2.3rem;list-style:none;transition:filter .15s,transform .15s;display:grid;box-shadow:inset 0 1px #ffffff52,0 5px 14px #543fb547}.account-avatar::-webkit-details-marker{display:none}.account-avatar:hover{filter:brightness(1.1);transform:translateY(-1px)}.account-menu[open] .account-avatar{outline-offset:2px;outline:2px solid #c5baff99}.account-avatar svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.75px;width:1.2rem;height:1.2rem}.account-menu__popover{z-index:3;border:1px solid var(--line-strong);background:#202025;border-radius:.65rem;width:9rem;padding:.35rem;display:grid;position:absolute;top:calc(100% + .7rem);right:0;box-shadow:0 15px 32px #0000005c}.account-menu__item{color:#ededf1;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.4rem;padding:.58rem .68rem;font-size:.82rem;font-weight:560}.account-menu__item:hover,.account-menu__item:focus-visible{color:#d6ccff;background:#a491ff2b;outline:0}.library-page .story-card{aspect-ratio:.68;background:linear-gradient(#0407080a 36%,#030506e0 100%),url(/count-of-monte-cristo.png) 50%/cover;justify-content:flex-end;width:min(100%,9.5rem);min-height:0;margin-top:clamp(2rem,6vh,4rem);padding:1rem}.library-page .story-card strong{color:#f7eee0;text-shadow:0 2px 12px #000000d9;max-width:7rem;margin-bottom:0;font-size:1.1rem;line-height:1.12}.library-page .text-button{color:#ff797d}.brand-line{color:var(--text);letter-spacing:-.02em;align-items:center;gap:.7rem;font-size:.92rem;font-weight:640;display:flex}.library-header{max-width:52rem;padding:clamp(3rem,8vw,7.25rem) 0 3.25rem}.library-header .brand-line{margin-bottom:4.5rem}.billing-link{margin-left:auto}.billing-card{border:1px solid var(--line);background:linear-gradient(145deg,#ffffff0e,#ffffff05);border-radius:.75rem;gap:.55rem;max-width:38rem;padding:1.45rem;display:grid;box-shadow:inset 0 1px #ffffff06}.billing-card:first-of-type{border-left-color:#8b8dffc7}.billing-card strong{font-size:1.25rem;font-weight:560}.billing-card span,.billing-result{color:var(--muted);font-size:.9rem;line-height:1.55}.subscription-form{gap:.72rem;max-width:38rem;margin-top:1.5rem;display:grid}.subscription-form label{color:#d5d5db;font-size:.84rem;font-weight:570}.subscription-form input{border:1px solid var(--line-strong);min-height:2.7rem;color:var(--text);letter-spacing:.06em;text-transform:uppercase;background:#0003;border-radius:.5rem;padding:.6rem .8rem;transition:border-color .15s,background .15s}.subscription-form input:focus{border-color:var(--accent);background:#8b8dff0d;outline:0}.subscription-form .primary-button{justify-self:start}.subscription-actions{flex-wrap:wrap;gap:.65rem;display:flex}.billing-result--error{color:var(--danger)}.kicker{color:var(--accent-bright);letter-spacing:.13em;text-transform:uppercase;margin:0 0 .95rem;font-size:.69rem;font-weight:680}.library-header h1{max-width:46rem;margin:0;font-size:clamp(3rem,8vw,6rem);font-weight:560;line-height:.98}.library-intro{max-width:39rem;color:var(--muted);margin:1.6rem 0 0;font-size:1.04rem;line-height:1.65}.notice{background:var(--danger-bg);color:#ffc4bf;border:1px solid #ff8c8259;border-radius:.6rem;justify-content:space-between;align-items:center;gap:1rem;max-width:46rem;margin:0 auto 1rem;padding:.8rem .9rem;font-size:.88rem;display:flex}.notice p{margin:0}.library-shell>.notice{margin-left:0}.text-button{color:#ff9a9d;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:.25rem 0;font-size:.84rem;font-weight:550;transition:color .15s}.text-button:hover:not(:disabled){color:#fff}.activity--library{margin:0 0 2rem}.session-list{flex-direction:column;gap:.65rem;margin:2rem 0;padding:0;list-style:none;display:flex}.session-list__item{align-items:center;gap:.65rem;display:flex}.session-card{border:1px solid var(--line);width:100%;color:var(--text);text-align:left;cursor:pointer;background:#131417bf;border-radius:.7rem;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.2rem;transition:border-color .15s,background .15s,transform .15s;display:flex}.session-delete{color:#ffaaa3;cursor:pointer;background:0 0;border:1px solid #ff8c8259;border-radius:.46rem;flex:none;padding:.52rem .65rem;font-size:.78rem;transition:background .15s,border-color .15s}.session-delete:hover:not(:disabled){background:var(--danger-bg);border-color:#ff8c82b3}.session-card:hover:not(:disabled){background:var(--surface-hover);border-color:#8b8dff8c;transform:translateY(-1px)}.session-card__description{color:#d8d8dd;overflow-wrap:anywhere;min-width:0;font-size:.92rem;line-height:1.55}.session-card__action{color:var(--accent-bright);flex-shrink:0;font-size:.78rem;font-weight:600}.session-card__action span{margin-left:.18rem;transition:transform .15s;display:inline-block}.session-card:hover .session-card__action span{transform:translate(.2rem)}.story-card{border:1px solid var(--line-strong);width:100%;min-height:15rem;box-shadow:var(--shadow);color:var(--text);text-align:left;cursor:pointer;background:radial-gradient(circle at 88% 20%,#8b8dff3d,#0000 28%),linear-gradient(135deg,#191a20,#101114 68%);border-radius:.9rem;flex-direction:column;gap:1rem;margin-top:2rem;padding:clamp(1.5rem,4vw,2.5rem);transition:border-color .18s,transform .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.story-card:after{content:"";border:1px solid #bfc0ff2e;border-radius:50%;width:24rem;height:24rem;position:absolute;top:-12rem;right:-10rem}.story-card>*{z-index:1;position:relative}.story-card strong{max-width:30rem;font-size:clamp(1.5rem,4vw,2.15rem);font-weight:570}.story-card:hover:not(:disabled){border-color:#a5a6ffbf;transform:translateY(-2px);box-shadow:0 26px 75px #0000007a}.back-button{color:#b5b6be;cursor:pointer;background:0 0;border:0;border-radius:.45rem;justify-self:start;align-items:center;gap:.5rem;min-height:2.4rem;padding:.5rem;font-size:.84rem;font-weight:550;transition:background .15s,color .15s;display:inline-flex}.back-button:hover:not(:disabled){color:#fff;background:#ffffff0f}.back-button>span:first-child{font-size:1.18rem}.library-shell>.back-button{margin-bottom:1.5rem}.primary-button{min-height:2.55rem;color:var(--accent-ink);cursor:pointer;background:linear-gradient(#aaabff,#8587ef);border:1px solid #c2c3ff99;border-radius:.5rem;padding:.58rem 1rem;font-size:.86rem;font-weight:700;transition:filter .15s,transform .15s;box-shadow:inset 0 1px #fff6,0 4px 12px #6263e233}.primary-button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.story-shell{background:radial-gradient(ellipse 65% 25% at 50% 0%, #6869c417, transparent 85%), var(--bg);grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}.story-header{z-index:2;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#08090ac2;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;min-height:4.15rem;padding:.65rem clamp(1rem,3vw,2rem);display:grid;position:sticky;top:0}.story-title{text-align:center;min-width:0}.story-title h1{text-overflow:ellipsis;white-space:nowrap;max-width:36rem;margin:0;font-size:.86rem;font-weight:620;overflow:hidden}.story-title p{color:var(--subtle);letter-spacing:.1em;text-transform:uppercase;margin:.2rem 0 0;font-size:.66rem}.story-main{width:min(48rem,100%);margin:0 auto;padding:clamp(2.5rem,8vw,6.5rem) clamp(1rem,4vw,2rem) 2rem}.transcript{flex-direction:column;gap:clamp(2.5rem,6vw,4.5rem);margin:0;padding:0;list-style:none;display:flex}.message{max-width:100%}.message__text{overflow-wrap:anywhere}.message__text :where(p,blockquote,ul,ol,pre){margin:0 0 1em}.message__text>:first-child{margin-top:0}.message__text>:last-child{margin-bottom:0}.message__text p{white-space:pre-wrap}.message__text>p:has(+.stream-cursor){display:inline}.message__text blockquote{color:#b6b7c0;border-left:2px solid #8b8dff8c;padding-left:1rem}.message__text pre{white-space:pre;overflow-x:auto}.message--narrator .message__text,.message--system .message__text{color:#e1e1e5;font-size:clamp(1rem,2.2vw,1.12rem);line-height:1.86}.message--system .message__text{color:var(--muted)}.message--player{background:linear-gradient(145deg,#7577e533,#44457f2b);border:1px solid #8b8dff42;border-radius:.7rem .7rem .18rem;align-self:flex-end;width:min(85%,35rem);padding:.9rem 1rem}.message--player .message__text{color:#f2f2ff;font-size:.94rem;line-height:1.6}.stream-cursor{vertical-align:-.15em;background:var(--accent-bright);width:.28rem;height:1.05em;margin-left:.25rem;animation:.9s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.story-main>.activity{border-top:1px solid var(--line);margin:2.5rem 0 0;padding-top:1.2rem}.ending{border:1px solid var(--line);text-align:center;background:#ffffff06;border-radius:.75rem;margin:3rem 0 1rem;padding:2rem}.ending>span{color:var(--accent-bright);font-size:1.4rem}.ending p{color:#d6d6db}.composer{bottom:max(.75rem, env(safe-area-inset-bottom));z-index:2;width:min(48rem,100% - 2rem);margin:0 auto max(.75rem, env(safe-area-inset-bottom));border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#141518e8;border-radius:.8rem;grid-template-columns:1fr auto;gap:.45rem;padding:.65rem;display:grid;position:sticky;box-shadow:0 -16px 40px #0000004d}.composer:focus-within{border-color:#8b8dffb8}.composer textarea{resize:vertical;min-height:3.05rem;max-height:10rem;color:var(--text);background:0 0;border:0;padding:.58rem .65rem;line-height:1.5}.composer textarea:focus{outline:0}.composer textarea::placeholder{color:var(--subtle)}.composer>button{width:2.5rem;height:2.5rem;color:var(--accent-ink);cursor:pointer;background:linear-gradient(#aaabff,#8587ef);border:1px solid #c2c3ff99;border-radius:.58rem;align-self:center;place-items:center;display:grid;box-shadow:inset 0 1px #fff6}.composer>button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9px;width:1.1rem}.composer__hint{color:var(--subtle);grid-column:1/-1;padding:0 .65rem .05rem;font-size:.65rem}@media (width<=36rem){.session-list__item{flex-direction:column;align-items:stretch}.session-delete{align-self:flex-end}}@media (width<=700px){.library-shell{width:min(100% - 1.5rem,40rem)}.library-header .brand-line{margin-bottom:3rem}.story-header{grid-template-columns:auto 1fr}.story-main{padding-top:3rem}.message--player{width:92%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
