:root{font-family:'Segoe UI','Microsoft YaHei',sans-serif;color:#f7f1ee;background:#101526;font-synthesis:none;--muted:#adb6ca;--gold:#efc4af;--panel:#202a43;--line:#d7d9ff21;--serif:'Yu Mincho','Noto Serif CJK SC','Songti SC',SimSun,serif}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 45% 0,#3a365849,transparent 70%);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#ffffff07;border-radius:10px;padding:13px 18px;transition:background .2s,border-color .2s,transform .2s}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible{outline:2px solid #f4c2a7;outline-offset:4px}button:hover:not(:disabled){background:#ffffff12;transform:translateY(-2px)}.primary{background:linear-gradient(110deg,#f5d3b8,#eeb4b2);border:1px solid #ffe4d24a;color:#342c3c;font-weight:600;box-shadow:0 8px 30px #d9a3a314;padding:15px 27px;letter-spacing:1px}.primary:hover:not(:disabled){background:linear-gradient(110deg,#ffdfc5,#ffc6c3)}.quiet{background:transparent;border:0;color:var(--muted);padding:9px}.shell{max-width:1260px;margin:auto;padding:28px 40px;min-height:100dvh}.top{display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{letter-spacing:5px;font-family:var(--serif);font-size:23px}.brand small{font:8px sans-serif;letter-spacing:3.4px;display:block;color:#a0a9c1;margin-top:7px}.tag,.status{font-size:11px;color:var(--muted);padding:8px 12px;border:1px solid var(--line);border-radius:30px;letter-spacing:1px}.status.online{color:#acd1c4}.hero{text-align:center;padding:35px 0 14px}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold)}h1{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4vw,44px);line-height:1.65;letter-spacing:3px;margin:18px 0 12px}h2{font-family:var(--serif);font-size:23px;letter-spacing:1px;font-weight:400}p{color:var(--muted);line-height:1.9;font-size:14px}small{color:var(--muted)}
/* The rooftop is one full atmospheric illustration, with a separate original cast. */
.scene{position:relative;isolation:isolate;overflow:hidden;border-radius:14px;height:410px;background:#414361 url('/assets/anime-rooftop-v2.webp') center 53%/cover no-repeat;border:1px solid #e6d9ef28;margin:24px 0 18px;box-shadow:0 24px 80px #0003}.scene:after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,#111a3033,transparent 45%,#131c384d)}.scene-label{position:absolute;left:25px;top:23px;font-size:9px;letter-spacing:3px;color:#fff3e8;text-shadow:0 2px 8px #111a30}.scene-label span{display:block;margin-top:8px;opacity:.8;font-size:10px;letter-spacing:2px}.scene-coordinate{position:absolute;bottom:20px;left:25px;font:8px sans-serif;letter-spacing:2px;color:#ffffff8c;text-shadow:0 1px 6px #111a30}.scene-coordinate span{display:block;margin-top:8px;font:10px 'Microsoft YaHei',sans-serif;letter-spacing:2px;color:#f3e4e4aa}.anime-avatar{display:inline-block;width:160px;aspect-ratio:2/3;background-image:url('/assets/anime-cast-v4.webp');background-repeat:no-repeat;background-size:300% 200%;vertical-align:bottom}.cast-0{background-position:0 0}.cast-1{background-position:50% 0}.cast-2{background-position:100% 0}.cast-3{background-position:0 100%}.cast-4{background-position:50% 100%}.cast-5{background-position:100% 100%}.person{position:absolute;bottom:38px;width:200px;height:300px;left:39%;transform:translateX(-50%);text-align:center;filter:drop-shadow(0 7px 6px #17213b77)}.person.second{left:63%}.person .anime-avatar{display:block;width:100%;height:100%}.person .name{position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:5px 12px;font-size:11px;letter-spacing:1px;color:#fff6ee;background:#17213b86;border:1px solid #f8e0dd3d;border-radius:20px;text-shadow:0 1px 5px #0009}.person.empty .anime-avatar{opacity:.16;filter:brightness(.25) saturate(.2)}.person.empty .name{color:#fff1e2;background:#27314de0;border-style:dashed;white-space:normal;min-width:120px;line-height:1.5}.home-composition{position:relative;margin-top:29px}.landing .scene{height:560px;margin:0;min-height:480px}.landing .scene:after{background:linear-gradient(90deg,#17203c80,transparent 65%),linear-gradient(0deg,#151e385c,transparent 40%)}.landing .scene-label{left:auto;right:26px;text-align:right}.landing .scene-coordinate{left:35px;bottom:25px}.landing .person{left:64%;width:240px;height:360px;bottom:43px}.landing .person.second{left:81%}.landing-copy{position:absolute;top:66px;left:49px;z-index:1;text-align:left;padding:0;pointer-events:none}.landing-copy h1{font-size:40px;letter-spacing:3px;line-height:1.65;margin:20px 0 18px;text-shadow:0 2px 20px #18213e55}.landing-copy p{color:#f4e8e1d4;font-size:13px;line-height:2.1;letter-spacing:2px}.landing-copy .eyebrow{letter-spacing:5px;color:#ffe1cf}.hero-rule{display:block;width:34px;height:1px;background:#e6c5bc91;margin:28px 0 20px}.landing-copy small{font-size:11px;color:#e9e3e3af;letter-spacing:2px}.intro-action{text-align:center;padding-top:24px}.intro-action .primary{min-width:260px}.intro-action>.quiet{margin-left:10px}.intro-action p{font-size:11px;letter-spacing:1px;color:#919cb6;margin:13px 0 0}.footnote{text-align:center;font-size:10px;letter-spacing:1px;color:#8490aa;margin:25px 0}.landing-details{display:flex;justify-content:center;gap:40px;color:#9ca5bd;font-size:10px;letter-spacing:1px;margin-top:34px}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:30px 0 16px}.section-head h2{margin:0}.section-head small{font-size:10px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.game-card{text-align:left;padding:23px 20px;position:relative;border-radius:12px;background:linear-gradient(135deg,#2b344f,#202940);min-height:185px;overflow:hidden}.game-card:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 100% 0,#c78f9f13,transparent 70%);pointer-events:none}.game-card .symbol{font-family:serif;font-size:31px;margin-bottom:16px;display:block;color:var(--gold)}.game-card h3{font-family:var(--serif);font-size:18px;margin:0 0 8px;font-weight:400;letter-spacing:1px}.game-card p{font-size:11px;margin:0;line-height:2}.game-card .free{position:absolute;top:22px;right:18px;font-size:9px;letter-spacing:1px;color:#bed1ca}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.invite{background:#ffffff04;border:1px solid #ffffff1c;padding:18px 20px;border-radius:12px;display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:20px;font-size:14px;letter-spacing:1px}.invite p{margin:3px 0;font-size:11px;letter-spacing:0}.room-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:28px}.room-layout .scene{margin-top:24px}.sidebar{border-left:1px solid #ffffff12;padding-left:24px;margin-top:24px}.sidebar h3{font-family:var(--serif);font-weight:400;font-size:17px;letter-spacing:1px}.memory{padding:14px 0;border-bottom:1px solid #ffffff12;font-size:12px;line-height:1.8;color:#d0cddd}.memory small{display:block;font-size:10px}.reactions{justify-content:center;margin-bottom:10px;gap:9px}.reactions button{border-radius:30px;font-size:11px;letter-spacing:1px;padding:9px 19px}
.profile{max-width:820px;margin:36px auto 0;background:linear-gradient(140deg,#222c435c,#20243a25);padding:30px;border:1px solid var(--line);border-radius:16px;text-align:center}.profile h2{margin:16px 0 0;font-size:27px}.profile-lead{font-size:12px;margin:12px 0 25px}.profile-body{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;text-align:left}.avatar-preview{position:relative;isolation:isolate;height:408px;overflow:hidden;border-radius:9px;border:1px solid #d5cfec24;background:linear-gradient(0deg,#17223cdb,#29375622),url('/assets/anime-rooftop-v2.webp') center/cover no-repeat}.avatar-preview:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0b142ac2,transparent 35%);z-index:1}.avatar-preview>.anime-avatar{position:absolute;width:240px;height:360px;left:50%;transform:translateX(-50%);bottom:35px;filter:drop-shadow(0 7px 8px #0f193988)}.portrait-caption{position:absolute;z-index:2;bottom:15px;left:20px;right:20px;display:flex;align-items:center;gap:15px}.portrait-caption>span{font-family:var(--serif);font-size:25px;letter-spacing:3px}.portrait-caption small{font-size:10px;color:#e5c8c5}.cast-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:2px;margin:1px 0 15px}.cast-heading>span{font:8px sans-serif;letter-spacing:1px;color:#8896b5}.presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.presets button{position:relative;padding:5px 4px 8px;min-width:0;border-radius:9px;background:linear-gradient(150deg,#45405a45,#222b425e);overflow:hidden;text-align:center}.presets .anime-avatar{width:100%;max-width:104px;aspect-ratio:2/3}.presets .preset-name{display:block;font-family:var(--serif);font-size:13px;letter-spacing:2px;color:#c5c8d8;padding-top:5px}.presets i{position:absolute;right:6px;top:6px;width:15px;height:15px;font:10px sans-serif;line-height:15px;border-radius:50%;color:#29293d}.presets .selected{border-color:#efc4af;background:linear-gradient(140deg,#c1a7ad36,#6e799033);box-shadow:inset 0 0 0 1px #efc4af45}.presets .selected .preset-name{color:#ffe0d0}.presets .selected i{background:#efc4af}.profile-form{max-width:450px;margin:25px auto 0}.profile input{display:block;width:100%;margin:10px 0 18px;background:#111a2e90;color:white;border:1px solid #ffffff30;border-radius:9px;padding:14px 16px;font-size:13px;line-height:1.5}.profile label{display:block;text-align:left;font-size:12px;letter-spacing:1px}.profile-form>.primary{width:100%}.profile-form p{font-size:11px;line-height:1.9;margin:16px 0 6px}.profile input::placeholder{color:#8a96ad}
.game-area{position:relative;isolation:isolate;overflow:hidden;max-width:650px;margin:28px auto;text-align:center;background:linear-gradient(160deg,#2d35507d,#17223ada);border:1px solid #e5dce728;border-radius:16px;padding:34px}.game-area:before{content:'';z-index:-1;position:absolute;inset:0;background:linear-gradient(#121c39b8,#121c39f5 50%),url('/assets/anime-rooftop-v2.webp') center top/cover no-repeat;opacity:.8}.game-area h2{font-family:var(--serif);letter-spacing:2px;font-size:28px;margin:17px 0 20px}.game-area>p{font-size:13px}.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;max-width:290px;margin:25px auto}.tile{aspect-ratio:1;border:1px solid #ffffff09;border-radius:7px;display:grid;place-items:center;background:#ffffff06;color:#ffffff44;font-size:18px}.tile.path{background:#efc4af20;color:#efc4af;border-color:#efc4af30}.tile.here{background:#efc4af;color:#252b41;box-shadow:0 0 20px #efc4af2b}.directions{display:grid;grid-template-columns:repeat(3,60px);gap:8px;justify-content:center;margin:20px 0}.directions button:first-child{grid-column:2}.directions button:nth-child(2){grid-column:1}.progress{display:flex;justify-content:center;gap:9px;margin:26px 0}.progress i{width:24px;height:4px;border-radius:10px;background:#ffffff20}.progress i.filled{background:var(--gold);box-shadow:0 0 12px #efc4af33}.lamps{gap:15px}.lamps button{width:80px;height:80px;border-radius:50%;font-size:12px;border-color:#ffffff30}.amber{background:radial-gradient(circle at 35% 30%,#e7bf875e,#bc8d522e)}.blue{background:radial-gradient(circle at 35% 30%,#b3c3ed5e,#567dbb2e)}.pink{background:radial-gradient(circle at 35% 30%,#e7aecb5e,#c07da42e)}.cue{font-size:32px;color:var(--gold);margin:35px}.wish-cards{display:flex;gap:10px;justify-content:center;margin:25px 0}.wish-cards button{flex:1;padding:25px 10px;max-width:145px;background:linear-gradient(160deg,#8a719527,#39425d22)}.wish-cards span{display:block;font-size:30px;margin-bottom:12px;color:#eac6bd}.complete{font-size:54px;color:var(--gold);margin:20px}.notice{font-size:12px;color:#f2ca98;min-height:20px}.modal{position:fixed;inset:0;background:#070d1bd9;backdrop-filter:blur(12px);z-index:10;display:grid;place-items:center;padding:24px}.modal>div{max-width:500px;background:linear-gradient(145deg,#2c354f,#202b44);padding:30px;border-radius:16px;border:1px solid #ffffff25}.modal p{font-size:13px}.modal h2{font-family:var(--serif);font-size:28px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#f0c7b5;color:#302738;border-radius:10px;padding:12px 22px;font-size:13px;max-width:90vw;text-align:center;z-index:20;display:none;box-shadow:0 10px 45px #0a102d80}#toast.show{display:block}.room-code{font-family:monospace;color:#aeb6ce;font-size:9px;letter-spacing:1px}.net-error{color:#ffc2b8;background:#703c3c44;padding:12px;border-radius:9px;font-size:12px;margin-top:18px}.copy-field{width:100%;background:#182139;border:1px solid #ffffff30;color:white;padding:12px;border-radius:8px;margin-top:15px}
@media(max-width:1000px) and (min-width:761px){.shell{padding:25px}.landing-copy{left:33px;top:58px}.landing-copy h1{font-size:34px}.landing .person{width:213px;height:320px;left:63%;bottom:42px}.landing .person.second{left:82%}.room-layout{grid-template-columns:minmax(0,1fr) 200px;gap:20px}.sidebar{padding-left:20px}.room .scene .person{width:180px;height:270px}.scene-label span{letter-spacing:1px}.room .scene-coordinate{display:none}.game-card h3{font-size:16px}.game-card{padding:20px 13px}.room .hero h1{font-size:32px}}
@media(max-width:760px){.shell{padding:19px 16px}.top .tag{font-size:9px;padding:7px 9px;letter-spacing:0}.brand{font-size:20px;letter-spacing:3px}.brand small{font-size:7px;letter-spacing:2.6px;margin-top:6px}.hero{padding:27px 0 7px}.eyebrow{font-size:9px;letter-spacing:2px}h1{font-size:29px;letter-spacing:1px;line-height:1.6}.hero p{font-size:12px}.home-composition{margin-top:23px}.landing .scene{height:65dvh;min-height:540px;max-height:620px;border-radius:12px;background-position:54% center}.landing .scene:after{background:linear-gradient(0deg,#15203c55,transparent 45%),linear-gradient(180deg,#18234077,transparent 65%)}.landing-copy{top:31px;left:25px;right:20px;padding:0}.landing-copy h1{font-size:30px;letter-spacing:2px;line-height:1.6;margin:15px 0 10px}.landing-copy .eyebrow{font-size:9px;letter-spacing:3px}.landing-copy p{font-size:12px;line-height:1.9;letter-spacing:1px;margin:10px 0}.landing-copy .hero-rule,.landing-copy small{display:none}.landing .person{width:187px;height:280px;left:35%;bottom:45px}.landing .person.second{left:70%}.landing .scene-label{left:18px;right:auto;top:auto;bottom:17px;text-align:left;font-size:8px;letter-spacing:2px}.landing .scene-label span{display:none}.landing .scene-coordinate{left:auto;right:15px;bottom:17px;font-size:7px;letter-spacing:1px}.landing .scene-coordinate span{display:none}.person .name{font-size:10px;padding:4px 10px;max-width:145px}.intro-action{padding-top:20px}.intro-action .primary{width:min(100%,300px);font-size:13px;padding:15px 24px}.intro-action>.quiet{display:block;margin:10px auto 0}.intro-action p{font-size:10px;letter-spacing:.3px;line-height:1.8}.landing-details{gap:15px;font-size:9px;letter-spacing:0;margin-top:28px}.landing .footnote{font-size:9px;letter-spacing:0;margin-top:22px}.room-layout{display:block}.room .scene{height:365px;margin-top:18px;border-radius:12px;background-position:52% center}.room .scene .person{width:180px;height:270px;left:33%;bottom:33px}.room .scene .person.second{left:69%}.room .scene-label{font-size:8px;left:17px;top:18px}.room .scene-label span{font-size:9px;letter-spacing:1px}.room .scene-coordinate{display:none}.sidebar{border-left:0;border-top:1px solid #ffffff15;padding:15px 0 0;margin-top:27px}.cards{gap:8px}.game-card{padding:17px 11px;min-height:175px;border-radius:10px}.game-card h3{font-size:14px;line-height:1.5;letter-spacing:.5px}.game-card p{font-size:10px;line-height:1.8}.game-card .free{font-size:8px;top:17px;right:10px}.game-card .symbol{font-size:26px;margin-bottom:16px}.invite{padding:15px;align-items:center;font-size:13px;gap:10px}.invite p{font-size:10px;line-height:1.7}.invite button{font-size:11px;white-space:nowrap;padding:12px 14px;letter-spacing:0}.game-area{padding:26px 15px;margin-top:22px}.game-area>p{font-size:12px}.game-area h2{font-size:25px}.status{font-size:9px;letter-spacing:0;padding:7px 8px}.top>.row{gap:2px}.top .quiet{padding:9px 6px;font-size:11px}.profile{padding:24px 16px 12px;margin-top:26px;border-radius:12px}.profile h2{font-size:23px}.profile-lead{font-size:11px;margin-top:10px}.profile-body{grid-template-columns:1fr;gap:22px}.avatar-preview{height:295px;max-width:240px;width:100%;margin:auto;background-position:center 62%}.avatar-preview>.anime-avatar{height:285px;width:190px;bottom:12px}.portrait-caption{bottom:13px;left:15px;gap:12px}.portrait-caption>span{font-size:21px}.portrait-caption small{font-size:9px}.cast-heading{font-size:11px;margin-bottom:13px}.cast-heading>span{font-size:7px}.presets{gap:8px}.presets button{padding:4px 2px 8px}.presets .anime-avatar{max-width:92px}.presets .preset-name{font-size:12px}.profile-form{margin-top:24px}.profile label{font-size:11px}.profile input{padding:13px;font-size:12px}.profile-form p{font-size:10px}.reactions{gap:7px}.reactions button{font-size:10px;padding:9px 15px;letter-spacing:.5px}.section-head h2{font-size:20px}.section-head small{font-size:9px;letter-spacing:0}.wish-cards button{font-size:12px;padding:22px 8px}.room .hero{padding-top:24px}.room .hero h1{font-size:25px}.room .hero .eyebrow{font-size:9px}.footnote{font-size:9px;letter-spacing:.5px}.modal{padding:18px}.modal>div{padding:25px}.modal h2{font-size:25px}.modal p{font-size:12px}.lamps button{width:72px;height:72px}.lamps{gap:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Keep the optional ambient soundtrack available in every scene. */
.music-toggle{position:fixed;right:24px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:8;border-radius:30px;border:1px solid #dfd7ef40;background:#19233de8;backdrop-filter:blur(12px);color:#c3cada;font-size:11px;letter-spacing:1px;padding:11px 16px;box-shadow:0 5px 20px #080f265c}.music-toggle[aria-pressed='true']{color:#f2cbb9;border-color:#efc4af6b;background:#34334be8}.music-toggle:hover:not(:disabled){background:#313b56}.shell{padding-bottom:78px}.portrait-caption{display:block}.portrait-caption>span{display:block;font-size:19px;letter-spacing:1px}.portrait-caption small{display:block;margin-top:5px;letter-spacing:1px}
@media(max-width:760px){.music-toggle{right:16px;bottom:calc(14px + env(safe-area-inset-bottom));font-size:10px;padding:10px 13px;letter-spacing:.5px}.portrait-caption>span{font-size:17px}.portrait-caption small{margin-top:4px}.shell{padding-bottom:72px}}
/* Atlas windows follow the actual painted bounds; no image pixels are rescaled independently. */
.anime-avatar{aspect-ratio:9/16;background-image:url('/assets/anime-cast-v4.webp');background-size:355.555556% 200%}
.cast-0{background-position:15.217391% 0}.cast-1{background-position:51.086957% 0}.cast-2{background-position:89.130435% 0}.cast-3{background-position:14.130435% 100%}.cast-4{background-position:51.086957% 100%}.cast-5{background-position:89.130435% 100%}
.person .anime-avatar{width:auto;height:100%;aspect-ratio:9/16;margin-inline:auto;transform-origin:50% 95%;animation:evening-breeze 8s ease-in-out infinite alternate}
.person.second .anime-avatar{animation-delay:-3s}.avatar-preview>.anime-avatar{width:auto;aspect-ratio:9/16}.presets .anime-avatar{aspect-ratio:9/16}
.scene:before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 63% 55%,#ffc79816,transparent 45%);animation:evening-light 9s ease-in-out infinite alternate}
@keyframes evening-breeze{from{rotate:-.25deg}to{rotate:.25deg}}@keyframes evening-light{from{opacity:.4}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.person .anime-avatar,.scene:before{animation:none!important}}
/* Both timelines stay present during play, with calm cues for the person on each side. */
.room .room-main,.play-sidebar{min-width:0}.room.seat-future{--gold:#b9cbe9}.scene.scene-future{background-color:#273c60;background-blend-mode:soft-light}.scene.scene-future:after{background:linear-gradient(180deg,#26365c5c,transparent 50%,#1428457a)}.person .name small{display:block;font-size:9px;letter-spacing:.5px;color:#e2d7e4;margin-top:3px}.person .name{bottom:-13px;line-height:1.4}.room-playing .hero{padding:28px 0 18px}.room-playing .hero h1{font-size:30px;margin:12px 0 7px}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:26px;max-width:1080px;margin:0 auto}.play-layout .game-area{max-width:none;margin:15px 0 0}.together{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.companion{position:relative;display:flex;align-items:center;min-height:104px;gap:11px;padding:9px 12px 9px 8px;background:linear-gradient(130deg,#423c5177,#28314b80);border:1px solid #dbc9db33;border-radius:12px}.companion-future{background:linear-gradient(130deg,#283e5988,#26304a88);border-color:#adc3e136}.companion-portrait{position:relative;overflow:hidden;width:72px;height:86px;flex-shrink:0;border-radius:8px;background:linear-gradient(#b9c5df0d,#efc4af09)}.companion-portrait .anime-avatar{position:absolute;width:95px;height:169px;left:50%;top:-2px;transform:translateX(-50%)}.companion-info{min-width:0;display:flex;flex-direction:column;gap:6px}.companion-info .timeline{font-size:8px;line-height:1.6;letter-spacing:.5px;color:#e4c4b4}.companion-future .timeline{color:#bdcce7}.companion-info strong{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.companion-info em{font-style:normal;font-size:8px;color:#b6bdcf;border:1px solid #b6bdcf3d;border-radius:4px;padding:1px 3px;margin-left:3px}.companion-status{font-size:9px;color:#929cb5}.companion-status.online{color:#b3d4c3}.companion-offline .companion-portrait{opacity:.5}.play-layout .reactions{margin:13px 0 0}.play-layout .reactions button{padding:8px 15px;font-size:10px}.task-instruction{max-width:470px;margin:auto}.task-instruction>strong{display:block;font-size:14px;font-weight:500;line-height:1.9;letter-spacing:.5px;color:#e9e3e3}.task-instruction p{font-size:12px;margin:7px 0;line-height:1.9}.game-tip{font-size:11px!important}.cue{width:max-content;max-width:100%;border:1px solid #e7d0d52e;border-radius:14px;padding:18px 25px;margin:27px auto;font-size:27px}.cue>small{display:block;font-size:10px;margin-top:10px;color:#b8becf}.game-area .footnote{font-size:10px;line-height:1.9;margin-bottom:0}.grid .tile{transition:background .25s,box-shadow .25s}.grid .tile.here{box-shadow:0 0 24px #efc4af40}.wish-reveal{padding:12px;background:#ffffff04;border:1px solid var(--line);border-radius:10px}.wish-reveal>small{font-size:10px;color:var(--gold)}.wish-reveal p{font-size:11px;margin:5px 0;line-height:1.8}.wish-cards{gap:11px;margin:22px 0}.wish-cards button{position:relative;isolation:isolate;overflow:hidden;padding:0;width:0;max-width:170px;aspect-ratio:2/3;border-radius:11px;border:1px solid #e2dae549;background:#26344c;box-shadow:0 8px 22px #080e2538;text-align:left}.wish-cards .wish-art{position:absolute;inset:0;margin:0;background-image:url('/assets/wish-places-v1.webp');background-repeat:no-repeat;background-size:300% 100%;transition:scale .5s}.wish-sea .wish-art{background-position:0 0}.wish-city .wish-art{background-position:50% 0}.wish-snow .wish-art{background-position:100% 0}.wish-cards button:before{content:'';position:absolute;z-index:1;inset:30% 0 0;background:linear-gradient(transparent,#101b35dc)}.wish-cards button:hover:not(:disabled){border-color:#efc4afbd;box-shadow:0 8px 24px #efc4af18}.wish-cards button:hover:not(:disabled) .wish-art{scale:1.035}.wish-cards .wish-place{position:absolute;z-index:2;bottom:15px;left:13px;right:8px;margin:0;color:#fff0e5;font-family:var(--serif);font-size:23px;letter-spacing:2px;line-height:1.5;text-shadow:0 2px 8px #101526}.wish-place small{display:block;margin-top:6px;font:9px/1.8 'Microsoft YaHei',sans-serif;letter-spacing:.2px;color:#f3e1dfdb}.choice-status{font-size:11px!important}.game-result{padding:25px 22px;margin:24px auto}.game-result .complete{font-size:36px;margin:4px 0 15px}.game-result h2{font-size:23px;margin:15px 0}.game-result p{font-size:12px}.game-result>small{font-size:10px;line-height:1.9}.room .game-result{max-width:none}.reaction-bubble{position:absolute;z-index:4;left:50%;top:0;transform:translate(-50%,-80%);width:max-content;max-width:230px;padding:9px 13px;border:1px solid #f8e0dd7a;border-radius:13px 13px 13px 3px;background:#efe0ddf2;box-shadow:0 5px 20px #15213c40;color:#403b50;font-size:11px;line-height:1.6;letter-spacing:.4px;animation:gentle-reaction .5s ease-out both;text-align:center;filter:none;pointer-events:none}.reaction-bubble>span{display:inline-block;margin-right:5px;color:#a16477;font-size:17px;vertical-align:middle}.reaction-heart>span{animation:heart-response 1s ease-out 2}.reaction-wave>span{animation:wave-response 1s ease-in-out 2}.reaction-tea>span{animation:tea-response 1.5s ease-out 2}.companion .reaction-bubble{top:auto;bottom:-9px;left:50%;transform:translate(-50%,50%);font-size:10px;padding:6px 9px;max-width:260px}.companion .reaction-bubble>span{font-size:14px}.person.reacting .anime-avatar{filter:drop-shadow(0 0 12px #e8bdc77a)}
/* A small shared message space is part of each activity; it never consumes paid credits. */
.message-panel{margin-top:22px;background:linear-gradient(135deg,#2b344e66,#1b263e85);border:1px solid #ddd6e32b;border-radius:12px;padding:19px;text-align:left}.message-heading,.progress-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.message-heading h3,.progress-heading h3{font:400 19px var(--serif);letter-spacing:1px;margin:0}.message-heading>span{font-size:9px;color:#bdcec6;white-space:nowrap}.message-hint{font-size:10px;line-height:1.8;margin:10px 0 13px}.message-log{min-height:80px;max-height:196px;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#67728c #18233a;scrollbar-width:thin;padding-right:3px}.message-log:focus-visible{outline:1px solid #c7c5e5;outline-offset:3px}.message-log .message-empty{font-size:11px;line-height:1.9;margin:8px 0 12px;color:#8996b0}.message{border-left:2px solid #b0c3df51;padding:5px 0 5px 10px;margin:2px 0 11px}.message-self{border-color:#efc4af69}.message>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.message strong{font-size:10px;font-weight:400;color:#d5dded;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-self strong{color:#e6c6b8}.message time{font:8px sans-serif;color:#7e8ca6;white-space:nowrap}.message p{font-size:12px;line-height:1.75;color:#e2e1e8;margin:5px 0 0;overflow-wrap:anywhere;white-space:pre-wrap}.message-compose{display:flex;gap:7px;margin-top:12px}.message-compose input{width:0;flex:1;min-width:0;background:#101a30a3;border:1px solid #b6c1df2e;border-radius:8px;color:#f4eded;padding:11px 10px;font-size:12px}.message-compose input::placeholder{color:#7f8da7;font-size:11px}.message-compose button{padding:10px 14px;font-size:11px;border-color:#efc4af4a;background:#e4bbc215;color:#e6c9bf;white-space:nowrap;border-radius:8px}.message-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;margin-top:9px;font-size:9px;line-height:1.8;color:#8b98b2}.message-meta #message-count{font:9px/1.8 sans-serif;white-space:nowrap}.quick-messages{border-top:1px solid #ddd6e31c;margin:7px 0 0;padding-top:12px}.quick-messages>small{font-size:10px;color:#c4bed1}.quick-messages>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.quick-messages button{font-size:10px;padding:8px 10px;border-radius:7px;color:#dbced0;border-color:#e9c6c43d;background:#e9c6c408}.play-sidebar .message-panel{margin:0}.play-sidebar .message-log{max-height:228px}.play-sidebar .message-heading h3{font-size:18px}.play-sidebar .message-compose button{padding-inline:11px}.play-sidebar .message-hint{font-size:10px}.play-sidebar .activity-progress{margin-top:23px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* A completed trip remains a shared memory, without locking the next game. */
.activity-progress{padding:0 0 22px;border-bottom:1px solid #ffffff16;margin-bottom:26px}.progress-heading h3{font-size:16px;line-height:1.7;letter-spacing:.5px}.progress-heading>span{font-size:12px;white-space:nowrap;color:var(--gold)}.activity-progress>p{font-size:10px;margin:8px 0 15px;line-height:1.8}.activity-progress ol{padding:0;list-style:none;margin:0 0 14px}.activity-progress li{display:flex;align-items:center;gap:8px;padding:10px 0;color:#8f9bb4;font-size:11px;border-top:1px solid #ffffff0b}.activity-progress li>span:first-child{width:21px;height:21px;display:grid;place-items:center;border:1px solid #aab4cd29;border-radius:50%;font-size:13px;flex-shrink:0}.activity-progress li>span:nth-child(2){flex:1;line-height:1.7}.activity-progress li small{font-size:8px;white-space:nowrap;color:#8391ad}.activity-progress .activity-done{color:#d0d9dd}.activity-done>span:first-child{color:#bed6c6;border-color:#a7d2b960;background:#a7d2b910}.activity-progress .activity-done small{color:#b1c6bd}.activity-progress>small{font-size:9px;line-height:1.8;color:#8491ab}.keepsake{display:flex;align-items:center;gap:20px;padding:21px 24px;margin-top:22px;border:1px solid #e4c1b749;border-radius:12px;background:linear-gradient(115deg,#dab6b51c,#a8bfd70c);text-align:left}.keepsake>span{font-size:39px;color:var(--gold)}.keepsake small{font-size:9px;letter-spacing:2px;color:#c6b8c2}.keepsake h3{font:400 20px/1.8 var(--serif);letter-spacing:1px;margin:5px 0}.keepsake p{font-size:11px;line-height:1.9;margin:5px 0 0}.memory-book>p{font-size:11px;line-height:1.9}.memory-book h3{font-size:17px}
@keyframes gentle-reaction{from{opacity:0;margin-top:6px}to{opacity:1;margin-top:0}}@keyframes heart-response{0%,100%{scale:1}40%{scale:1.25}}@keyframes wave-response{0%,100%{rotate:0deg}30%{rotate:12deg}65%{rotate:-10deg}}@keyframes tea-response{0%,100%{translate:0 0}50%{translate:0 -3px}}
@media(max-width:1000px) and (min-width:761px){.play-layout{grid-template-columns:minmax(0,1fr) 280px;gap:18px}.companion{gap:7px;padding:7px}.companion-portrait{width:55px}.companion-info .timeline{font-size:7px;letter-spacing:0}.companion-info strong{font-size:12px}.companion-info em{display:none}.message-panel{padding:16px}.play-sidebar .message-compose input{font-size:11px}.wish-place small{font-size:8px}.progress-heading h3{font-size:15px}.activity-progress li{gap:6px;font-size:10px}}
@media(max-width:760px){.room-playing .hero{padding:22px 0 16px}.room-playing .hero h1{font-size:24px;margin:10px 0 2px}.play-layout{display:flex;flex-direction:column;gap:19px}.together{gap:8px}.companion{gap:6px;min-height:96px;padding:6px;border-radius:10px}.companion-portrait{width:53px;height:81px;flex-shrink:0}.companion-portrait .anime-avatar{width:86px;height:153px;top:0}.companion-info{gap:5px;flex:1}.companion-info .timeline{font-size:7px;line-height:1.8;letter-spacing:0}.companion-info strong{font-size:11px}.companion-info em{font-size:7px;padding:1px 2px;margin-left:1px}.companion-status{font-size:8px}.play-layout .reactions{margin-top:13px;gap:8px}.play-layout .reactions button{font-size:10px;padding:8px 13px}.play-layout .game-area{margin-top:15px;padding:23px 17px}.play-layout .game-area h2{font-size:24px;margin:15px 0 17px}.task-instruction>strong{font-size:12px;line-height:1.9}.task-instruction p{font-size:11px;margin-top:8px;line-height:1.9}.grid{max-width:245px;margin:20px auto;gap:5px}.directions{margin:18px 0;grid-template-columns:repeat(3,53px);gap:7px}.directions button{padding:11px;font-size:18px}.game-area .footnote{font-size:9px}.game-area>small{font-size:10px}.cue{font-size:25px;padding:15px 23px;margin:22px auto}.cue>small{font-size:9px}.progress{margin:21px 0}.wish-cards{gap:8px;margin:19px 0}.wish-cards button{aspect-ratio:2/3;max-width:155px;padding:0;border-radius:9px}.wish-cards .wish-place{font-size:20px;left:10px;bottom:12px;letter-spacing:1px;right:6px}.wish-place small{font-size:8px;line-height:1.8;letter-spacing:0;max-width:70px;margin-top:3px}.wish-reveal{padding:10px}.wish-reveal p{font-size:10px;line-height:1.8}.wish-reveal>small{font-size:9px}.choice-status{font-size:10px!important}.message-panel{padding:17px;margin-top:20px}.message-heading h3,.play-sidebar .message-heading h3{font-size:18px}.message-heading>span{font-size:9px}.message-hint{font-size:10px;line-height:1.8;margin-bottom:10px}.message-log,.play-sidebar .message-log{max-height:180px;min-height:70px}.message strong{font-size:10px}.message p{font-size:12px}.message-compose input{font-size:16px;padding:10px}.message-compose input::placeholder{font-size:11px}.message-compose button{font-size:11px;padding:10px 15px}.message-meta{font-size:9px}.quick-messages button{font-size:10px;padding:9px 10px}.quick-messages>small{font-size:10px}.play-sidebar .activity-progress{margin-top:25px;margin-bottom:5px}.sidebar .activity-progress{margin-top:5px}.progress-heading h3{font-size:17px}.activity-progress li{font-size:12px;padding:12px 0;gap:10px}.activity-progress li small{font-size:9px}.activity-progress>p{font-size:11px}.activity-progress>small{font-size:10px}.game-result{padding:22px 16px}.game-result h2{font-size:21px}.game-result p{font-size:11px}.game-result>small{font-size:9px}.game-result .complete{font-size:33px}.game-result .eyebrow{font-size:9px;letter-spacing:1px}.keepsake{gap:14px;padding:18px 17px}.keepsake>span{font-size:32px}.keepsake h3{font-size:17px;letter-spacing:.5px}.keepsake p{font-size:10px}.keepsake small{font-size:8px}.reaction-bubble{font-size:10px;max-width:190px;padding:7px 10px}.companion .reaction-bubble{max-width:170px;white-space:normal;font-size:9px;line-height:1.7;bottom:-5px}.companion .reaction-bubble>span{font-size:13px}.person .name small{font-size:8px;letter-spacing:0;margin-top:3px}.person .name{bottom:-17px}.room .scene .person{bottom:41px}.sidebar .memory-book h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){.reaction-bubble,.reaction-bubble>span,.wish-art,.grid .tile{animation:none!important;transition:none!important}.person.reacting .anime-avatar{filter:none}}
.latest-cue{text-align:left;padding:11px 14px;margin:0 0 19px;background:#bfd1e00b;border:1px solid #b6cbdf2a;border-radius:9px}.latest-cue>small{font-size:9px;color:#b8c8e0}.latest-cue>p{font-size:12px;line-height:1.8;color:#e4e3ec;margin:5px 0 0;overflow-wrap:anywhere;white-space:pre-wrap}.seat-future .latest-cue{border-color:#c1d8ef3f}@media(max-width:760px){.latest-cue{padding:10px 12px;margin-bottom:17px}.latest-cue>p{font-size:12px}.latest-cue>small{font-size:9px}}
