@charset "UTF-8";
:root{--ink:#343943;--muted:#92909a;--paper:#f9f7f4;--rose:#c28e90;--sage:#6f8c80;--line:#ede9e7;--font:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC",-apple-system,BlinkMacSystemFont,sans-serif;--scale:.8}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--font);background:#eeeae7;background-image:radial-gradient(ellipse at 5% 15%,#f9f5f0 0,transparent 45%),radial-gradient(ellipse at 100% 100%,#d8dde0 0,transparent 65%);height:100dvh;overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer;border:0;color:inherit;background:none;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid #9c7c86;outline-offset:3px}button:disabled{cursor:default;opacity:.5}svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button svg{pointer-events:none}button:active{transform:scale(.97)}.desktop-brand{position:fixed;top:28px;left:45px;display:flex;gap:14px;align-items:center;font-size:10px;letter-spacing:2px;color:#88818a}.brand-mark{font-family:var(--font);font-style:italic;font-size:28px;color:#786773}.desktop-brand i{font-style:normal;color:#baa3a4}#stage{height:100%;display:flex;align-items:center;justify-content:center;gap:65px;padding:50px 25px}.editorial{width:280px;flex-shrink:0}.eyebrow{font-size:10px;letter-spacing:3px;color:#9b7a80;margin-bottom:24px}.editorial h1{font-family:var(--font);font-weight:500;font-size:65px;line-height:1.26;letter-spacing:8px;margin:0 0 20px}.editorial h1 span{color:#ae8486}.subtitle{font-size:11px;letter-spacing:2px;color:#89818c}.fine-rule{width:38px;height:1px;background:#b39a9c;margin:27px 0}.intro{font-size:12px;line-height:2.3;color:#8d8790}.chapter-peek{margin-top:35px;border-left:1px solid #baa6ab;padding-left:15px;font-size:11px;line-height:1.9}.chapter-peek small{display:block;font-size:9px;color:#a49099;letter-spacing:2px}.edition{font-size:9px;color:#aaa2a7;margin-top:35px;letter-spacing:1px}.edition span{display:block;margin-top:7px}.device-wrap{width:calc(456px * var(--scale));height:calc(972px * var(--scale));flex-shrink:0;position:relative}.device{position:absolute;left:0;top:0;width:456px;height:972px;border-radius:61px;padding:8px;background:linear-gradient(115deg,#817d80,#39383a 6%,#161616 45%,#555359 86%,#8d8587);box-shadow:0 30px 65px -25px #4b43565c,0 0 0 1px #ffffff8a,inset 0 0 0 2px #c8bfc069;transform:scale(var(--scale));transform-origin:top left}.hardware{position:absolute;left:-2px;top:190px;width:3px;height:54px;background:#5a5658;border-radius:2px;box-shadow:0 74px #5a5658}.hardware:after{content:"";position:absolute;left:457px;top:70px;width:3px;height:80px;background:#5a5658;border-radius:2px}#screen{width:440px;height:956px;border-radius:53px;overflow:hidden;background:#faf9f7;position:relative;isolation:isolate}#statusbar{height:61px;position:absolute;z-index:30;top:0;left:0;right:0;padding:22px 31px 0 38px;display:flex;align-items:flex-start;justify-content:space-between;font-size:16px;font-weight:650;pointer-events:none}.status-icons{display:flex;align-items:center;gap:6px;height:17px}.status-icons svg{width:18px;height:16px;stroke-width:2.2}.status-icons .battery{width:26px;height:13px;border:1.3px solid currentColor;border-radius:4px;position:relative;padding:1.4px}.battery:before{content:"";position:absolute;right:-4px;top:3px;width:2px;height:5px;background:currentColor;border-radius:1px}.battery:after{content:"";display:block;width:77%;height:100%;background:currentColor;border-radius:2px}.island{position:absolute;z-index:35;left:calc(50% - 62px);top:12px;width:124px;height:35px;background:#111;border-radius:24px;pointer-events:none;box-shadow:inset -1px -1px 1px #252527}.island:after{content:"";position:absolute;right:10px;top:11px;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#18253c,#080b10 70%)}#homeIndicator{position:absolute;z-index:45;bottom:8px;left:calc(50% - 65px);width:130px;height:6px;border-radius:8px;background:#202126;box-shadow:0 0 0 9px #ffffff03;padding:0}#homeIndicator.light{background:#fff}#app{position:absolute;inset:0}.page{position:absolute;inset:0;padding-top:61px;display:flex;flex-direction:column;animation:enter .24s ease-out}.page.dark{color:#fff}.scroll{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;flex:1;min-height:0}.scroll::-webkit-scrollbar{display:none}.topbar{min-height:66px;display:flex;align-items:center;justify-content:space-between;padding:5px 20px;gap:10px}.topbar h2{font-size:23px;font-weight:700;margin:0;letter-spacing:-.5px}.topbar .left{display:flex;align-items:center;gap:8px;min-width:0}.topbar .left span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:600}.iconbtn{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;padding:7px}.glass-tools{display:flex;gap:0;padding:3px 5px;background:#ffffffb8;border:1px solid #fff;border-radius:32px;box-shadow:0 6px 28px #37313e10;backdrop-filter:blur(14px)}.glass-tools .iconbtn{width:36px;height:36px;padding:7px}.desktop-tools{width:90px;display:flex;flex-direction:column;gap:20px;align-items:center}.desktop-tools button{width:52px;height:61px;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;font-size:24px;border-radius:16px;color:#807580}.desktop-tools button:hover{background:#ffffff80}.desktop-tools button span{font-size:10px;letter-spacing:2px}.desktop-tools p{font-size:10px;color:#a499a4;line-height:2.2;margin-top:32px;writing-mode:vertical-rl;letter-spacing:3px}.desktop-footer{position:fixed;bottom:20px;left:45px;right:45px;display:flex;justify-content:space-between;font-size:9px;color:#a69ca2;letter-spacing:1px}
/* phone / game launcher */
.home-page,.lock-page{background:linear-gradient(180deg,#33334e23,#3a273331 45%,#291f3b66),url('assets/tokyo-evening.png') center/cover}.home-heading{padding:27px 26px 12px;display:flex;justify-content:space-between;align-items:flex-start}.home-heading .greeting{font-family:var(--font);font-size:28px;margin:4px 0 8px;letter-spacing:2px;text-shadow:0 2px 15px #2c193650}.home-heading small{font-size:11px;letter-spacing:2px;opacity:.9}.home-date{background:#ffffff27;backdrop-filter:blur(16px);padding:8px 11px;border-radius:20px;font-size:10px;letter-spacing:1px}.home-content{padding:12px 23px 0;display:flex;flex-direction:column;gap:17px}.story-widget{background:#fffaf1e8;color:#48434e;border:1px solid #ffffffb0;border-radius:25px;padding:20px 21px;box-shadow:0 10px 30px #322c3d10;position:relative;overflow:hidden;text-align:left;min-height:160px}.story-widget:after{content:"✧";font-size:115px;color:#c7b0a039;position:absolute;right:1px;top:6px;font-weight:200}.widget-kicker{display:flex;gap:7px;align-items:center;font-size:9px;letter-spacing:2px;color:#99868c;text-transform:uppercase}.tiny-dot{width:5px;height:5px;background:#b68c87;border-radius:50%;display:inline-block}.story-widget h3{font-family:var(--font);font-weight:500;font-size:23px;margin:15px 0 8px}.story-widget p{font-size:11px;color:#99909a;line-height:1.8;max-width:260px;margin:0}.widget-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:15px;font-size:10px;color:#9b7b80}.widget-bottom svg{width:17px;height:17px}.daily-card{padding:16px 18px;background:#ffffff27;border:1px solid #ffffff59;border-radius:23px;backdrop-filter:blur(18px);display:flex;gap:13px;align-items:center;color:#fff;box-shadow:0 8px 20px #1f1f3910}.daily-card .avatar{width:44px;height:44px}.daily-card div:nth-child(2){flex:1}.daily-card strong{font-size:12px;font-weight:500;display:block;margin-bottom:5px}.daily-card p{font-size:10px;line-height:1.6;margin:0;opacity:.9}.daily-card svg{width:18px;height:18px}.app-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px 10px;margin:9px 0}.app-button{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:11px;color:white;text-shadow:0 2px 8px #0004;position:relative;padding:0}.app-icon{height:61px;width:61px;display:flex;align-items:center;justify-content:center;border-radius:17px;background:#f6f1ec;color:#897887;box-shadow:0 4px 10px #1c183018,inset 0 0 0 1px #ffffff85;text-shadow:none}.app-icon svg{width:29px;height:29px;stroke-width:1.3}.app-icon.line{background:#06c755;color:white}.app-icon.line svg{fill:white;stroke:none;width:44px;height:44px}.app-icon.kakao{background:#ffe70b;color:#3c2328}.app-icon.kakao svg{fill:#3c2328;stroke:none;width:41px;height:41px}.app-icon.story{background:#eee4e6;color:#9a707b}.app-icon.people{background:#e4ebdf;color:#6e8578}.app-icon.notes{background:#fcf8e8;color:#b49962}.badge{position:absolute;top:-5px;left:calc(50% + 12px);background:#e16c70;border:1.5px solid #f7f0ef;min-width:19px;height:19px;border-radius:12px;font-size:10px;line-height:16px;text-shadow:none}.home-spacer{flex:1}.home-caption{margin:auto 0 16px;text-align:center;font-size:9px;letter-spacing:3px;opacity:.85}.home-dock{display:flex;justify-content:space-around;margin:0 23px 36px;padding:14px 14px;background:#fff7;border:1px solid #fffa;backdrop-filter:blur(20px);border-radius:30px}.home-dock .app-icon{height:53px;width:53px;border-radius:15px}.home-dock .app-button{font-size:0;gap:0}.lock-clock{text-align:center;font-size:91px;font-weight:650;letter-spacing:-5px;margin:38px 0 0}.lock-date{text-align:center;font-size:16px;margin:0}.lock-notice{margin:45px 24px 0;padding:18px 20px;border:1px solid #fff8;border-radius:23px;background:#fff9;color:#514b56;backdrop-filter:blur(20px)}.lock-notice strong{font-size:13px}.lock-notice p{font-size:13px;line-height:1.7;margin:6px 0 0}.unlock{margin:auto 60px 65px;background:#fff8;border:1px solid white;padding:15px;border-radius:25px;font-size:13px;backdrop-filter:blur(10px)}
/* messaging */
.messenger{background:#fff;color:#16191b}.messenger.kakao .topbar{background:#fff}.search{margin:12px 19px 17px;display:flex;gap:9px;align-items:center;background:#f5f5f5;border-radius:24px;padding:11px 15px;color:#a8aaab}.search svg{width:19px;height:19px}.search input{background:none;border:0;outline:none;width:100%;font-size:15px;min-width:0}.search input::placeholder{color:#b2b2b2}.search .scan{margin-left:auto}.me-card{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 22px}.me-card h2{font-size:27px;margin:0 0 7px}.me-card p{font-size:14px;color:#939393;margin:0}.me-card .avatar{width:61px;height:61px}.section-label{font-size:13px;margin:14px 21px 5px;color:#8a8c8e;display:flex;align-items:center;justify-content:space-between;min-height:35px}.section-label button{display:flex;align-items:center;justify-content:space-between;flex:1;padding:0;text-align:left}.section-label svg{height:15px;width:15px}.services{display:flex;justify-content:space-around;padding:10px 15px 23px;border-bottom:7px solid #fafafa;margin-bottom:10px}.service{display:flex;align-items:center;flex-direction:column;gap:10px;font-size:11px;padding:5px 10px}.service svg{width:28px;height:28px;stroke-width:1.7}.contact-row{width:100%;display:flex;align-items:center;text-align:left;padding:13px 21px;gap:13px;min-height:80px}.contact-row:hover{background:#faf9f8}.avatar{width:50px;height:50px;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#b6cbd1;color:#fff;position:relative}.avatar img{height:100%;width:100%;object-fit:cover;object-position:center 24%;display:block}.avatar svg{width:28px;height:28px;stroke-width:1.3}.avatar.silhouette{background:linear-gradient(145deg,#c7bfc4,#b1a7b1)}.avatar.silhouette:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#85778755,transparent)}.avatar.silhouette img{filter:brightness(0);opacity:.6}.avatar.small{width:35px;height:35px}.avatar.group{background:#eee9e2;display:grid;grid-template-columns:repeat(2,1fr);gap:2px;padding:5px;border-radius:17px}.avatar.group .mini{border-radius:50%;height:19px;width:19px;background:#a6b6a6;overflow:hidden;font-size:9px;display:flex;align-items:center;justify-content:center}.mini img{width:100%;height:100%;object-fit:cover}.contact-meta{flex:1;min-width:0}.contact-meta strong{display:block;font-size:16px;font-weight:550}.contact-meta p{font-size:12px;color:#95969a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:6px 0 0;line-height:1.4}.row-time{align-self:flex-start;display:flex;flex-direction:column;align-items:flex-end;font-size:10px;color:#a8a8aa;padding-top:7px;gap:9px}.unread{background:#06c755;color:#fff;border-radius:12px;min-width:18px;height:18px;line-height:18px;text-align:center;padding:0 5px;font-size:10px}.kakao .unread{background:#ff634e}.bottom-tabs{display:flex;justify-content:space-around;margin:10px auto 33px;background:#f8f8f9e8;backdrop-filter:blur(18px);border:1px solid white;border-radius:38px;box-shadow:0 5px 30px #38324012;width:288px;padding:5px;flex-shrink:0}.bottom-tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;width:89px;height:52px;gap:4px;border-radius:30px;font-size:10px}.bottom-tabs button svg{width:26px;height:26px;stroke-width:1.8}.bottom-tabs button.active{background:#e8e8e9}.bottom-tabs button.active svg{fill:#111;stroke:#111}.kakao .bottom-tabs button.active{background:#f9e26c}.chat-page{background:#8fadd1;color:#101820}.chat-page.kakao{background:#b8c9d6}.chat-page .topbar{background:transparent;padding:1px 11px;min-height:59px}.chat-page .topbar .left{gap:0;flex:1;overflow:hidden}.chat-page .topbar .left .iconbtn{margin-right:3px}.chat-page .topbar .left .chat-name{border:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:650;padding:0 6px;max-width:210px}.chat-page .topbar .iconbtn svg{width:24px;height:24px}.chat-messages{padding:11px 14px 25px;scroll-behavior:smooth;position:relative;background:radial-gradient(ellipse at 0 95%,#c3d4e827,transparent 45%)}.date-chip{text-align:center;margin:4px auto 17px;font-size:11px;color:#fff;background:#54769c55;border-radius:14px;padding:6px 13px;width:max-content}.chat-hint{text-align:center;color:#e9f2fb;font-size:10px;line-height:1.8;margin:9px 25px 23px}.msg-row{display:flex;gap:8px;margin:9px 0;align-items:flex-end}.msg-row .avatar{align-self:flex-start;margin-top:0}.msg-main{display:flex;flex-direction:column;max-width:78%;align-items:flex-start}.msg-name{font-size:11px;margin:0 0 5px;color:#32465d}.bubble{padding:11px 14px;background:white;border-radius:19px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.55;position:relative;max-width:100%;box-shadow:0 1px 0 #00000005}.msg-row.other .bubble{border-top-left-radius:4px}.msg-row.mine{justify-content:flex-end}.msg-row.mine .msg-main{order:2;align-items:flex-end}.msg-row.mine .bubble{background:#72e56b;border-top-right-radius:4px}.kakao .msg-row.mine .bubble{background:#ffe747}.msg-time{font-size:9px;line-height:1.45;color:#4a627b;min-width:30px;display:flex;flex-direction:column;margin-bottom:2px}.mine .msg-time{align-items:flex-end}.typing{font-size:11px;color:#415d78;display:flex;align-items:center;gap:7px;padding:8px 10px;margin-left:43px}.typing i{width:4px;height:4px;background:#59728c;border-radius:50%;animation:pulse 1s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}.chat-bottom{background:#fff;padding:10px 11px 32px;position:relative;flex-shrink:0}.input-row{display:flex;align-items:flex-end;gap:5px}.input-row .iconbtn{height:37px;width:33px;padding:5px;flex-shrink:0}.input-row .input-wrap{display:flex;flex:1;align-items:flex-end;background:#f5f5f5;border:1px solid #e8e8e8;border-radius:25px;padding:6px 8px 6px 14px;min-width:0}.input-wrap textarea{width:100%;border:0;background:none;resize:none;outline:0;max-height:100px;min-height:25px;line-height:25px;padding:0;font-size:16px;color:#222}.input-wrap textarea::placeholder{color:#c1c1c1}.input-wrap button{height:26px;width:29px;padding:2px;flex-shrink:0;color:#858585}.send-button{color:#05b44c!important}.kakao .send-button{color:#4c3527!important}.composer-note{font-size:9px;color:#a4a3a4;display:flex;justify-content:center;margin-top:7px;letter-spacing:.4px}.mention-menu{position:absolute;bottom:100%;left:15px;right:15px;background:#fffffff5;border-radius:15px;box-shadow:0 -7px 30px #31415420;padding:6px}.mention-menu button{display:flex;align-items:center;width:100%;gap:10px;padding:8px;text-align:left;font-size:13px}.quick-questions{display:flex;gap:7px;padding:9px 15px;overflow-x:auto;scrollbar-width:none;background:#ffffff22;flex-shrink:0}.quick-questions button{border:1px solid #ffffff9c;border-radius:20px;background:#ffffffa3;font-size:11px;padding:7px 12px;white-space:nowrap;color:#4e6179}.chat-empty{text-align:center;padding:35px;color:#54708d;font-size:12px}
/* character / chapters */
.game-page{background:#faf8f5}.game-page .topbar h2{font-family:var(--font);font-size:23px;letter-spacing:2px;font-weight:500}.game-caption{padding:0 26px;color:#aaa0a4;font-size:10px;letter-spacing:2px;margin:0 0 18px}.gallery-grid{padding:0 22px 35px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.person-card{background:#fff;border:1px solid #ece7e3;border-radius:19px;overflow:hidden;text-align:left;padding:0}.person-image{height:175px;position:relative;background:#ece7e4;overflow:hidden}.person-image>img{width:100%;height:100%;object-fit:cover;object-position:center 23%;transition:transform .5s}.person-card:hover .person-image>img{transform:scale(1.03)}.person-image .avatar{height:100%;width:100%;border-radius:0}.person-image .avatar svg{width:70px;height:70px;opacity:.55}.person-card .route-tag{position:absolute;top:10px;left:10px;border-radius:16px;background:#fff9;color:#8d6b78;font-size:9px;padding:5px 8px;backdrop-filter:blur(8px)}.person-card .locked-tag{position:absolute;bottom:10px;right:10px;background:#332b3c99;border-radius:20px;color:white;font-size:9px;padding:5px 9px}.person-info{padding:13px 14px}.person-info strong{display:block;font-family:var(--font);font-weight:500;font-size:17px}.person-info small{display:block;font-size:9px;color:#9b9299;margin-top:6px;letter-spacing:.7px}.profile-hero{height:270px;position:relative;background:linear-gradient(140deg,#ced9d6,#b9b5c1);flex-shrink:0;overflow:hidden}.profile-hero img{width:100%;height:100%;object-fit:cover;object-position:50% 24%;filter:brightness(.85)}.profile-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,#2c253b70)}.profile-hero .avatar{height:100%;width:100%;border-radius:0}.profile-hero .avatar svg{height:120px;width:120px}.profile-title{padding:0 26px;margin-top:-27px;position:relative;z-index:2}.profile-title .avatar{width:69px;height:69px;border:4px solid #faf8f5;margin-bottom:12px}.profile-title h2{font-family:var(--font);font-size:26px;letter-spacing:2px;margin:0 0 7px;font-weight:500;display:flex;align-items:center;gap:8px}.profile-title .edit-name{padding:5px}.edit-name svg{height:15px;width:15px;color:#aaa}.profile-title p{font-size:11px;color:#9a9197;margin:0}.profile-bio{font-size:13px;line-height:1.9;padding:17px 26px 7px;margin:0;color:#7d7580}.stats-box{margin:16px 24px;padding:19px;background:white;border:1px solid #eee8e4;border-radius:19px}.stats-top{display:flex;justify-content:space-between;font-size:11px;color:#8f7686;margin-bottom:17px}.stats-top span:last-child{font-size:9px;color:#aaa}.stat{margin:12px 0}.stat-label{display:flex;justify-content:space-between;font-size:11px;color:#78717b;margin-bottom:7px}.stat-label b{font-weight:400;font-size:10px;color:#a197a0}.stat-track{height:4px;border-radius:6px;background:#f0edeb;overflow:hidden}.stat-track i{height:100%;display:block;border-radius:6px;background:#9db3a4}.stat:nth-child(3) i{background:#aaa0bd}.stat:nth-child(4) i{background:#c9a0a4}.relationship-note{padding:0 27px;font-size:11px;line-height:1.9;color:#9a9199}.primary{display:block;margin:20px 24px 30px;border-radius:17px;background:#718b7e;color:white;padding:14px 18px;text-align:center;font-size:13px;width:calc(100% - 48px)}.primary.rose{background:#a5828c}.primary.outline{background:transparent;border:1px solid #c5b6be;color:#9a7c8a}.chapter-list{padding:0 22px 35px}.chapter-card{display:flex;gap:15px;margin-bottom:14px;padding:19px 18px;text-align:left;width:100%;border-radius:21px;border:1px solid #e8e2df;background:white;position:relative}.chapter-card.available{background:linear-gradient(135deg,#fff,#f2e9e9);border-color:#d9c2c8}.chapter-card .chapter-number{font-family:var(--font);font-size:31px;font-style:italic;color:#b7a3ae;line-height:1.4;min-width:43px}.chapter-card h3{font-size:16px;font-weight:500;letter-spacing:.3px;margin:5px 0 8px}.chapter-card p{font-size:11px;color:#9b929a;line-height:1.8;margin:0 0 10px}.chapter-state{display:flex;gap:5px;align-items:center;font-size:9px;color:#9f848e}.chapter-state svg{width:13px;height:13px}.chapter-next{font-size:11px;color:#a29aa2;padding:13px 8px;line-height:2;border-top:1px dashed #ded5d8}.chapter-next strong{font-weight:500;color:#8a7886}.progress-track{height:3px;background:#e6dfdf;margin:0 26px 24px;border-radius:3px}.progress-track i{display:block;height:3px;background:#ad8a95;border-radius:3px}.settings-block{background:white;margin:0 21px 16px;border:1px solid #ece7e4;border-radius:18px;padding:6px 17px}.settings-row{padding:14px 0;border-bottom:1px solid #f0ece9;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:13px}.settings-row:last-child{border-bottom:0}.settings-row small{color:#aaa0aa;font-size:11px}.settings-row button{color:#9d7d87;font-size:12px}.settings-title{font-size:10px;color:#a197a0;margin:12px 27px 10px;letter-spacing:1px}.settings-copy{font-size:11px;line-height:1.9;color:#928995;padding:0 27px}.danger{color:#ba777c!important}.notes-paper{margin:0 22px 30px;padding:26px 24px;background:#fffdf8;border:1px solid #eee7db;border-radius:5px 19px 19px 5px;box-shadow:0 6px 25px #63504908;font-family:var(--font);line-height:2;font-size:15px;white-space:pre-line}.notes-paper small{font-family:var(--font);font-size:10px;color:#b4a696;letter-spacing:1px}
/* visual novel */
.vn-page{background:#c5c6d3}.scene-bg{position:absolute;inset:0;background:linear-gradient(#28243808,#2b253820),url('assets/tokyo-evening.png') center/cover;transition:filter .5s}.scene-bg.school{filter:brightness(1.12) saturate(.65)}.scene-bg.field{filter:hue-rotate(15deg) saturate(.75)}.scene-bg.home{filter:brightness(.85)}.vn-top{position:relative;z-index:3;display:flex;justify-content:space-between;padding:17px 22px;align-items:center;color:white}.place-chip{background:#2e253c50;backdrop-filter:blur(15px);border:1px solid #ffffff40;border-radius:25px;padding:9px 13px;display:flex;align-items:center;gap:6px;font-size:10px}.place-chip svg{width:13px;height:13px}.vn-actions{display:flex;gap:4px}.vn-actions button{width:33px;height:33px;background:#2e253c50;backdrop-filter:blur(15px);border-radius:50%;padding:8px;color:#fff}.vn-actions svg{width:17px;height:17px}.vn-sprite{position:absolute;height:660px;max-width:100%;object-fit:contain;bottom:50px;left:50%;transform:translateX(-50%);filter:drop-shadow(0 12px 10px #221a3520);animation:spriteIn .5s}.vn-silhouette{position:absolute;left:80px;right:80px;bottom:90px;height:610px;opacity:.94;background:#3e3947;clip-path:polygon(38% 0,62% 0,73% 5%,76% 16%,68% 23%,70% 27%,91% 33%,100% 68%,89% 70%,82% 44%,83% 100%,17% 100%,18% 44%,10% 70%,0 68%,9% 33%,30% 27%,32% 23%,24% 16%,27% 5%);filter:drop-shadow(0 7px 15px #362c4440)}.vn-silhouette.child{height:420px;left:118px;right:118px}.vn-card{position:relative;z-index:6;margin:auto 16px 32px;padding:21px 22px 13px;border:1px solid #ffffffdd;border-radius:23px;background:linear-gradient(125deg,#fffdf8f7,#f5f0f5ed);box-shadow:0 12px 45px #2c1b382f;backdrop-filter:blur(18px);color:#4a414e;min-height:228px;text-align:left;cursor:pointer}.vn-name{font-size:12px;color:#9b7789;letter-spacing:2px;display:flex;align-items:center;gap:9px;margin-bottom:14px}.vn-name:before{content:"";width:19px;height:1px;background:#bd9bab}.vn-text{font-size:16px;line-height:1.95;margin:0;white-space:pre-line;min-height:105px}.vn-card.thought .vn-text{color:#79717e}.vn-bottom{display:flex;align-items:center;justify-content:space-between;color:#afa0ad;font-size:9px;margin-top:17px;letter-spacing:1px}.vn-bottom svg{height:14px;width:14px;animation:pulse 2s infinite}.vn-step{height:2px;position:absolute;left:0;top:0;background:#c7a4af;border-radius:20px;transition:width .3s}
/* overlays */
#modalRoot{position:absolute;inset:0;z-index:60;pointer-events:none}#modalRoot:not(:empty){pointer-events:auto}.modal-backdrop{position:absolute;inset:0;background:#231c354c;backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:28px;animation:enter .2s}.modal-card{background:#fdfbf7;border-radius:27px;padding:28px 25px;width:100%;box-shadow:0 20px 60px #22172f35;border:1px solid white;max-height:78%;overflow-y:auto}.modal-kicker{font-size:9px;letter-spacing:3px;color:#a38292;margin:0 0 16px;display:flex;gap:7px;align-items:center}.modal-card h3{font-family:var(--font);font-weight:500;font-size:25px;line-height:1.5;margin:7px 0 15px;letter-spacing:1px}.modal-card p{font-size:13px;line-height:1.9;color:#918694;margin:8px 0 17px}.modal-card .primary{width:100%;margin:15px 0 8px}.modal-card .secondary{display:block;width:100%;font-size:12px;padding:11px;color:#a2929f}.modal-card input{width:100%;padding:12px;border:1px solid #dfd5dc;border-radius:12px;margin:8px 0;outline:none;background:#fff}.modal-input-label{font-size:11px;color:#9a8d9b}.modal-card .member-row{display:flex;align-items:center;gap:12px;padding:10px 0;font-size:13px}.modal-card .member-row .iconbtn{margin-left:auto}.emoji-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.emoji-grid button{font-size:27px;padding:9px}.log-entry{border-bottom:1px solid #ece6e9;padding:10px 0}.log-entry strong{font-size:11px;color:#a08392}.log-entry p{font-size:12px;margin:4px 0}.notification{position:relative;display:flex;gap:11px;align-items:center;padding:13px 15px;background:#fffdf6ed;border:1px solid #fff;border-radius:22px;box-shadow:0 10px 30px #33284128;backdrop-filter:blur(18px);text-align:left;width:100%}.notification .avatar{height:37px;width:37px}.notification strong{font-size:12px;font-weight:600;display:block}.notification p{margin:4px 0 0;font-size:12px;line-height:1.5;color:#6f6573;max-width:280px}.notification small{position:absolute;top:15px;right:14px;font-size:9px;color:#a79ba5}#notification{position:absolute;top:65px;left:12px;right:12px;z-index:55;transform:translateY(-180%);opacity:0;transition:transform .35s,opacity .35s;pointer-events:none}#notification.visible{transform:translateY(0);opacity:1;pointer-events:auto}#toast{position:absolute;z-index:80;bottom:120px;left:50%;transform:translate(-50%,12px);opacity:0;background:#292533d9;backdrop-filter:blur(12px);padding:12px 18px;border-radius:17px;font-size:12px;line-height:1.6;color:white;max-width:340px;width:max-content;text-align:center;pointer-events:none;transition:all .2s}#toast.visible{transform:translate(-50%,0);opacity:1}.empty-state{padding:40px 30px;text-align:center;color:#ada3ac;font-size:12px;line-height:2}.empty-state svg{display:block;margin:0 auto 14px;width:40px;height:40px;stroke-width:1}.source-link{color:#8f7481;text-decoration:underline}.offline-pill{font-size:9px;color:#a28a96;background:#f8f2f5;border-radius:15px;padding:5px 8px}.vn-options{display:flex;flex-direction:column;gap:9px;margin:12px 0}.vn-options button{border:1px solid #dfced4;border-radius:12px;padding:11px;background:#fff;font-size:12px;color:#8c7180}.fade-locked{filter:saturate(.5)}@keyframes enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,100%{opacity:.4}50%{opacity:1}}@keyframes spriteIn{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}@media(max-width:1000px){#stage{gap:35px}.editorial{width:210px}.editorial h1{font-size:52px}.desktop-tools{width:48px}.desktop-brand{left:25px}}@media(max-width:760px){#stage{padding:6px;gap:0}.editorial,.desktop-tools,.desktop-brand,.desktop-footer{display:none}.device-wrap{margin:auto}body{background:#e6e2e0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* 同色柔光只作用于场景，不虚化人物和文字。 */
.scene-bg{transform:scale(1.035);filter:blur(5px) saturate(.55) brightness(.94)}
.scene-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#c8c4d85c 0%,#c0b7c357 45%,#d5beb16b 100%);box-shadow:inset 0 0 100px #ac9fa13b}
.scene-bg.school{filter:blur(6px) saturate(.4) brightness(1.1)}
.scene-bg.field{filter:blur(5px) saturate(.5) brightness(.96)}
.scene-bg.home{filter:blur(7px) saturate(.4) brightness(.88)}
.vn-sprite{filter:drop-shadow(0 9px 17px #8c738135) saturate(.86)}
/* Japanese visual-novel stationery language, without changing LINE's UI */
.home-page{background-image:linear-gradient(180deg,#35344112,#57444a22 45%,#302d424d),url('assets/tokyo-evening.png')}
.home-heading .greeting{font-family:var(--font);letter-spacing:2.5px}
.jp-seal{display:inline-flex;align-items:center;justify-content:center;font-size:11px;line-height:1;border:1px solid #d6aaa3;color:#ffe5dd;width:19px;height:22px;margin:0 7px;font-family:var(--font);border-radius:2px;transform:rotate(-5deg)}
.home-heading small{letter-spacing:1.4px}.home-date{font-size:9px;border-radius:7px;writing-mode:vertical-rl;line-height:1.5;padding:10px 7px;letter-spacing:2px;border:1px solid #fffa;background:#fff4}
.story-widget{border-radius:8px 23px 8px 23px;background:linear-gradient(110deg,#fffdf5f5,#f6ece7ef);box-shadow:0 10px 30px #45313e14,inset 0 0 0 6px #ffffff35;padding:21px 23px;min-height:170px}
.story-widget:before{content:"";position:absolute;inset:8px;border:1px solid #d9c9be8c;border-radius:3px 15px 3px 15px;pointer-events:none}
.story-widget:after{content:"";width:65px;height:65px;right:17px;top:32px;opacity:.2;background:radial-gradient(ellipse at 50% 22%,#c58c91 0 19%,transparent 20%),radial-gradient(ellipse at 78% 44%,#c58c91 0 19%,transparent 20%),radial-gradient(ellipse at 66% 76%,#c58c91 0 19%,transparent 20%),radial-gradient(ellipse at 32% 76%,#c58c91 0 19%,transparent 20%),radial-gradient(ellipse at 20% 44%,#c58c91 0 19%,transparent 20%);transform:rotate(12deg)}
.story-widget h3{font-size:25px;letter-spacing:1.2px}.widget-kicker{font-size:10px;letter-spacing:2.2px}.daily-card{border-radius:8px 20px 8px 20px;background:#f8f4eb42;box-shadow:0 6px 25px #44353e12}
.home-dock{padding:12px 14px 11px;margin-bottom:35px;border-radius:12px 29px 12px 29px;background:linear-gradient(120deg,#fcf7eec9,#f3e9efb5);border-color:#fff9;box-shadow:inset 0 0 0 4px #fff2,0 8px 28px #2f21321a;gap:5px}
.home-dock .app-button{font-size:10px;gap:4px;color:#6e616f;text-shadow:none;letter-spacing:1px;flex:1}
.home-dock .app-icon{height:61px;width:61px;border-radius:0;background:transparent;box-shadow:none}
.game-app-illustration{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 3px #71586720)}
.app-grid .app-icon.people{background:linear-gradient(135deg,#f6eeed,#e7d8df)}
.app-grid .app-icon.people .game-app-illustration{width:52px;height:52px}
.game-page .topbar h2{font-family:var(--font)}
.game-page{background-color:#faf8f2;background-image:radial-gradient(#cec6bf2b .65px,transparent .65px);background-size:5px 5px}
.chapter-card{border-radius:5px 20px 5px 20px}.chapter-card.available{box-shadow:inset 0 0 0 5px #ffffff80;background:linear-gradient(135deg,#fffdf8,#efe4e5)}
.modal-card{border-radius:7px 28px 7px 28px;outline:1px solid #e3d3ce;outline-offset:-8px}.modal-card h3{font-family:var(--font)}
.vn-card{border-radius:6px 25px 6px 25px;outline:1px solid #d9c8d266;outline-offset:-7px}
/* LINE tool shapes follow the supplied phone references */
.line-tools{padding:5px 7px;gap:2px;border:1px solid #fff;box-shadow:0 8px 35px #26212d14;background:#fafafaed}
.line-tools .iconbtn{width:37px;height:37px;padding:7px}
.line-tools .iconbtn svg{width:25px;height:25px;stroke-width:1.8}
.line-tools [data-action="line-album"]{position:relative}
.line-tools [data-action="line-album"]:after{content:"";position:absolute;top:3px;right:4px;background:#06c755;width:5px;height:5px;border-radius:50%}
.messenger:not(.kakao)>.topbar{min-height:77px;padding:7px 20px}.messenger:not(.kakao)>.topbar h2{font-size:27px}
.typing-row.typing{margin:9px 0;padding:0;gap:8px;font-size:inherit;display:flex;align-items:flex-end}
.typing-row .avatar{width:35px;height:35px;align-self:flex-start}
.typing-bubble{display:flex;gap:5px;align-items:center;justify-content:center;min-width:68px;height:42px;padding:12px 17px;background:#fff}
.typing-bubble i{width:5px;height:5px;background:#a4a4a7;display:block;animation:pulse 1.15s ease-in-out infinite}
.typing-bubble i:nth-child(2){animation-delay:.15s}.typing-bubble i:nth-child(3){animation-delay:.3s}
.remark-rows{margin:17px 26px 4px;padding:2px 0 10px;border-bottom:1px solid #e8e1e4}
.remark-rows>div{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:34px;font-size:11px;color:#a0959e}
.remark-rows button{display:flex;align-items:center;gap:8px;font-size:12px;color:#796676;max-width:210px;overflow:hidden;overflow-wrap:anywhere;text-align:right}
.remark-rows svg{width:13px;height:13px;stroke-width:1.3}
.black-silhouette{height:690px!important;bottom:38px!important;filter:drop-shadow(0 10px 18px #49404e26)!important}
/* KakaoTalk is an independent surface, not a green-to-yellow LINE skin */
.native-kakao{background:#fff;color:#191919}
.native-kakao>.topbar{min-height:75px;padding:4px 18px}
.native-kakao>.topbar h2{font-size:26px;letter-spacing:-.6px}
.kakao-tools{display:flex;gap:1px;align-items:center;background:none;border:0;box-shadow:none}
.kakao-tools .iconbtn{width:39px;height:43px;padding:7px}
.kakao-tools .iconbtn svg{width:26px;height:26px;stroke-width:1.9}
.kakao-tabs{display:flex;width:100%;margin:0;justify-content:space-around;align-items:center;min-height:78px;padding:7px 14px 26px;border-top:1px solid #f6f6f6;background:#fff;flex-shrink:0}
.kakao-tabs button{height:43px;width:64px;display:flex;align-items:center;justify-content:center;position:relative;color:#bfc2c4;padding:8px}
.kakao-tabs svg{width:29px;height:29px;stroke-width:2}
.kakao-tabs .active{color:#30383f}
.kakao-tabs .active svg{fill:currentColor}
.kakao-tabs b{position:absolute;right:7px;top:0;background:#ff5727;color:#fff;border-radius:12px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:500;border:2px solid #fff}
.kakao-me{display:flex;align-items:center;gap:13px;padding:15px 0 22px;margin:0 20px;width:calc(100% - 40px);text-align:left;border-bottom:1px solid #ededed}
.kakao-me .avatar{height:61px;width:61px;border-radius:24px}
.kakao-me>div{flex:1}.kakao-me strong{font-size:19px;font-weight:500}.kakao-me p{font-size:12px;color:#939393;margin:6px 0 0}
.kakao-me>svg{height:16px;width:16px;color:#aaa}
.kakao-section{margin:0 20px;border-bottom:1px solid #ededed}
.kakao-section .section-label{margin:4px 0 5px;font-size:12px;color:#888;min-height:34px}.kakao-section .section-label svg{color:#aeb0b1;width:14px;height:14px}
.kakao-section .contact-row{padding:10px 0;min-height:74px;gap:13px}
.native-kakao .contact-row .avatar{border-radius:37%;height:48px;width:48px}
.native-kakao .contact-meta strong{font-size:17px;font-weight:500}.native-kakao .contact-meta p{font-size:13px;color:#888;margin-top:4px}
.native-kakao .contact-row .avatar:has(svg){background:linear-gradient(150deg,#b2dbe9,#8bb9f9)!important;color:#e6f4ff}
.native-kakao .contact-row:nth-child(even) .avatar:has(svg){background:linear-gradient(150deg,#b5e4dd,#88d3d6)!important}
.native-kakao .contact-row .avatar svg{width:28px;height:28px;fill:currentColor;stroke-width:0}
.channel-avatar{width:43px;height:43px;border-radius:38%;background:#ffe100;position:relative;display:flex;align-items:center;justify-content:center;color:#ffe100;font-size:16px;font-weight:600;isolation:isolate}
.channel-avatar:before{content:"";position:absolute;inset:8px 6px;background:#111;border-radius:50%;z-index:-1}.channel-avatar:after{content:"";position:absolute;left:10px;bottom:5px;width:10px;height:10px;background:#111;clip-path:polygon(0 0,100% 0,0 100%);z-index:-1}
.channel-count{font-size:13px;color:#999;display:flex;align-items:center;gap:2px}.channel-count svg{width:14px;height:14px}
.kakao-filters{display:flex;gap:7px;margin:3px 20px 14px;align-items:center}
.kakao-filters button{height:39px;border-radius:25px;background:#f3f3f3;font-size:16px;font-weight:500;color:#737373;padding:0 17px;display:flex;align-items:center;gap:6px}
.kakao-filters .active{background:#191919;color:#fff}.kakao-filters b{background:#ff5727;color:white;font-size:12px;border-radius:15px;width:19px;height:19px;display:flex;justify-content:center;align-items:center;font-weight:500}
.kakao-filters .filter-add{width:40px;padding:8px;justify-content:center}.kakao-filters .filter-add svg{width:23px;height:23px}
.native-kakao .scroll>.contact-row{padding:13px 20px;gap:15px;min-height:86px}.native-kakao .scroll>.contact-row .avatar{width:52px;height:52px}
.native-kakao .row-time{font-size:11px;padding-top:3px;gap:9px}.native-kakao .unread{background:#ff5727;height:20px;min-width:20px;line-height:20px;font-size:11px}
.chat-messages{scroll-behavior:auto}
/* 半身立绘统一使用自然比例，保持人物头部与肩膀的阅读尺度 */
.vn-sprite{height:730px;bottom:30px;max-width:112%;object-fit:contain;object-position:center bottom}
.black-silhouette{height:730px!important;bottom:30px!important}
/* 照片轮廓保持自然比例，用裁切位置统一头肩大小，不拉伸人形。 */
.black-silhouette{height:900px!important;max-width:none!important;bottom:-85px!important;filter:brightness(0) drop-shadow(0 10px 18px #49404e26)!important;opacity:.86}
.vn-sprite:not(.black-silhouette){max-width:none;height:700px;bottom:35px}
.vn-tone-silhouette{position:absolute;left:50%;transform:translateX(-50%);height:900px;width:735px;bottom:-85px;background:linear-gradient(155deg,#625b75f5 5%,#817288ed 42%,#b4959cc9 83%,#bca4a580 100%);-webkit-mask-image:url('assets/jumi-sprite-v2.png');mask-image:url('assets/jumi-sprite-v2.png');-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center bottom;mask-position:center bottom;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;opacity:.93;filter:drop-shadow(0 0 2px #f5e8eb55);animation:spriteIn .4s ease-out}

.story-length{display:block;color:#9b8491;font-size:10px;margin:7px 0 12px;letter-spacing:.5px}
.vn-actions button:disabled{opacity:.25;pointer-events:none}
/* Directed novel reading: one event per chapter, separate speaker / inner voice / narration. */
.chapter-body{flex:1;min-width:0}.chapter-title-button{padding:0;background:none;text-align:left;width:100%;color:inherit}.chapter-reading-options{display:flex;align-items:center;gap:10px;margin-top:12px}.chapter-reading-options button{padding:9px 11px;border:1px solid #dac8d2;border-radius:5px 12px;background:#f5ecef;color:#79556d;font-size:11px;display:flex;align-items:center;gap:7px}.chapter-reading-options button+button{background:transparent;border-color:transparent;color:#94858e}.chapter-reading-options svg{width:12px;height:12px}.chapter-reading-options button:disabled{opacity:.35;cursor:default}.chapter-card .chapter-condition{margin:8px 0 0;font-size:10px}.vn-mode-label{font-size:9px;letter-spacing:1px;opacity:.7;border-left:1px solid #c8b4c3;padding-left:9px}.vn-card.narration{background:linear-gradient(120deg,#fffdf9fa,#f2edf4f5)}.vn-card.thought{background:linear-gradient(120deg,#f2edf8fa,#eee6f3f5);border-color:#d8c5e5}.vn-card.thought .vn-text{color:#69536e}.vn-card.dialogue{border-top:2px solid #ad7991}.vn-name .vn-speaker-avatar{width:27px;height:27px;border-radius:9px;margin:-5px 0;flex-shrink:0}.vn-card.dialogue .vn-name:before{display:none}.vn-card .vn-text{max-height:285px;overflow-y:auto;font-size:16px;line-height:1.95}.vn-card{min-height:235px}.story-phone-message{display:flex;align-items:flex-start;gap:10px;min-height:106px;padding:9px 0}.story-phone-message .avatar{width:37px;height:37px;border-radius:12px;flex-shrink:0}.story-phone-message p{margin:0;white-space:pre-line;padding:12px 15px;background:white;border-radius:3px 13px 13px;box-shadow:0 2px 8px #68536b12;font-size:15px;line-height:1.7;max-width:290px}
.vn-cast{position:absolute;inset:90px 0 170px;z-index:2;pointer-events:none;overflow:visible}.vn-person{position:absolute;width:570px;height:730px;bottom:-105px;left:50%;transform:translateX(-50%);transition:filter .25s,opacity .25s}.vn-person>img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 3px 12px #493f4c20)}.vn-person.is-active{z-index:3}.vn-person.is-listening{filter:brightness(.88) saturate(.8);z-index:2}.vn-person .vn-tone-silhouette{inset:0;width:100%;height:100%;transform:none;background:linear-gradient(155deg,#45364f 5%,#65516e 45%,#967184 82%,#ad8594 100%);opacity:1;filter:none;animation:none}.count-2 .vn-person{height:670px;width:500px;bottom:-90px}.count-2 .slot-0{left:22%}.count-2 .slot-1{left:78%}.count-3 .vn-person{height:590px;width:450px;bottom:-80px}.count-3 .slot-0{left:6%}.count-3 .slot-1{left:94%}.count-3 .slot-2{left:50%}.count-3 .is-active{height:700px;width:540px;left:50%;bottom:-100px;z-index:4}.count-3 .is-listening{opacity:.65;filter:brightness(.8) saturate(.75)}

/* Keep the leaning pose inside the phone frame; three-person scenes use speaker focus. */
.count-2 .slot-1{left:45%}.count-1 .vn-person[data-person="saku"]{left:35%}.vn-participants{position:absolute;top:-6px;left:20px;right:20px;display:flex;justify-content:center;gap:8px;z-index:6}.vn-participants span{display:flex;align-items:center;gap:4px;padding:5px 7px;border-radius:20px;background:#fffaf0aa;color:#6b596a;font-size:9px;backdrop-filter:blur(8px)}.vn-participants .avatar{width:20px;height:20px;border-radius:50%}.vn-participants .speaking{background:#fff8f3;color:#68435e;box-shadow:0 2px 9px #63506615}
/* Two stable half-screen slots. Portraits are clipped to their own slot, with only 6px overlap. */
.vn-cast.v2-stage{inset:106px 0 210px;overflow:hidden;z-index:2;pointer-events:none}.v2-stage .vn-person{position:absolute;left:0;bottom:-92px;height:700px;width:100%;transform:none;overflow:hidden;transition:left .38s ease,width .38s ease,filter .2s,opacity .2s;opacity:1;z-index:2;filter:brightness(.73) saturate(.84)}.v2-stage.is-pair .vn-person{width:calc(50% + 3px)}.v2-stage.is-pair .vn-person[data-slot="0"]{left:0}.v2-stage.is-pair .vn-person[data-slot="1"]{left:calc(50% - 3px)}.v2-stage .vn-person.is-active{filter:brightness(1) saturate(1);z-index:3}.v2-stage .vn-person.entering{opacity:0}.v2-stage .sprite-art{position:absolute;left:50%;bottom:0;height:690px;width:450px;transform:translateX(-50%)}.v2-stage [data-person="saku"] .sprite-art{transform:translateX(-63%)}.v2-stage [data-person="haruto"] .sprite-art{height:550px;width:365px}.v2-stage [data-person="aunt"] .sprite-art,.v2-stage [data-person="shopkeeper"] .sprite-art,.v2-stage [data-person="uncle"] .sprite-art{height:665px;width:440px}.v2-stage .sprite-art>img{height:100%;width:100%;object-fit:contain;object-position:center bottom}.v2-stage .sprite-art .vn-tone-silhouette{width:100%;height:100%;inset:0;left:0;bottom:0;transform:none;background:linear-gradient(155deg,#45364f 5%,#65516e 45%,#967184 82%,#ad8594 100%);opacity:1;filter:none;animation:none}.vn-page{animation:none}.vn-name .avatar{display:none}.vn-counter{font-style:normal}.vn-reading-content{min-height:106px}.vn-reading-content .vn-text{margin:0}.vn-reading-content .story-phone-message p{max-width:100%;width:max-content}.vn-name:before{display:block!important}
/* Native momentum on touch screens; drag and elastic feedback are added for pointer input. */
.scroll,.modal-card{scroll-behavior:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-y}.page{touch-action:pan-y}.scroll.elastic-release{transition:transform .28s cubic-bezier(.2,.9,.3,1)}.page.swipe-release{transition:transform .22s ease-out}.batch-send{height:36px;min-width:57px;margin-left:4px;padding:0 12px;border-radius:7px;background:#06c755;color:white;font-weight:600;font-size:13px;flex-shrink:0}.kakao .batch-send{background:#fee500;color:#332726}.composer-note{min-height:24px}.batch-send:disabled{opacity:.45}.input-row{align-items:center}
/* Whole portraits, not clipped half-portraits: only their edges may overlap. */
.vn-cast.v2-stage{overflow:visible}.v2-stage .vn-person{overflow:visible}.v2-stage .sprite-art{width:420px;height:630px;top:24px;bottom:auto;left:50%;transform:translateX(-50%)}.v2-stage [data-person="saku"] .sprite-art{transform:translateX(-50%)}.v2-stage.is-pair .vn-person{width:50%}.v2-stage.is-pair .vn-person[data-slot="0"]{left:0}.v2-stage.is-pair .vn-person[data-slot="1"]{left:50%}.v2-stage.is-pair .sprite-art{top:104px;width:282px;height:423px}.v2-stage.is-pair [data-person="jumi"] .sprite-art{width:304px;height:456px;top:84px}.v2-stage [data-person="haruto"] .sprite-art{width:340px;height:510px;top:130px}.v2-stage.is-pair [data-person="haruto"] .sprite-art{width:260px;height:390px;top:157px}.v2-stage [data-person="aunt"] .sprite-art,.v2-stage [data-person="shopkeeper"] .sprite-art,.v2-stage [data-person="uncle"] .sprite-art{width:410px;height:615px;top:34px}.v2-stage.is-pair [data-person="aunt"] .sprite-art,.v2-stage.is-pair [data-person="shopkeeper"] .sprite-art,.v2-stage.is-pair [data-person="uncle"] .sprite-art{width:280px;height:420px;top:105px}.v2-stage .sprite-art>img{object-fit:fill}
/* Fit both complete shoulder/arm outlines inside the phone, without any slot clipping. */
.v2-stage.is-pair .vn-person[data-slot="0"]{left:14px}.v2-stage.is-pair .vn-person[data-slot="1"]{left:calc(50% - 14px)}.v2-stage.is-pair .sprite-art{width:248px;height:372px;top:155px}.v2-stage.is-pair [data-person="jumi"] .sprite-art{width:268px;height:402px;top:129px}.v2-stage .sprite-art>img{object-fit:contain}.v2-stage.is-pair [data-person="haruto"] .sprite-art{width:242px;height:363px;top:182px}.v2-stage.is-pair [data-person="aunt"] .sprite-art,.v2-stage.is-pair [data-person="shopkeeper"] .sprite-art,.v2-stage.is-pair [data-person="uncle"] .sprite-art{width:248px;height:372px;top:155px}

.v2-stage .vn-person{filter:brightness(.84) saturate(.92)}.v2-stage .vn-person.is-active{filter:brightness(1) saturate(1)}
/* Dialogue composition: larger head-and-shoulder framing, waist continues behind the text card. */
.v2-stage.is-pair .sprite-art{width:350px;height:525px;top:40px}.v2-stage.is-pair [data-person="jumi"] .sprite-art{width:366px;height:549px;top:16px}.v2-stage.is-pair [data-person="haruto"] .sprite-art{width:292px;height:438px;top:101px}.v2-stage.is-pair [data-person="aunt"] .sprite-art,.v2-stage.is-pair [data-person="shopkeeper"] .sprite-art,.v2-stage.is-pair [data-person="uncle"] .sprite-art{width:340px;height:510px;top:45px}
.story-phone-message>.avatar{display:flex;width:37px;height:37px;flex-shrink:0}
/* Full-body masters share a camera scale; lower bodies continue behind the dialogue card. */
.v2-stage .sprite-art,.v2-stage [data-person="aunt"] .sprite-art,.v2-stage [data-person="uncle"] .sprite-art,.v2-stage [data-person="shopkeeper"] .sprite-art{width:680px;height:1020px;top:-5px}
.v2-stage.is-pair .sprite-art,.v2-stage.is-pair [data-person="jumi"] .sprite-art,.v2-stage.is-pair [data-person="aunt"] .sprite-art,.v2-stage.is-pair [data-person="uncle"] .sprite-art,.v2-stage.is-pair [data-person="shopkeeper"] .sprite-art{width:600px;height:900px;top:20px}
.v2-stage [data-person="haruto"] .sprite-art,.v2-stage.is-pair [data-person="haruto"] .sprite-art{width:500px;height:750px;top:155px}
.v2-stage .sprite-art .vn-tone-silhouette{-webkit-mask-image:url('assets/jumi-full-v1.png');mask-image:url('assets/jumi-full-v1.png')}
.vn-reading-content .vn-text{overflow:visible;max-height:none;line-height:1.85}
/* Clip the whole scene below the dialogue, never clip individual character slots. */
.vn-cast.v2-stage{overflow:hidden}
/* Keep Saku's reconstructed raised elbow inside the scene frame. */
.v2-stage.is-pair .vn-person[data-person="saku"][data-slot="0"]{left:38px}
/* LINE send and outgoing bubbles share one readable green palette. */
.chat-page:not(.kakao){--line-bubble:#72e56b}
.chat-page:not(.kakao) .msg-row.mine .bubble{background:var(--line-bubble)}
.chat-page:not(.kakao) .send-button.batch-send{background:var(--line-bubble);color:#164d27!important;font-size:14px;font-weight:700;letter-spacing:1px;min-width:60px;height:38px;border:1px solid #58cc60;box-shadow:0 1px 2px #124c2712}
.chat-page:not(.kakao) .send-button.batch-send:disabled{opacity:1;background:#c5edc5;color:#4c7957!important;border-color:#b9dfba}
.kakao .send-button.batch-send{color:#332726!important}
.v2-stage .vn-person.leaving{opacity:0;filter:brightness(.85);transition:opacity .2s ease-out}
.scene-bg-outgoing{z-index:1;pointer-events:none}
.scene-bg.school-day{background-image:url('assets/bg-school-day.png')}
.scene-bg.school-afternoon{background-image:url('assets/bg-school-afternoon.png')}
.scene-bg.field-day{background-image:url('assets/bg-field-day.png')}
.scene-bg.field-dusk{background-image:url('assets/bg-field-dusk.png')}
.scene-bg.home-day{background-image:url('assets/bg-home-day.png')}
.scene-bg.home-night{background-image:url('assets/bg-home-night.png')}
.scene-bg.family-night{background-image:url('assets/bg-family-night.png')}
.scene-bg.store-day{background-image:url('assets/bg-store-day.png')}
.scene-bg.store-night{background-image:url('assets/bg-store-night.png')}
.scene-bg.street-dusk{background-image:url('assets/tokyo-evening.png')}
.scene-bg.street-night{background-image:url('assets/bg-street-night.png')}
.scene-bg.school-day,.scene-bg.school-afternoon,.scene-bg.field-day,.scene-bg.field-dusk,.scene-bg.home-day,.scene-bg.home-night,.scene-bg.family-night,.scene-bg.store-day,.scene-bg.store-night,.scene-bg.street-dusk,.scene-bg.street-night{filter:blur(3px) saturate(.72) brightness(.98);background-position:center;background-size:cover}
.scene-bg:after{background:linear-gradient(180deg,#bba9c121,#c9b8c32e 55%,#d1b5bc45);box-shadow:none}
.v2-stage .sprite-art .vn-tone-silhouette{-webkit-mask-image:var(--jumi-sprite,url('assets/jumi-skirt.png'));mask-image:var(--jumi-sprite,url('assets/jumi-skirt.png'))}
#musicVolume{width:140px;accent-color:#a78098}
@media(prefers-reduced-motion:reduce){.v2-stage .vn-person,.vn-step{transition:none!important}.scene-bg{transition:none}}

.story-index{background:#f8f3ef}.story-index .chapter-list{padding:0 23px 42px}.story-journal{padding:18px 5px 26px;position:relative}.story-journal>span{font-size:9px;letter-spacing:2px;color:#a18c91}.story-journal h1{font:30px/1.55 var(--font);letter-spacing:3px;color:#735866;margin:17px 0 11px;font-weight:400}.story-journal>p{font-size:11px;color:#a18f96;letter-spacing:1px}.journal-progress{margin-top:23px;display:flex;align-items:center;gap:16px}.journal-progress>span{font-size:10px;color:#9f7f8b;white-space:nowrap}.journal-progress .progress-track{flex:1;margin:0;background:#e9dce0;height:3px}.story-index .chapter-card{display:block;border:1px solid #e8dcdf;border-radius:6px 21px 6px 21px;padding:0;overflow:hidden;margin-bottom:20px;box-shadow:0 7px 22px #6e435807;background:#fffdfa}.chapter-cover{height:92px;position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;padding:16px 20px}.chapter-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f1e8e4e8,#eee2e770),var(--chapter-image) center/cover;z-index:-1}.story-index .chapter-number{font:italic 38px var(--font);color:#9c7c8e}.chapter-cover .chapter-state{background:#fff9;border:1px solid #ffffffb0;padding:6px 10px;border-radius:20px;color:#876b7b;font-size:9px}.story-index .chapter-body{padding:15px 20px 18px}.story-index .chapter-card h3{font:18px/1.5 var(--font);color:#6f5361;margin:0 0 5px;letter-spacing:1px}.story-index .chapter-card p{margin:0 0 10px;color:#a28d95;font-size:11px}.story-index .story-length{font-size:10px;color:#b09ba3}.story-index .chapter-reading-options{padding-top:13px;margin-top:13px;border-top:1px solid #eee4e7;justify-content:space-between}.story-index .chapter-reading-options button{border:0;background:#a58190;color:#fff7f9;border-radius:5px 12px;padding:10px 15px;font-size:11px;letter-spacing:1px}.story-index .chapter-reading-options button+button{background:transparent;color:#a38b96;padding-right:0}.story-index .chapter-card.is-locked .chapter-cover{filter:saturate(.4);opacity:.72}.story-index .chapter-card.available{border-color:#cfacbb;box-shadow:0 8px 25px #8a4f7310}.story-index .chapter-next{text-align:center;border-top:0;line-height:2.4;color:#ad99a2;padding:14px 0}
.v2-stage [data-person="aunt"] .sprite-art>img,.v2-stage [data-person="uncle"] .sprite-art>img,.v2-stage [data-person="shopkeeper"] .sprite-art>img{-webkit-mask-image:linear-gradient(transparent 0%,transparent 11.6%,#000 13.4%);mask-image:linear-gradient(transparent 0%,transparent 11.6%,#000 13.4%)}
.v2-stage [data-person="haruto"] .sprite-art>img{-webkit-mask-image:linear-gradient(transparent 0%,transparent 15.7%,#000 17.7%);mask-image:linear-gradient(transparent 0%,transparent 15.7%,#000 17.7%)}

/* The full original head is replaced visually by a heavily blurred photographic duplicate, not erased. */
.npc-head-tone{position:absolute;inset:0;pointer-events:none;overflow:hidden;background:none;-webkit-mask-image:var(--npc-mask);mask-image:var(--npc-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.npc-head-tone:before{content:"";position:absolute;inset:0;background:var(--npc-mask) center/100% 100% no-repeat;filter:blur(28px);-webkit-mask-image:linear-gradient(#000 0%,#000 11.6%,transparent 13.4%);mask-image:linear-gradient(#000 0%,#000 11.6%,transparent 13.4%)}
[data-person="haruto"] .npc-head-tone:before{filter:blur(30px);-webkit-mask-image:linear-gradient(#000 0%,#000 15.7%,transparent 17.7%);mask-image:linear-gradient(#000 0%,#000 15.7%,transparent 17.7%)}

.npc-head-tone:before{filter:blur(28px) url('#npc-photo-opacity')}[data-person="haruto"] .npc-head-tone:before{filter:blur(30px) url('#npc-photo-opacity')}
/* Relationship progression and quiet side-story/mail applications. */
.profile-top{text-align:center;padding:24px}.profile-top .avatar{width:82px;height:82px}.profile-body{padding:20px 24px}.xp-stat{margin:20px 0}.xp-stat strong{display:flex;justify-content:space-between;font-size:14px}.xp-stat small{display:block;text-align:right;font-size:11px;color:#a08c9e;margin:7px 0}.xp-stat .progress-track i{background:#b78eaa}.xp-chat-note{text-align:center;color:#789282;font-size:10px;padding:8px 12px;letter-spacing:.02em}.bond-card{margin:15px 20px;padding:22px;border:1px solid #e7dae4;border-radius:20px;background:linear-gradient(140deg,#fffdfb,#f3ebf2)}.bond-card h3{font-size:20px;font-weight:500;margin:10px 0}.bond-card p{font-size:13px;color:#8d7c8b}.bond-card small{color:#a1849a;font-size:10px}.bond-card button:disabled{opacity:.45}.mail-card{display:flex;text-align:left;gap:13px;width:calc(100% - 40px);margin:14px 20px;padding:18px;border-radius:17px;background:#fffaf7;border:1px solid #e7dce4}.mail-card>div{flex:1}.mail-card h3{font-size:16px;margin:5px 0}.mail-card small,.mail-card p{font-size:11px;color:#a08b9c}.mail-card>svg{width:16px}.notes-paper{white-space:pre-line;margin-bottom:20px}.chapter-card.newly-unlocked{outline:2px solid #b894ae;outline-offset:3px}.home-page .app-grid{grid-template-columns:repeat(5,1fr)}.home-page .app-grid .app-icon{width:48px;height:48px}.profile-body .progress-track{height:5px}
/* Approved portraits already contain their intended NPC treatment. No second head mask. */
.v2-stage .sprite-art>img{-webkit-mask-image:none!important;mask-image:none!important}.v2-stage .npc-head-tone{display:none}
/* Scene-specific backgrounds for the confirmed manuscript. */
.scene-bg.library-day{background-image:url('assets/bg-library-day.png')}
.scene-bg.restaurant-night{background-image:url('assets/bg-restaurant-night.png')}
.scene-bg.cafe-day{background-image:url('assets/bg-cafe-day.png')}
.scene-bg.cafe-night{background-image:url('assets/bg-cafe-night.png')}
.scene-bg.train-night{background-image:url('assets/bg-train-night.png')}
.scene-bg.photo-booth{background-image:url('assets/bg-photo-booth.png')}

.story-tabs{display:flex;gap:8px;margin:0 20px 10px;padding:5px;border-radius:16px;background:#e8dfe8;flex-shrink:0}.story-tabs button{flex:1;padding:10px 5px;border-radius:12px;font-size:12px;color:#968395}.story-tabs button.active{background:#fffaf8;box-shadow:0 2px 8px #6e4a6610;color:#785b72}.bond-people{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;padding:0 20px 28px}.bond-person-card{text-align:left;overflow:hidden;border-radius:19px;background:#fff9f5;border:1px solid #e4d6e0;padding-bottom:16px}.bond-person-picture{height:218px;overflow:hidden;background:linear-gradient(155deg,#e4dbe7,#ece3df);position:relative}.bond-person-picture img{width:100%;height:100%;object-fit:cover;object-position:center 5%}.bond-person-card strong,.bond-person-card small{display:block;margin:10px 13px 0}.bond-person-card small{font-size:10px;color:#a28b9c}.bond-jumi{position:absolute;inset:5px -40px -180px;background:linear-gradient(#624b6b,#9b7789);mask:var(--jumi-sprite) center top/100% auto no-repeat;-webkit-mask:var(--jumi-sprite) center top/100% auto no-repeat}.read-receipt{display:block;min-height:10px}
.chat-reminder{display:flex;gap:9px;align-items:center;min-height:39px;padding:8px 20px;background:#f6f7f1e6;border-top:1px solid #d5ded544;flex-shrink:0;color:#8f9f91}.chat-reminder>span{font-size:13px;opacity:.7}.chat-reminder p{margin:0;font-size:10px;line-height:1.6;color:#819184}.kakao .chat-reminder{background:#f7f4e6;color:#a29478}.kakao .chat-reminder p{color:#978c77}
/* Shared quiet stationery detail: same information order, finer surfaces. */
.game-page{background:#f8f5f3}.game-page>.topbar{background:#f8f5f3e8;border-bottom:1px solid #e7dde466;backdrop-filter:blur(12px)}.game-page>.topbar h2{font-weight:500;letter-spacing:1px}.story-index .story-journal{position:relative;border-bottom:1px solid #e8dfe5;padding-bottom:23px;margin-bottom:24px}.story-journal>span,.journal-masthead>span,.inbox-masthead>span{font-size:8px;letter-spacing:2px;color:#b49aaa}.story-index .story-journal h1{font-weight:400;line-height:1.55;letter-spacing:2px}.story-index .chapter-card{border-radius:19px;overflow:hidden;border-color:#e7dfe4;box-shadow:0 4px 18px #70586b05;background:#fffdfb}.story-index .chapter-card.available{border-color:#c8aaBD;box-shadow:0 5px 24px #9d7b9110}.story-index .chapter-card.is-locked{background:#f1edee}.story-index .chapter-cover{background-color:#ded5df}.story-index .chapter-body{padding:18px 19px 16px}.story-index .chapter-title-button h3{font-family:var(--font);font-size:18px;letter-spacing:1px;font-weight:400}.story-index .chapter-title-button p{font-size:10px;color:#a494a0;margin:7px 0 10px}.chapter-reading-options{margin-top:14px;padding-top:13px;border-top:1px solid #e9e1e6}.chapter-reading-options button{font-size:10px;letter-spacing:.4px}.chapter-reading-options button:first-child{color:#876e81}.chapter-reading-options button:last-child:not(:first-child){color:#aa9aa6}.story-index .journal-progress{margin-top:24px}.story-tabs{margin-top:3px;margin-bottom:7px;background:#ece5eb}.story-tabs button.active{color:#6e5669;background:#fffdfb}.bond-person-card{box-shadow:0 4px 18px #70586b07}.bond-person-card strong{font-family:var(--font);font-size:17px;font-weight:400;letter-spacing:1px}.bond-card{box-shadow:0 4px 18px #70586b05}.bond-card h3{font-family:var(--font);letter-spacing:1px}
/* Inbox / sealed keepsakes. */
.inbox-scroll{background:linear-gradient(#f1eaf0,#f8f5f3 390px)}.inbox-masthead{padding:24px 29px 28px;position:relative}.inbox-masthead h1{font-family:var(--font);font-weight:400;font-size:26px;line-height:1.65;letter-spacing:2px;margin:21px 0 12px}.inbox-masthead p{font-size:10px;color:#ad98a9;letter-spacing:.5px}.inbox-count{display:flex;align-items:baseline;gap:9px;margin-top:25px;color:#b398a9}.inbox-count strong{font:30px var(--font);color:#927589}.inbox-count span{font-size:9px}.inbox-count i{font-style:normal;font-size:8px;margin-left:auto;border:1px solid #d9c7d4;border-radius:12px;padding:4px 8px}.envelope-art{width:72px;height:48px;position:absolute;right:28px;top:75px;background:#fffaf4;border:1px solid #dbcdd7;border-radius:3px;transform:rotate(9deg);box-shadow:0 8px 16px #795c7210}.envelope-art:before{content:'';position:absolute;inset:1px 3px auto;height:30px;background:#f0e5ec;clip-path:polygon(0 0,100% 0,50% 100%)}.envelope-art:after{content:'';position:absolute;inset:8px 0 0;background:#fffaf4;clip-path:polygon(0 0,50% 63%,100% 0,100% 100%,0 100%)}.envelope-art b{position:absolute;z-index:1;left:28px;top:22px;width:19px;height:19px;border-radius:50%;background:#b28e9f;color:#fdf4ed;font:italic 14px var(--font);text-align:center;box-shadow:0 2px 3px #6d4b6020}.mail-section-heading{display:flex;justify-content:space-between;padding:12px 27px 6px;font-size:10px;color:#a58f9e;letter-spacing:2px}.mail-card{padding:19px 16px;margin:12px 20px;gap:14px;border-radius:16px;background:#fffdfa;box-shadow:0 4px 20px #72586d05;align-items:flex-start}.mail-card.is-new{border-color:#d4bccb}.mail-stamp{display:flex;flex-direction:column;align-items:center;border:1px dashed #cdb8c6;padding:4px 4px 2px;transform:rotate(-4deg);background:#f9f4f5}.mail-stamp .avatar{width:36px;height:36px;border-radius:3px}.mail-stamp small{font-size:6px;letter-spacing:1px;margin-top:3px}.mail-card .mail-from{display:flex;justify-content:space-between;gap:4px;font-size:8px;letter-spacing:.6px}.mail-from i{font-style:normal;font-size:6px;color:#b18b9b;letter-spacing:1px}.mail-card h3{font-family:var(--font);font-size:17px;font-weight:400;letter-spacing:.6px;line-height:1.6;margin:8px 0 5px}.mail-card p{font-size:10px;line-height:1.7;color:#a696a2}.mail-state{font-size:8px;color:#baa4b2;display:block;margin-top:10px}.mail-card>svg{margin-top:24px;color:#c5b3bf}.inbox-empty{text-align:center;padding:24px 20px 35px}.inbox-empty>span{display:block;font:40px var(--font);color:#c5aebd}.inbox-empty h3{font-family:var(--font);font-size:17px;font-weight:400;letter-spacing:2px;color:#9a7f92}.inbox-empty p{font-size:11px;line-height:2;color:#b19eac}.inbox-footnote,.journal-end{text-align:center;font-size:9px;color:#b6a6b2;letter-spacing:1px;padding:26px 10px 34px}
/* Journal / retain the original writing, update only at rare main-story milestones. */
.journal-scroll{background:linear-gradient(#f2eee6,#f8f5f3 430px)}.journal-masthead{padding:25px 30px 28px}.journal-masthead h1{font-family:var(--font);font-size:27px;font-weight:400;line-height:1.6;letter-spacing:2px;color:#7e6d72;margin:20px 0 12px}.journal-masthead p{font-size:10px;color:#ae9d9b;line-height:1.9}.journal-masthead>i{font-style:normal;font-size:8px;letter-spacing:2px;color:#b5a394;display:block;margin-top:26px}.journal-entry{margin:0 21px 23px;padding:22px 23px 26px;white-space:normal;position:relative;background:repeating-linear-gradient(transparent 0,transparent 31px,#cabfb00a 31px,#cabfb00a 32px),#fffdf7;border-color:#e7dfd3;box-shadow:0 6px 22px #77605006;border-radius:4px 16px 16px 4px}.journal-entry:before{content:'';position:absolute;left:-1px;top:22px;width:3px;height:26px;background:#c2ada6;border-radius:2px}.entry-meta{display:flex;justify-content:space-between;font-family:var(--font);font-size:7px;letter-spacing:1px;color:#b6a696;border-bottom:1px solid #e9e0d5;padding-bottom:12px}.journal-entry h2{font-size:17px;font-weight:400;letter-spacing:1px;color:#847274;margin:18px 0 15px}.journal-entry p{white-space:pre-line;font-size:14px;line-height:2.2;color:#887a76;margin:0}.journal-entry>small{display:block;font-family:var(--font);font-size:8px;line-height:1.9;letter-spacing:.5px;margin-top:19px;color:#b3a08f}.journal-sign{display:block;text-align:right;font-family:var(--font);font-size:12px;color:#ae939b;letter-spacing:3px;margin-top:22px}
/* Character pages: retain hero, avatar, names, remarks, biography and stat order. */
.profile-hero{background:linear-gradient(140deg,#d8cdda,#d8ded7)}.profile-hero:after{background:linear-gradient(transparent 48%,#51435445)}.profile-title h2{font-size:25px;letter-spacing:3px;color:#6b5966}.profile-title p{font-size:10px;letter-spacing:.4px;color:#ac98a6;line-height:1.8}.profile-title .avatar{border-color:#f8f5f3;box-shadow:0 3px 10px #6b52651a}.remark-rows{margin:20px 24px 0;padding:3px 15px;border:1px solid #e8dfe5;border-radius:15px;background:#fffaf8}.remark-rows>div{padding:12px 0;border-bottom:1px solid #eee5eb;display:flex;justify-content:space-between;align-items:center;font-size:10px}.remark-rows>div:last-child{border:0}.remark-rows span{color:#b09aa9}.remark-rows button{color:#90788a;font-size:11px;display:flex;align-items:center;gap:8px}.remark-rows svg{width:12px;height:12px;color:#b8a1b0}.profile-bio{color:#9c8996;font-size:12px;line-height:2.05;padding-top:22px}.stats-box{background:#fffdfb;border-color:#e8dce5;border-radius:18px;box-shadow:0 5px 20px #795c7206;padding:20px}.stats-top{font-size:10px;letter-spacing:.5px;padding-bottom:12px;border-bottom:1px solid #eee6ec}.stat{margin:16px 0}.stat-label{font-size:11px}.stat-label b{font-size:9px}.stat-track{height:5px;background:#eee8eb}.stat-track i{height:5px;background:#a3b8a8}.stat:nth-child(3) i{background:#b1a1bd}.stat:nth-child(4) i{background:#c4a1af}.relationship-note{font-size:10px;line-height:2;color:#af9baa}
.bond-person-picture img{position:absolute;width:165%;height:auto;max-width:none;left:50%;top:-6px;transform:translateX(-50%);object-fit:initial}.bond-person-picture{height:218px}.bond-jumi{inset:8px -53px -220px}
.bond-person-picture img{width:235%;top:-6px}.bond-jumi{inset:6px -120px -500px}.profile-photo-switch{position:absolute;bottom:22px;right:22px;z-index:2;display:flex;gap:7px;padding:7px 9px;border-radius:16px;background:#fff4;backdrop-filter:blur(10px)}.profile-photo-switch button{width:5px;height:5px;border-radius:50%;background:#fff8}.profile-photo-switch button.active{background:#fff;width:13px;border-radius:5px}
.story-collection-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 23px;padding:6px 2px 10px;flex-shrink:0}.story-collection-toolbar>span{font-size:9px;color:#b09aa8;letter-spacing:1px}.story-collection-toolbar button{display:flex;align-items:center;gap:5px;font-size:10px;color:#927588;padding:5px 8px}.story-collection-toolbar svg{width:12px;height:12px}.story-collection-toolbar b{font:10px var(--font);color:#b79eac;margin-left:3px}.favorite-toggle{display:flex;align-items:center;gap:4px;padding:6px 8px;font-size:8px;color:#ae99a6;border:1px solid #dfd2dc;border-radius:14px;background:#fffaf5dd;backdrop-filter:blur(8px);flex-shrink:0}.favorite-toggle svg{width:10px;height:10px}.favorite-toggle.chosen{color:#9e708a;background:#faf0f5;border-color:#d5b5c7}.chapter-cover .favorite-toggle{position:absolute;right:11px;top:10px;z-index:2}.chapter-cover .chapter-state{top:auto;bottom:10px;right:12px}.bond-card>.favorite-toggle{float:right;margin-left:10px;margin-top:-4px}.favorite-story-card{position:relative}.favorite-read{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:10px;color:#8e7085;border-top:1px solid #e8dde5;margin-top:17px;padding-top:13px}.favorite-read svg{width:13px;height:13px}.favorite-read:disabled{opacity:.4}.favorites-heading{padding:24px 28px 19px}.favorites-heading>span{font-size:8px;letter-spacing:2px;color:#b09aaa}.favorites-heading h1{font-family:var(--font);font-weight:400;font-size:26px;line-height:1.6;letter-spacing:2px;color:#7b6174}.favorites-heading p{font-size:10px;color:#ad97a6}

/* Clear controls and legible text across the stationery apps. */
.story-collection-toolbar{padding:6px 0 12px;min-height:52px;gap:12px}
.story-collection-toolbar>span{color:#786473;font-size:11px}
.story-collection-toolbar button{min-height:40px;padding:9px 15px;border:1px solid #a28299;border-radius:14px;background:#eee2ec;color:#60475b;font-size:13px;font-weight:600;gap:8px;box-shadow:0 3px 9px #71536a12}
.story-collection-toolbar svg{width:19px;height:19px;stroke-width:2}
.story-collection-toolbar b{font:600 11px var(--font);color:#fff9fc;background:#806078;min-width:21px;height:21px;display:grid;place-items:center;border-radius:50%;margin-left:2px}
.favorite-toggle{width:38px;height:38px;padding:9px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#fffaf7f5;color:#785a70;border:1px solid #b49aab;box-shadow:0 2px 7px #67475d16}
.favorite-toggle svg{width:19px;height:19px;stroke-width:1.8}
.favorite-toggle.chosen{background:#806078;color:#fff8fc;border-color:#806078}
.favorite-toggle.chosen svg{fill:currentColor}
.favorite-toggle:focus-visible,.story-collection-toolbar button:focus-visible{outline:2px solid #73556c;outline-offset:3px}
.chapter-cover .favorite-toggle{position:absolute;top:12px;right:14px}
.chapter-cover .chapter-state{position:absolute;top:auto;bottom:12px;left:76px;right:auto;max-width:calc(100% - 145px);color:#604b59;background:#fffaf7ed}
.bond-card{position:relative}
.bond-card>.favorite-toggle{position:absolute;top:16px;right:16px;float:none;margin:0}
.bond-card>small:first-of-type,.bond-card>h3{display:block;padding-right:42px}
.story-index .chapter-reading-options button:first-child{background:#806078;color:#fff9fc;border-color:#806078;font-weight:500}
.story-index .chapter-reading-options button:last-child:not(:first-child){background:transparent;color:#705768}
.story-index .chapter-reading-options button:disabled{opacity:1;background:#e5dce2;color:#71636d;border-color:#d1c4cd}
.favorite-read{background:#806078;color:#fff9fc;border:0;border-radius:11px;padding:11px 14px;font-size:12px;font-weight:500}
.favorite-read:disabled{opacity:1;background:#e5dce2;color:#71636d}
.story-index .chapter-title-button p,.story-index .story-length,.story-index .chapter-card p,.chapter-condition,.bond-card p,.bond-card small,.bond-person-card small{color:#7b6876}
.story-journal>span,.journal-masthead>span,.inbox-masthead>span,.story-journal>p,.journal-progress>span,.favorites-heading>span,.favorites-heading p,.inbox-masthead p,.mail-section-heading,.mail-card small,.mail-card p,.inbox-count,.journal-entry .entry-meta,.journal-entry small,.journal-end,.game-caption{color:#806b7b}
.profile-bio,.relationship-note,.profile-title p,.stat-label b,.stats-top span:last-child,.person-info small,.settings-copy,.settings-title,.settings-row small,.modal-card p,.modal-card .secondary{color:#786c78}
.story-tabs button{color:#776171}
.chat-reminder p{color:#536d59}.kakao .chat-reminder p{color:#736044}.composer-note{color:#716d74}.input-wrap textarea::placeholder{color:#777}
/* Memories: a small personal album, separate from the player's journal. */
.home-page .app-grid{grid-template-columns:repeat(3,1fr);row-gap:17px;max-width:310px;margin-left:auto;margin-right:auto;width:100%}
.app-icon.memories{background:linear-gradient(145deg,#a58da9,#d8bdc7);color:#fff7fb}
.memory-scroll{padding-bottom:35px;background:linear-gradient(#efe7ef,#f8f5f3 340px)}
.memory-masthead{padding:26px 27px 20px}.memory-masthead>span,.memory-person-heading>span{font-size:9px;letter-spacing:2px;color:#806679}
.memory-masthead h1{font:28px/1.65 var(--font);letter-spacing:2px;color:#674e62;font-weight:400;margin:18px 0 12px}
.memory-masthead p,.memory-person-heading p{font-size:11px;color:#796674;line-height:1.8}
.memory-people{margin:0 20px;border:1px solid #e0d2de;border-radius:20px;background:#fffcfa;overflow:hidden}
.memory-person{display:flex;align-items:center;gap:13px;width:100%;padding:17px;text-align:left;border-bottom:1px solid #eee5eb}.memory-person:last-child{border:0}.memory-person>div{flex:1}.memory-person strong{display:block;font-size:15px;color:#604e60;font-weight:500}.memory-person small{display:block;font-size:10px;color:#7c6978;margin-top:6px}.memory-person>svg{width:16px;height:16px;color:#8d7486}.memory-person .avatar{width:48px;height:48px}
.memory-person-heading{padding:26px;text-align:center}.memory-person-heading .avatar{width:70px;height:70px;margin:0 auto 17px;box-shadow:0 4px 16px #654b6115;border:3px solid #fffbf8}.memory-person-heading>span{display:block}.memory-person-heading h1{font:26px var(--font);color:#604b5e;margin:14px 0}
.memory-section-title{font-size:13px;font-weight:500;color:#684e63;letter-spacing:1px;margin:21px 25px 12px}.memory-section-title small{float:right;font-size:9px;font-weight:400;color:#806b7a;letter-spacing:0}
.memory-fact,.memory-event{margin:12px 20px;padding:19px 20px;border:1px solid #e2d6df;border-radius:16px;background:#fffdf9;box-shadow:0 4px 14px #72536906}.memory-fact>small,.memory-event>small{font-size:9px;color:#826579;letter-spacing:1px}.memory-fact h3,.memory-event h3{font:17px/1.5 var(--font);color:#634c5e;margin:9px 0}.memory-fact p,.memory-event p{font-size:12px;color:#72616f;line-height:1.9;margin:8px 0}.memory-fact footer{font-size:9px;color:#897383;border-top:1px solid #eee4eb;padding-top:12px;margin-top:14px}.memory-event{border-left:3px solid #bba1b3}.memory-empty,.memory-footnote{font-size:11px;line-height:1.9;color:#806c7a;margin:16px 26px}.memory-footnote{text-align:center;margin-top:30px;font-size:10px}
/* Hints float with the chat rather than sitting on another panel. */
.chat-reminder,.kakao .chat-reminder{background:transparent;border:0;padding:8px 18px 10px;gap:8px;min-height:43px}
.chat-reminder p{font-size:11px;line-height:1.7;color:#344f69;text-shadow:0 1px 3px #ffffff40}
.kakao .chat-reminder p{color:#354c60}
.chat-reminder .hint-bulb{display:flex;flex-shrink:0;align-items:center;justify-content:center;opacity:1;width:22px;height:25px;color:#fff0b0;filter:drop-shadow(0 0 3px #f5d47780);animation:hintGlow 4.5s ease-in-out infinite}
.hint-bulb svg{width:19px;height:22px;stroke-width:1.8;fill:#ffe1a12b}
@keyframes hintGlow{0%,100%{opacity:.65;filter:drop-shadow(0 0 2px #ffe7a844)}50%{opacity:1;filter:drop-shadow(0 0 6px #ffe6a9aa)}}
.xp-chat-note{width:fit-content;max-width:90%;margin:15px auto;padding:7px 12px;border:1px solid #ffffff94;border-radius:14px;background:#f5faf4b8;color:#315c45;font-size:11px;line-height:1.7;letter-spacing:.15px;box-shadow:0 2px 7px #304d6320;text-align:center}
.kakao .xp-chat-note{background:#fffaf0c9;color:#5d4e35;border-color:#fff5cf}
@media(prefers-reduced-motion:reduce){.hint-bulb{animation:none!important}}
/* A fixed browser canvas; scrolling belongs to the simulated phone. */
html,body{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
#stage{position:absolute;inset:0;overflow:hidden;overscroll-behavior:none}
#screen{overscroll-behavior:none;touch-action:pan-y}
button,a{touch-action:manipulation}
.home-page{touch-action:pan-y;will-change:transform}
#homeIndicator{height:28px;bottom:0;background:transparent!important;border-radius:0;box-shadow:none;touch-action:none}
#homeIndicator:after{content:'';position:absolute;left:0;right:0;bottom:8px;height:6px;background:#202126;border-radius:8px;pointer-events:none}
#homeIndicator.light:after{background:#fff}
/* The three new apps use the same paper, shading and transparent silhouette as the journal. */
.home-page .app-grid{grid-template-columns:repeat(5,1fr);max-width:none;width:auto;margin-left:0;margin-right:0;gap:9px}
.home-page .app-grid .app-icon{width:56px;height:56px}
.home-page .app-grid .app-icon.story,.home-page .app-grid .app-icon.notes,.home-page .app-grid .app-icon.people,.app-icon.memories{background:transparent;box-shadow:none;border-radius:0}
.home-page .app-grid .app-icon .game-app-illustration{width:100%;height:100%}
/* Tap the softly glowing bulb; the suggestion unfolds into the conversation. */
.chat-bottom{overflow:visible}
.chat-bottom .chat-reminder,.kakao .chat-bottom .chat-reminder{position:absolute;left:14px;right:14px;bottom:calc(100% + 6px);min-height:42px;padding:0;display:flex;align-items:center;gap:6px;background:transparent!important;border:0;pointer-events:none;z-index:4}
.chat-reminder .hint-bulb{width:42px;height:42px;border:0;padding:9px;background:none;cursor:pointer;pointer-events:auto;color:#fffef6;filter:drop-shadow(0 0 4px #fffefa99);animation:bulbBreathe 3.6s ease-in-out infinite}
.hint-bulb svg{width:23px;height:26px;stroke:#fffef9;fill:#fffdf53b;stroke-width:1.7}
.hint-reveal{max-width:0;overflow:hidden;opacity:0;visibility:hidden;transform:translateX(-14px);transition:max-width .55s ease,transform .45s ease,opacity .4s ease,visibility .4s;pointer-events:none}
.hint-open .hint-reveal{max-width:340px;opacity:1;visibility:visible;transform:translateX(0)}
.chat-reminder .hint-reveal p{font-size:11px;line-height:1.8;color:#294760;text-shadow:0 1px 3px #ffffff75;margin:0;padding:3px 0;animation:hintFloat 5s ease-in-out infinite;min-width:270px;max-width:320px;white-space:normal}
.kakao .chat-reminder .hint-reveal p{color:#304b60}
.chat-messages{padding-bottom:76px}
@keyframes bulbBreathe{0%,100%{opacity:.55;filter:drop-shadow(0 0 2px #fffdf770)}50%{opacity:1;filter:drop-shadow(0 0 7px #fffdf7cc)}}
@keyframes hintFloat{0%,100%{transform:translateY(1px)}50%{transform:translateY(-2px)}}
.friend-request-button{position:relative;flex-shrink:0}
.request-red-dot{position:absolute;top:3px;right:4px;width:8px;height:8px;border-radius:50%;background:#e26970;border:1.5px solid #fff;box-shadow:0 0 0 1px #d7616415}
.glass-tools.line-tools{gap:0;padding:2px}.glass-tools.line-tools .iconbtn{width:33px;height:36px;padding:6px}
.request-caption{font-size:11px;color:#807583;margin:20px 24px;line-height:1.8}
.friend-request-card{display:flex;gap:13px;margin:14px 20px;padding:20px 16px;background:#fff;border:1px solid #e7e2e6;border-radius:17px;align-items:flex-start}
.friend-request-card>.avatar{width:48px;height:48px;flex-shrink:0}.friend-request-card>div{flex:1}.friend-request-card strong{display:block;font-size:15px;font-weight:600}.friend-request-card p{font-size:11px;line-height:1.8;color:#756d78;margin:8px 0 13px}.friend-request-card small{font-size:11px;color:#607965}.request-accept{background:#668f76;color:#fff;border-radius:9px;padding:9px 20px;font-size:12px}.kakao .request-accept{background:#fee500;color:#44372a}
@media(prefers-reduced-motion:reduce){.hint-bulb,.hint-reveal p{animation:none!important}.hint-reveal{transition:none}}
/* Software-specific hint colors. LINE glows softly; Kakao remains dark. */
.chat-page:not(.kakao) .chat-reminder .hint-reveal p{color:#fffdf9;font-size:12px;text-shadow:0 1px 4px #304e7299,0 0 7px #ffffff28}
.chat-page:not(.kakao) .hint-bulb svg{stroke:#fffef9;fill:#fffdf547}
.kakao .chat-reminder .hint-bulb{color:#304b60;filter:drop-shadow(0 0 2px #ffffff40);animation:darkBulbBreathe 4s ease-in-out infinite}
.kakao .hint-bulb svg{stroke:#304b60;fill:#304b6020}
.kakao .chat-reminder .hint-reveal p{color:#304b60;font-size:12px;text-shadow:0 1px 2px #ffffff55}
@keyframes darkBulbBreathe{0%,100%{opacity:.55;filter:drop-shadow(0 0 1px #ffffff20)}50%{opacity:1;filter:drop-shadow(0 0 4px #ffffff75)}}
.standby-page{align-items:center;text-align:center;background:linear-gradient(#3b355031,#3828394d 55%,#352b447a),url('assets/tokyo-evening.png') center/cover}
.standby-ornament{margin-top:35px;font-size:10px;letter-spacing:3px;color:#fff5edcf}.standby-ornament span{margin:0 9px}.standby-page .lock-date{margin:42px 0 0;letter-spacing:2px;font-size:15px}.standby-page .lock-clock{margin:5px 0 0;font:300 86px/1.3 var(--font);letter-spacing:1px;text-shadow:0 3px 15px #34294428}
.standby-message{margin:auto 0;display:flex;flex-direction:column;align-items:center}.standby-message>span{display:flex;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid #ffffff66;border-radius:50%;margin-bottom:14px}.standby-message svg{width:18px;height:18px}.standby-message h1{font:24px var(--font);letter-spacing:3px;font-weight:400}.standby-message p{font-size:12px;line-height:2.2;letter-spacing:2px;color:#fff6efe0}.standby-enter{display:flex;align-items:center;gap:8px;font-size:14px;letter-spacing:2px;color:#fffaf4;border:1px solid #ffffff66;border-radius:28px;padding:14px 28px;background:#ffffff13;backdrop-filter:blur(6px);margin-bottom:20px;animation:standbyBreathe 4s ease-in-out infinite}.standby-enter svg{width:15px;height:15px}.standby-account{font-size:9px;letter-spacing:1px;margin-bottom:65px;color:#fff8efd1}
@keyframes standbyBreathe{0%,100%{box-shadow:0 0 0 0 #fff8e500}50%{box-shadow:0 0 22px #fff8e522}}
.account-label{display:block;font-size:12px;color:#786775;margin:14px 0 8px}.account-label input{display:block}.account-carry{display:flex;align-items:center;gap:8px;font-size:11px;color:#786775;margin:15px 0}.modal-card .account-carry input{width:auto;margin:0;accent-color:#718b7e}.account-local-note{display:block;font-size:10px;color:#827080;line-height:1.9;margin-top:17px}.account-error{color:#9d555e!important;font-size:11px!important;min-height:17px;line-height:1.6!important}
@media(prefers-reduced-motion:reduce){.standby-enter,.kakao .hint-bulb{animation:none!important}}
/* Wallpaper is stationary. Only launcher cards and icons have elastic feedback. */
.home-page{will-change:auto;user-select:none;-webkit-user-select:none}
.home-page .home-content,.home-page .home-dock{transform:translateX(var(--home-swipe-x,0px));will-change:transform}
.home-page.home-rebounding .home-content,.home-page.home-rebounding .home-dock{transition:transform .46s cubic-bezier(.18,.9,.26,1.15)}
.home-page img{-webkit-user-drag:none}
@media(prefers-reduced-motion:reduce){.home-page .home-content,.home-page .home-dock{transform:none!important;transition:none!important}}
/* Entry display choice is independent of account saves. */
.display-chooser[hidden]{display:none}
.display-chooser{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 15% 10%,#f9f2ea,transparent 65%),linear-gradient(135deg,#e9e4e8,#dce3df);overflow-y:auto;overscroll-behavior:contain}
.display-choice-card{width:min(100%,660px);text-align:center;color:#544e5a;padding:25px 0}
.display-kicker{font-size:10px;letter-spacing:4px;color:#987b87}.display-choice-card h1{font:400 30px/1.6 var(--font);letter-spacing:3px;margin:14px 0}.display-intro{font-size:13px;color:#8c828d;line-height:1.8}.display-choices{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:32px 0 24px}
.display-option{display:flex;flex-direction:column;align-items:center;padding:28px 16px 24px;background:#fffcf7b8;border:1px solid #ffffff;border-radius:25px;box-shadow:0 12px 40px #6d647315;transition:transform .2s,box-shadow .2s}.display-option:hover,.display-option:focus-visible{transform:translateY(-4px);box-shadow:0 17px 40px #6d64732b}.display-option.preferred{border-color:#b19aa7}.display-option strong{font-size:17px;font-weight:500;letter-spacing:2px;margin:22px 0 10px}.display-option small{font-size:11px;line-height:1.9;color:#8c818d}
.display-demo{display:block;position:relative;width:84px;height:126px;background:linear-gradient(155deg,#d5c3cf,#a8b9b3);box-shadow:inset 0 0 0 1px #fff7;overflow:hidden}.phone-demo{border:4px solid #645d69;border-radius:17px}.phone-demo:before{content:'';position:absolute;top:5px;left:25px;width:27px;height:7px;background:#645d69;border-radius:7px}.phone-demo:after{content:'';position:absolute;bottom:5px;left:24px;width:28px;height:3px;background:#fff;border-radius:4px}.display-demo i{position:absolute;left:12%;right:12%;top:35%;height:29%;border-radius:7px;background:#fff9}.display-demo b{position:absolute;left:15%;right:15%;bottom:16%;height:11%;border-radius:5px;background:#ffffff60}.full-demo{width:110px;border-radius:5px}.full-demo i{top:58%;height:29%}.display-note,.display-cancel{font-size:11px;color:#8c7d89;line-height:1.9}.display-cancel{text-decoration:underline;margin-top:12px}
body.immersive-mode .desktop-brand,body.immersive-mode .editorial,body.immersive-mode .desktop-tools,body.immersive-mode .desktop-footer,body.immersive-mode .hardware,body.immersive-mode #statusbar,body.immersive-mode .island,body.immersive-mode #homeIndicator{display:none!important}
body.immersive-mode #stage{padding:0;display:block}body.immersive-mode .device-wrap{margin:0;width:100vw;height:100dvh}
body.immersive-mode .device{width:var(--full-width);height:var(--full-height);padding:0;border-radius:0;background:none;box-shadow:none}
body.immersive-mode #screen{width:100%;height:100%;border-radius:0}
body.immersive-mode .page{padding-top:max(12px,env(safe-area-inset-top));padding-bottom:env(safe-area-inset-bottom)}
body.immersive-mode #notification{top:max(14px,env(safe-area-inset-top));max-width:480px;margin:auto}
body.immersive-mode .modal-card{max-width:440px}body.immersive-mode #toast{bottom:70px}
body.immersive-mode .home-content,body.immersive-mode .home-heading{width:min(100%,650px);margin-left:auto;margin-right:auto}
body.immersive-mode .home-dock{width:min(calc(100% - 40px),610px);margin-left:auto;margin-right:auto;margin-bottom:18px}
body.immersive-mode .standby-account{margin-bottom:30px}
@media(max-width:480px){.display-chooser{padding:22px}.display-choice-card h1{font-size:25px}.display-choices{gap:12px}.display-option{padding:23px 9px}.display-option small{font-size:10px}.display-note{font-size:10px}}
.vn-auto-controls{display:flex;gap:4px;align-items:center}.vn-actions .vn-auto-toggle{width:66px;font-size:11px;white-space:nowrap;padding:6px;border:1px solid #ffffff55}.vn-actions .vn-auto-toggle[aria-pressed="true"]{background:#fff5efdf;color:#665369}.vn-actions .vn-auto-stop{width:29px;height:33px;padding:7px}.vn-actions .vn-auto-stop svg{fill:currentColor;stroke:none}.vn-top{gap:8px}.vn-top .place-chip{min-width:0;max-width:calc(100% - 218px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vn-actions{flex-shrink:0}
.messenger>.topbar>.left{gap:2px}.messenger>.topbar>.left>.iconbtn{width:30px;padding:4px}.messenger>.topbar>.left>h2{white-space:nowrap}
/* Paint outside the playable viewport; never resize or reposition its controls. */
html.immersive-document{background-color:#574d64;background-image:var(--edge-wallpaper);background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}
body.immersive-mode{background-color:#574d64;background-image:var(--edge-wallpaper);background-position:center;background-size:cover;background-repeat:no-repeat;background-attachment:fixed}
body.immersive-mode:before{content:'';position:fixed;z-index:0;left:calc(-1 * env(safe-area-inset-left,0px));right:calc(-1 * env(safe-area-inset-right,0px));top:calc(-1 * env(safe-area-inset-top,0px));bottom:calc(-1 * env(safe-area-inset-bottom,0px));min-height:100%;min-height:100lvh;background-image:var(--edge-wallpaper);background-position:center;background-size:cover;background-repeat:no-repeat;pointer-events:none}
body.immersive-mode #stage{z-index:1}
.story-index>.topbar h2{font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC",sans-serif;font-weight:500;font-style:normal;font-synthesis:none;letter-spacing:2px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.input-wrap textarea,input:not([type="range"]):not([type="checkbox"]):not([type="file"]),textarea{font-size:var(--input-font-size,16px);font-family:var(--font)}
/* Keep the same type/portrait scale when the visual viewport is shortened by a keyboard. */
body.keyboard-open #stage{position:fixed;top:var(--viewport-top,0px);bottom:auto;height:var(--visible-height);overflow:hidden}
body.keyboard-open:not(.immersive-mode) #stage{padding:4px;align-items:flex-start}
body.keyboard-open:not(.immersive-mode) .device-wrap{height:calc(var(--visible-height) - 8px);margin-top:0;margin-bottom:0}
body.keyboard-open:not(.immersive-mode) .device{height:calc((var(--visible-height) - 8px) / var(--scale))}
body.keyboard-open:not(.immersive-mode) #screen{height:calc((var(--visible-height) - 8px) / var(--scale) - 16px)}
body.keyboard-open .modal-backdrop{padding:16px;align-items:center}
body.keyboard-open .modal-card{max-height:calc(100% - 12px)}
body.keyboard-open .page{padding-bottom:0}
body.immersive-mode .chat-page{padding-bottom:0}
body.immersive-mode .chat-bottom{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
body.keyboard-open .chat-bottom{padding-bottom:8px}
.chat-page .chat-bottom:after{content:'';position:absolute;top:100%;left:0;right:0;height:60px;background:#fff;pointer-events:none}
body.keyboard-open .chat-messages{min-height:0}
.story-index .bond-list>.story-journal{margin-left:23px;margin-right:23px}
