.resonance-portal{display:grid;place-items:stretch center;background:radial-gradient(circle at 8% 14%,oklch(.92 .055 350/.8),transparent 29%),radial-gradient(circle at 92% 8%,oklch(.92 .045 150/.7),transparent 28%),linear-gradient(180deg,oklch(.985 .01 25),oklch(.97 .012 350))}.resonance-poster-fallback{width:100%;aspect-ratio:3/4;overflow:hidden;background:linear-gradient(145deg,var(--res-rose-soft),var(--res-mint-soft));object-fit:cover}.resonance-poster-fallback.is-resonance{background:radial-gradient(circle at 28% 20%,oklch(.9 .065 350/.76),transparent 34%),linear-gradient(152deg,oklch(.965 .025 150),oklch(.93 .045 350))}.resonance-poster-fallback.is-profile{background:radial-gradient(circle at 72% 18%,oklch(.89 .055 155/.76),transparent 32%),linear-gradient(165deg,oklch(.95 .04 350),oklch(.94 .025 115))}.resonance-poster-fallback{position:relative;display:grid;place-items:center}.resonance-poster-fallback .avatar{width:72px;height:72px;opacity:.72;filter:blur(7px) saturate(.8);transform:scale(1.7)}.resonance-poster-fallback>i{position:absolute;inset:0;background:linear-gradient(160deg,transparent 35%,oklch(.99 .008 350/.55))}.memory-replay-entry{position:absolute;top:16px;right:14px;z-index:4;display:inline-flex;min-height:36px;align-items:center;gap:4px;padding:0 12px;border:1px solid oklch(.82 .09 354/.52);border-radius:var(--r-pill);background:oklch(.99 .008 350/.92);box-shadow:var(--shadow-card);color:var(--res-rose);font:650 var(--text-caption-size) /1 var(--font-ui);cursor:pointer}.memory-replay-entry:focus-visible,.memory-replay-entry:hover{background:var(--res-rose-soft);outline:2px solid oklch(.72 .12 354/.4);outline-offset:2px}.memory-replay-dialog-layer{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:oklch(.25 .03 350/.28);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.memory-replay-dialog{position:relative;display:grid;width:min(100%,330px);justify-items:center;padding:24px 20px 20px;border-radius:var(--r-card);background:oklch(.995 .004 40);box-shadow:var(--shadow-float);text-align:center}.memory-replay-dialog-close{position:absolute;top:8px;right:8px;display:grid;width:40px;height:40px;place-items:center;padding:0;border:0;border-radius:var(--r-pill);background:transparent;color:var(--color-text-muted);cursor:pointer}.memory-replay-dialog-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:var(--r-pill);background:var(--res-rose-soft);color:var(--res-rose)}.memory-replay-dialog h2{margin:16px 0 0;font:700 var(--text-title-size) /1.35 var(--font-serif)}.memory-replay-dialog p{margin:8px 0 0;color:var(--color-text-muted);font:500 var(--text-caption-size) /1.6 var(--font-soft)}.memory-replay-dialog-actions{display:grid;width:100%;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-top:20px}.memory-replay-dialog-actions button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--r-pill);background:var(--card-soft);color:var(--color-text);font:700 var(--text-body-size) /1 var(--font-ui);cursor:pointer}.memory-replay-dialog-actions button:first-child{background:linear-gradient(135deg,#f47eac,#eb5e99);color:#fff;box-shadow:0 8px 20px oklch(.68 .15 350/.24)}.memory-replay-preview-page{position:relative;display:grid;width:min(100%,430px);height:100%;min-height:0;overflow:hidden;color:var(--res-ink,var(--color-text));background:linear-gradient(oklch(.99 .008 30/.18),oklch(.99 .008 30/.18)),url(https://static.mooncall.cn/assets/auth/auth-bg.f71897967e160b38.webp) 50% /cover no-repeat}.is-spinning{animation:memoryReplaySpin 1.25s linear infinite}.memory-replay-preview-page{grid-template-rows:auto minmax(0,1fr) auto}.memory-replay-preview-header{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;min-height:calc(64px + env(safe-area-inset-top));padding:max(8px,env(safe-area-inset-top)) 12px 8px;border-bottom:1px solid var(--border);background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.memory-replay-preview-header button{display:grid;width:44px;height:44px;place-items:center;padding:0;border:0;border-radius:var(--r-pill);background:transparent;color:var(--color-text)}.memory-replay-preview-header h1{margin:0;font:600 18px/1.4 var(--font-serif);text-align:center}.memory-replay-preview-scroll{min-height:0;overflow-y:auto;padding:16px 16px 24px;scrollbar-width:none}.memory-replay-preview-scroll::-webkit-scrollbar{display:none}.memory-replay-file-hint{margin:0 0 12px;color:var(--color-text-muted);font:600 var(--text-caption-size) /1.4 var(--font-ui);text-align:center}.memory-replay-document{--memory-paper:oklch(0.993 0.006 40);width:100%;overflow:hidden;border-radius:var(--r-card);background:var(--memory-paper);box-shadow:var(--shadow-card);color:var(--color-text)}.memory-replay-document.is-image{padding:40px 24px 28px;border:4px solid oklch(.99 .006 40/.85);background:linear-gradient(oklch(.99 .006 40/.34),oklch(.99 .006 40/.34)),url(https://static.mooncall.cn/assets/auth/auth-bg.f71897967e160b38.webp) top /cover repeat-y}.memory-replay-document.is-markdown{padding:28px 20px 36px}.memory-replay-ai-disclaimer{margin:0 0 14px;color:var(--color-text-muted);font:400 10px/1.4 var(--font-ui);text-align:center}.memory-replay-document>header{display:grid;justify-items:center;text-align:center}.memory-replay-avatar{display:grid;width:56px;height:56px;place-items:center;overflow:hidden;border:3px solid #fff;border-radius:var(--r-pill);background:linear-gradient(145deg,var(--res-rose-soft),var(--res-mint-soft));box-shadow:0 6px 18px oklch(.48 .04 350/.18);color:var(--res-rose)}.memory-replay-avatar img{width:100%;height:100%;object-fit:cover}.memory-replay-document>header h2{margin:14px 0 0;color:var(--res-rose);font:750 calc(var(--text-title-size) * 1.08) /1.35 var(--font-serif);letter-spacing:.025em}.memory-replay-heading-meta{display:flex;max-width:100%;align-items:center;justify-content:center;gap:8px;margin-top:9px}.memory-replay-heading-meta p{margin:0;color:var(--color-text-muted);font:500 var(--text-caption-size) /1.6 var(--font-soft)}.memory-replay-heading-meta span{flex:0 0 auto;padding:5px 9px;border:1px solid oklch(.82 .09 354/.28);border-radius:var(--r-pill);background:oklch(.96 .032 354/.9);color:var(--res-rose);font:700 9px/1.2 var(--font-ui);white-space:nowrap;word-break:keep-all}.memory-replay-letter,.memory-replay-moments{margin-top:32px}.memory-replay-letter>h3,.memory-replay-moments>h3{margin:0 0 16px;font:700 var(--text-title-size) /1.3 var(--font-serif);text-align:center}.memory-replay-moments>h3{display:grid;grid-template-columns:minmax(20px,1fr) auto minmax(20px,1fr);align-items:center;grid-gap:12px;gap:12px;color:#ec6f9f}.memory-replay-moments>h3>span{color:#ec6f9f}.memory-replay-moments>h3:after,.memory-replay-moments>h3:before{height:1px;background:oklch(.76 .09 354/.42);content:""}.memory-replay-moments>div{display:grid;grid-gap:12px;gap:12px}.memory-replay-moment{position:relative;padding:16px;border:1px solid oklch(.84 .055 354/.32);border-radius:var(--r-media);background:oklch(.975 .018 354/.92);box-shadow:0 6px 18px oklch(.48 .04 350/.08)}.memory-replay-moment:nth-child(2n){border-color:oklch(.82 .045 156/.34);background:oklch(.97 .018 156/.92)}.memory-replay-moment i{position:absolute;top:16px;left:16px;display:grid;width:18px;height:18px;place-items:center;border-radius:var(--r-pill);background:var(--res-rose-soft);color:var(--res-rose);font:700 8px/1 var(--font-ui)}.memory-replay-moment:nth-child(2n) i{background:var(--res-mint-soft);color:oklch(.54 .08 155)}.memory-replay-moment h4{margin:0;font:750 var(--text-body-lg-size) /1.45 var(--font-serif)}.memory-replay-document.is-image .memory-replay-moment h4{padding-left:26px}.memory-replay-letter p,.memory-replay-moment p{margin:8px 0 0;color:var(--color-text);font:500 var(--text-body-size) /1.9 var(--font-soft);white-space:pre-wrap}.memory-replay-number{padding:0;color:#ec6f9f;background:transparent;font-weight:750}.memory-replay-letter{padding-top:28px;border-top:1px solid oklch(.78 .065 350/.24)}.memory-replay-letter>strong{display:block;margin-top:20px;color:var(--color-text-muted);font:650 var(--text-body-size) /1.5 var(--font-serif);text-align:right}.memory-replay-document>footer{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:32px;color:var(--res-rose);font:650 var(--text-caption-size) /1.4 var(--font-serif);letter-spacing:.08em}.memory-replay-save-bar{padding:12px max(20px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:linear-gradient(0deg,oklch(.99 .006 40/.98) 68%,oklch(.99 .006 40/0))}.memory-replay-save-bar button{display:flex;width:100%;min-height:52px;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--r-pill);background:var(--accent-grad);box-shadow:var(--shadow-float);color:#fff;font:700 var(--text-body-lg-size) /1 var(--font-ui);cursor:pointer}.memory-replay-save-bar button:disabled{cursor:wait;opacity:.78}@keyframes memoryReplaySpin{to{transform:rotate(1turn)}}@media (max-width:380px){.memory-replay-heading-meta{flex-direction:column;gap:6px}.memory-replay-document.is-image{padding-inline:18px}}.resonance-moment-skeleton span{animation:resonancePulse 1.4s ease-in-out infinite alternate}.resonance-profile-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 168px;grid-gap:12px;gap:12px;align-items:start;padding:7px 3px 16px}.resonance-profile-hero:before{position:absolute;inset:0 1px 4px 12px;z-index:-1;border-radius:28px 9px 26px 14px;background:linear-gradient(118deg,oklch(.98 .018 350/.88),oklch(.955 .028 155/.76)),var(--res-paper);box-shadow:0 12px 28px oklch(.47 .04 350/.07);content:"";transform:rotate(-1.1deg)}.resonance-profile-card{position:relative;z-index:1;display:flex;min-width:0;flex-direction:column;padding:17px 14px;border:0;border-radius:22px 8px 22px 22px;background:var(--res-paper);transform:translateY(18px) rotate(-.8deg)}.resonance-profile-label{display:flex;align-items:center;gap:6px;color:var(--res-rose);font-family:var(--font-serif);font-size:15px;font-weight:650}.resonance-profile-rows{display:grid;grid-gap:0;gap:0;margin-top:13px}.resonance-profile-rows p{display:grid;grid-gap:3px;gap:3px;margin:0;padding:9px 0;border-bottom:1px solid oklch(.88 .025 350/.68)}.resonance-profile-rows span{color:var(--res-muted);font-size:10px}.resonance-profile-rows strong{overflow:hidden;color:var(--res-ink);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.resonance-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto;padding-top:12px}.resonance-tags span{padding:4px 7px;border-radius:999px;background:var(--res-rose-soft);color:var(--res-muted);font-size:9px}.resonance-profile-poster{position:relative;z-index:2;aspect-ratio:3/4;overflow:hidden;border:7px solid var(--res-paper);border-radius:8px 24px 24px 8px;background:linear-gradient(145deg,var(--res-rose-soft),var(--res-mint-soft));box-shadow:0 14px 30px oklch(.47 .045 350/.12);transform:rotate(1.5deg)}.resonance-profile-poster .character-poster-editor,.resonance-profile-poster .character-poster-editor>.resonance-poster-fallback,.resonance-profile-poster .character-poster-editor>img{width:100%;height:100%}.resonance-profile-poster>.resonance-poster-fallback,.resonance-profile-poster>img{width:100%;height:100%;object-fit:cover}.resonance-coming-grid{display:grid;grid-template-columns:1fr 1fr;align-items:start;grid-gap:12px;gap:12px;margin-top:16px}.resonance-coming-grid section{position:relative;display:grid;min-height:154px;place-items:center;align-content:center;grid-gap:8px;gap:8px;border:0;border-radius:22px;background:oklch(.98 .012 350/.72);color:var(--res-muted)}.character-poster-editor{position:relative;display:block;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;border-radius:inherit}.character-poster-editor>.resonance-poster-fallback,.character-poster-editor>img{display:block;width:100%;height:100%;max-width:100%;object-fit:cover}.character-poster-edit-target{position:absolute;inset:0;z-index:3;overflow:hidden;color:inherit;font:inherit;cursor:pointer}.character-poster-edit-target,.resonance-poster-view{display:block;width:100%;height:100%;padding:0;border:0;border-radius:inherit;background:transparent}.resonance-poster-view{cursor:zoom-in;-webkit-tap-highlight-color:transparent}.resonance-poster-view>img{display:block;width:100%;height:100%;object-fit:cover}.resonance-poster-view:focus-visible{outline:2px solid var(--res-rose);outline-offset:-4px}.character-poster-editor.is-compact .character-poster-edit-target{inset:auto 0 0 auto;width:52px;height:52px;border-radius:50%}.character-poster-edit-badge{position:absolute;right:7px;bottom:7px;z-index:4;display:grid;width:31px;height:31px;place-items:center;padding:0;border:0;border-radius:50%;background:oklch(.985 .01 350/.94);color:var(--res-rose);box-shadow:0 7px 18px oklch(.44 .045 350/.18);pointer-events:none}.resonance-coming-grid section:first-child{min-height:172px;margin-top:18px;border-radius:9px 24px 20px 24px;transform:rotate(-1deg)}.resonance-coming-grid section:nth-child(2){min-height:150px;border-radius:24px 10px 24px 18px;background:oklch(.97 .02 155/.65);transform:rotate(.9deg)}.resonance-coming-grid strong{color:var(--res-ink);font-family:var(--font-serif);font-size:15px}.resonance-coming-grid small{font-size:10px}.resonance-moment-intro{margin:3px 5px 18px;color:var(--res-muted);font-family:var(--font-serif);font-size:13px;text-align:center}.resonance-moment-list{display:grid;grid-gap:10px;gap:10px}.resonance-moment-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;grid-gap:8px;gap:8px;width:100%}.resonance-moment-item{position:relative;min-width:0;padding:11px 14px 13px;border:1px solid oklch(.84 .045 350/.6);border-radius:18px;background:var(--res-paper);box-shadow:0 7px 18px oklch(.47 .04 350/.06)}.resonance-moment-row.is-user .resonance-moment-item{background:var(--res-rose-soft)}.resonance-moment-heart{display:grid;width:34px;height:34px;place-items:center;padding:0;border:0;border-radius:50%;background:oklch(.98 .012 350);color:var(--res-rose);box-shadow:0 5px 12px oklch(.47 .04 350/.12);cursor:pointer}.resonance-moment-heart:disabled{opacity:.55;cursor:wait}.resonance-moment-more{display:block;min-width:168px;min-height:42px;margin:18px auto 4px;padding:9px 18px;border:1px solid rgba(193,116,148,.24);border-radius:999px;background:rgba(255,252,251,.88);color:var(--text-2);font:inherit;font-size:13px;cursor:pointer;box-shadow:0 8px 22px rgba(92,57,76,.07)}.resonance-moment-more:disabled{opacity:.58;cursor:wait}.resonance-moment-item>time{display:block;margin-bottom:8px;color:var(--res-muted);font-size:9px}.resonance-moment-item>p{margin:0;color:var(--res-ink);font-size:14px;line-height:1.7;white-space:pre-wrap}.resonance-moment-item .audio-message-row{width:-moz-fit-content;width:fit-content;max-width:100%}.resonance-moment-empty{display:grid;min-height:220px;place-items:center;align-content:center;grid-gap:9px;gap:9px;color:var(--res-muted);text-align:center}.resonance-moment-empty svg{color:var(--res-rose)}.resonance-moment-empty strong{color:var(--res-ink);font-family:var(--font-serif);font-size:17px}.resonance-moment-empty span{max-width:230px;font-size:11px;line-height:1.6}.resonance-moment-skeleton{display:grid;grid-gap:12px;gap:12px}.resonance-moment-skeleton span{width:82%;height:92px;border-radius:8px 22px 22px 22px;background:oklch(.92 .025 350)}.resonance-moment-skeleton span:nth-child(2){justify-self:end;width:72%;background:oklch(.92 .025 155)}.resonance-moment-skeleton span:nth-child(3){width:64%}@keyframes resonancePulse{0%{opacity:.58}to{opacity:1}}@media (max-width:359px){.resonance-profile-hero{grid-template-columns:minmax(0,1fr) 144px;gap:9px}.memory-replay-entry{right:10px;padding:0 9px}.memory-replay-document.is-image{padding:32px 16px 24px}}@media (prefers-reduced-motion:reduce){.is-spinning,.memory-replay-loading-copy svg,.resonance-moment-skeleton span{animation:none}}.game-page{position:fixed;inset:0;z-index:180;width:100vw;height:var(--app-viewport-height,100dvh);background:#fcf5f1;animation:game-page-in .24s ease both}.game-page,.game-stage{display:flex;overflow:hidden}.game-stage{--game-accent:#d8648f;--game-accent-soft:rgba(216,100,143,.12);position:relative;flex-direction:column;width:100%;height:100%;min-height:0;color:#4e3843;background:linear-gradient(180deg,#ffffff57 70%,#fcf5f1),url(https://static.mooncall.cn/assets/private-chat/background.8aa82a54ef629448.webp) 50% /cover no-repeat,#fcf5f1}.game-stage-head{position:relative;z-index:2;min-height:74px;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 12px max(18px,env(safe-area-inset-left));display:grid;grid-template-columns:36px minmax(0,1fr) 36px;align-items:center;grid-gap:10px;gap:10px;border-bottom:1px solid rgba(112,70,91,.08)}.game-stage-head>div{grid-column:2;display:grid;justify-items:center;grid-gap:2px;gap:2px;text-align:center}.game-stage-head .game-ai-disclaimer{display:block;color:#93767b;font-size:11px;font-weight:400;line-height:16px;letter-spacing:0}.game-stage-head strong{font-family:var(--font-serif),serif;font-size:20px;font-weight:600}.game-stage-head>button{grid-column:1;grid-row:1;width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(88,56,71,.1);border-radius:50%;color:#795d6b;background:hsla(0,0%,100%,.62)}.game-loading-stage{position:absolute;inset:0;z-index:7;isolation:isolate;display:grid;grid-template-rows:auto auto auto;place-content:center;justify-items:center;grid-gap:clamp(18px,3.2dvh,28px);gap:clamp(18px,3.2dvh,28px);overflow:hidden;padding:max(28px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));color:#5e4350;background:radial-gradient(circle at 50% 40%,#fffefc 0,rgba(255,254,252,.8) 22%,transparent 50%),radial-gradient(circle at 14% 16%,rgba(255,190,205,.32),transparent 32%),radial-gradient(circle at 88% 82%,rgba(176,214,158,.26),transparent 30%),linear-gradient(165deg,#fffaf7,#fdf1f3);animation:game-loader-enter .48s cubic-bezier(.2,.8,.2,1) both}.game-loading-stage:before{content:"";position:absolute;z-index:-1;inset:8%;border:1px solid rgba(205,104,141,.08);border-radius:clamp(28px,7vw,72px);background:linear-gradient(145deg,hsla(0,0%,100%,.3),hsla(0,0%,100%,.04));box-shadow:inset 0 1px hsla(0,0%,100%,.7),0 30px 90px rgba(111,62,84,.06)}.game-loading-ambient{position:absolute;inset:0;z-index:-1;pointer-events:none}.game-loading-ambient i{position:absolute;width:clamp(110px,22vw,240px);aspect-ratio:1;border-radius:50%;background:rgba(255,178,196,.16);filter:blur(6px);animation:game-loader-orbit 7s ease-in-out infinite alternate}.game-loading-ambient i:first-child{top:5%;left:8%}.game-loading-ambient i:nth-child(2){right:5%;bottom:4%;width:clamp(140px,28vw,300px);background:rgba(168,210,148,.16);animation-delay:-2.8s}.game-loading-ambient i:nth-child(3){top:23%;right:14%;width:clamp(55px,9vw,96px);background:hsla(0,0%,100%,.7);box-shadow:0 0 50px hsla(0,0%,100%,.9);animation-delay:-4.6s}.game-loader-art{position:relative;display:grid;place-items:center;width:clamp(148px,min(40vw,24dvh),188px);aspect-ratio:1}.game-loader-art:before{content:"";position:absolute;z-index:-1;inset:8%;border-radius:50%;background:radial-gradient(circle,hsla(0,0%,100%,.95) 0,rgba(255,236,241,.7) 55%,transparent 72%)}.game-loading-copy{display:grid;justify-items:center;grid-gap:6px;gap:6px;max-width:min(84vw,430px);text-align:center}.game-loading-copy small{color:#e0859c;font-size:10px;font-weight:650;letter-spacing:.14em}.game-loading-copy strong{color:#5d414e;font:600 clamp(21px,4.3vw,30px)/1.35 var(--font-serif),serif;letter-spacing:.015em}.game-loading-copy span{color:#9a7787;font-size:clamp(11px,1.8vw,13px);line-height:1.6}.game-loading-pulse{display:flex;align-items:center;gap:7px;min-height:8px;color:#f29bb0}.game-loading-pulse i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.24;animation:game-loader-pulse 1.45s ease-in-out infinite}.game-loading-pulse i:nth-child(2){color:#9cc98a;animation-delay:.18s}.game-loading-pulse i:nth-child(3){animation-delay:.36s}.game-loading-stage.compact{inset:0;z-index:5;min-height:0;gap:10px;padding:14px;border-radius:inherit;background:rgba(255,250,247,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.game-loading-stage.compact:before{inset:8px;border-radius:18px}.game-loading-stage.compact .game-loading-ambient i{width:90px}.game-loading-stage.compact .game-loader-art{width:clamp(96px,min(25vw,18dvh),138px)}.game-loading-stage.compact .game-loading-copy{gap:3px}.game-loading-stage.compact .game-loading-copy small{display:none}.game-loading-stage.compact .game-loading-copy strong{font-size:clamp(15px,3.5vw,20px)}.game-loading-stage.compact .game-loading-copy span{max-width:260px;font-size:10px}.game-loading-stage.compact .game-loading-pulse{gap:5px}.game-loading-stage.compact .game-loading-pulse i{width:4px;height:4px}.game-library,.game-play-layout,.game-setup{position:relative;z-index:1;width:100%;min-height:0;flex:1 1;overflow:auto;margin:0 auto;padding:20px max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.game-library{max-width:1040px}.game-setup{max-width:680px}.game-play-layout{max-width:1120px}.game-library h1{margin:4px 2px 18px;font:600 22px/1.35 var(--font-serif),serif;color:#5d424f}.game-library-grid{display:grid;grid-template-columns:1fr}.game-library-card{position:relative;isolation:isolate;overflow:hidden;border:1px solid hsla(0,0%,100%,.72);color:var(--text-1);text-align:left;animation:game-library-card-in var(--motion-card) var(--ease-soft-out) both;animation-delay:calc(var(--game-index) * 70ms);transition:transform var(--motion-tap) var(--ease-tap),box-shadow var(--motion-tap) var(--ease-tap)}.game-library-card:before{position:absolute;z-index:-1;aspect-ratio:1;border:1px solid color-mix(in srgb,var(--accent) 13%,transparent);border-radius:50%;background:color-mix(in srgb,var(--accent) 7%,transparent);content:""}.game-library-copy{position:relative;z-index:2;display:grid;align-content:start}.game-library-eyebrow{display:inline-flex;align-items:center;gap:5px;width:-moz-fit-content;width:fit-content;margin-bottom:12px;border:1px solid rgba(204,130,159,.2);border-radius:var(--r-pill);color:#a15172;background:linear-gradient(135deg,hsla(0,0%,100%,.82),rgba(251,228,238,.72));box-shadow:0 4px 12px rgba(116,67,87,.06),inset 0 1px 0 hsla(0,0%,100%,.9);font-family:var(--font-ui);font-weight:700;letter-spacing:.06em;line-height:1.2}.game-library-badges{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.game-library-badges .game-library-eyebrow{margin-bottom:0;white-space:nowrap}.game-library-eyebrow svg{flex:0 0 auto;filter:drop-shadow(0 1px 2px rgba(124,67,91,.12))}.game-library-eyebrow[data-tier=bud]{border-color:rgba(100,164,135,.22);color:#4f886e;background:linear-gradient(135deg,hsla(0,0%,100%,.86),rgba(226,243,234,.78))}.game-library-eyebrow[data-tier=glow]{border-color:rgba(183,111,151,.22);color:#9a5579;background:linear-gradient(135deg,hsla(0,0%,100%,.86),rgba(244,225,238,.78))}.game-library-eyebrow[data-tier=full]{border-color:rgba(190,145,75,.27);color:#9b7133;background:linear-gradient(135deg,hsla(0,0%,100%,.88),hsla(43,77%,88%,.82));box-shadow:0 4px 14px rgba(160,117,49,.09),inset 0 1px 0 hsla(0,0%,100%,.94)}.game-library-card strong{display:block;font:700 var(--text-title-size)/1.2 var(--font-serif),serif}.game-library-card p{color:var(--text-2);font-family:var(--font-soft)}.game-library-art{position:absolute;z-index:1;aspect-ratio:1;display:grid;place-items:center;pointer-events:none;filter:drop-shadow(0 12px 18px color-mix(in srgb,var(--accent) 15%,transparent));transform:translateY(0);transition:transform var(--motion-card) var(--ease-soft-out),filter var(--motion-card) var(--ease-soft-out)}.game-library-art img{position:relative;z-index:1;display:block;width:100%;height:100%}.game-library-art-fallback{position:absolute;display:grid;place-items:center;width:54px;height:54px;border-radius:var(--r-chip);color:var(--accent);background:hsla(0,0%,100%,.7)}.game-library-card:active{box-shadow:var(--shadow-card);transform:scale(.985)}.game-library-card-turtle-soup{--game-card-tint:rgba(201,149,79,.11)}.game-library-card:after{position:absolute;z-index:-1;inset:0;background:linear-gradient(125deg,transparent 44%,var(--game-card-tint,rgba(227,108,146,.08)));content:"";pointer-events:none}.game-library-loading{grid-column:1/-1;margin:8px 0;text-align:center;color:#a18190;font-size:12px}.game-setup{display:flex;flex-direction:column}.game-end-link{align-self:flex-start;border:0;color:#9b7385;background:transparent;font-size:12px}.game-setup h2{margin:2px 0 0;font:600 22px/1.25 var(--font-serif),serif}.game-role-options{display:grid}.game-role-options button{padding:15px;border:1px solid rgba(112,72,91,.11);border-radius:17px;text-align:left;color:#5f4451;background:hsla(0,0%,100%,.7)}.game-role-options button.active{border-color:var(--game-accent);box-shadow:0 0 0 3px var(--game-accent-soft)}.game-role-options span,.game-role-options strong{display:block}.game-role-options span{margin-top:5px;color:#967785;font-size:12px}.game-setup-fields{display:grid;grid-gap:9px;gap:9px}.game-setup-fields input,.game-setup-fields textarea{width:100%;border:1px solid rgba(111,72,91,.12);border-radius:14px;outline:none;padding:12px 13px;color:#533d48;background:hsla(0,0%,100%,.8);font:inherit}.game-setup-fields textarea{min-height:100px;resize:vertical}.game-setup-method{width:100%;display:grid;grid-template-columns:1fr 1fr;grid-gap:4px;gap:4px;padding:4px;border:1px solid rgba(112,72,91,.09);border-radius:15px;background:rgba(122,76,98,.055)}.game-setup-method button{min-height:38px;display:flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:11px;color:#987585;background:transparent;font-weight:600;transition:color .18s ease,background .18s ease,box-shadow .18s ease}.game-setup-method button.active{color:#b95078;background:hsla(0,0%,100%,.92);box-shadow:0 5px 15px rgba(90,48,68,.08)}.game-setup-method button:disabled{opacity:.55}.game-auto-question{min-height:92px;display:flex;align-items:center;gap:13px;padding:16px;border:1px solid rgba(207,99,139,.13);border-radius:18px;color:#c35e84;background:linear-gradient(145deg,hsla(0,0%,100%,.82),rgba(252,232,240,.68));box-shadow:0 10px 26px rgba(103,54,76,.06)}.game-auto-question>svg{flex:0 0 auto}.game-auto-question>div{min-width:0;display:grid;grid-gap:5px;gap:5px}.game-auto-question strong{color:#654653;font:600 15px/1.3 var(--font-serif),serif}.game-auto-question span{color:#9b7988;font-size:11px;line-height:1.5}.gomoku-setup-card{display:flex;align-items:center;gap:15px;border:1px solid rgba(207,99,139,.13);box-shadow:0 12px 30px rgba(97,54,75,.07)}.gomoku-setup-card>span{width:48px;height:48px;flex:0 0 auto;display:grid;place-items:center;border-radius:16px;color:var(--game-accent);background:var(--game-accent-soft)}.gomoku-setup-card h2{margin:0 0 6px}.gomoku-setup-card p{margin:0;color:#927181;line-height:1.6}.game-start-retry .game-auto-question,.game-start-retry .game-setup-fields,.game-start-retry .game-setup-method{width:min(100%,420px)}.game-primary{width:100%;min-height:47px;border:0;border-radius:16px;color:#fff;background:var(--game-accent);box-shadow:0 10px 24px color-mix(in srgb,var(--game-accent) 28%,transparent);font-weight:600}.game-primary:disabled{opacity:.55}.game-error{position:absolute;z-index:6;left:18px;right:18px;bottom:18px;padding:11px 13px;border:1px solid rgba(191,66,88,.16);border-radius:13px;color:#aa405b;background:rgba(255,244,247,.96);box-shadow:0 10px 30px rgba(95,37,55,.13);font-size:13px}.game-result{position:relative;z-index:1;flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;text-align:center}.game-result>span{width:62px;height:62px;display:grid;place-items:center;border-radius:50%;color:var(--game-accent);background:var(--game-accent-soft)}.game-result small{color:#a17c8e;letter-spacing:.12em}.game-result h2{max-width:360px;margin:3px 0;font:600 24px/1.35 var(--font-serif),serif}.game-result p{max-width:380px;margin:0 0 12px;color:#896b79;line-height:1.65;font-size:13px}.game-result .game-primary{max-width:320px}.game-play-layout{display:flex;flex-direction:column;gap:13px;overflow:hidden;animation:game-content-reveal .42s cubic-bezier(.2,.8,.2,1) both}.game-play-layout.is-completed{overflow-y:auto}.gomoku-game.game-play-layout{overflow:hidden;padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}.draw-game.game-play-layout{overflow:auto}.turtle-riddle-card{position:relative;padding:17px 17px 15px 58px;border:1px solid rgba(205,104,141,.14);border-radius:20px;background:hsla(0,0%,100%,.72);box-shadow:0 12px 30px rgba(99,54,75,.07)}.turtle-mark{position:absolute;left:17px;top:18px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#cb6389;background:#fbe4ec}.turtle-riddle-card small{display:block;margin-bottom:4px;color:#b06f88}.turtle-riddle-card h2{margin:0 0 7px;font:600 19px var(--font-serif),serif}.turtle-riddle-surface{margin:0;color:#705360;line-height:1.65;font-size:13px}.turtle-riddle-card:not(.expanded) .turtle-riddle-surface{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.turtle-riddle-goal{margin:9px 0 0;padding-top:9px;border-top:1px solid rgba(176,100,130,.1);color:#987181;line-height:1.55;font-size:11px}.turtle-riddle-goal strong{color:#c05d82;font-weight:650}.turtle-secret-answer{margin-top:10px;padding-top:10px;border-top:1px solid rgba(176,100,130,.12)}.turtle-secret-answer>strong{display:block;margin-bottom:5px;color:#bd5c81;font-size:11px}.turtle-secret-answer>p{margin:0;color:#775965;line-height:1.65;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.turtle-riddle-card:not(.expanded) .turtle-secret-answer>p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.turtle-riddle-toggle{display:flex;align-items:center;gap:2px;margin:8px 0 0;padding:0;border:0;color:#b25c7d;background:transparent;font-size:11px}.turtle-riddle-toggle svg{transition:transform .18s ease}.turtle-riddle-card.expanded .turtle-riddle-toggle svg{transform:rotate(180deg)}.game-dialogue{flex:1 1;min-height:120px;display:flex;flex-direction:column;gap:9px;overflow-y:auto;overscroll-behavior:contain;padding:3px 2px 10px;scroll-behavior:smooth}.game-line{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:start;grid-gap:8px;gap:8px;max-width:min(88%,388px)}.game-line.user{display:flex;align-self:flex-end;justify-content:flex-end;max-width:min(82%,340px)}.game-line-body{min-width:0;max-width:100%}.game-line-identity{width:40px;display:grid;justify-items:center}.game-line-avatar{width:40px;height:40px;display:grid;place-items:center;overflow:hidden;border:1px solid #fff;border-radius:50%;color:#fff;background:linear-gradient(145deg,var(--game-accent),color-mix(in srgb,var(--game-accent) 58%,#77566a));font:600 14px var(--font-serif),serif}.game-line-avatar img{width:100%;height:100%;object-fit:cover}.game-line-body>p{width:-moz-fit-content;width:fit-content;max-width:100%;margin:0;padding:12px;border:1px solid #ffe8ee;border-radius:0 16px 16px;color:#1d191a;background:hsla(0,0%,100%,.8);font:300 16px/22px PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere}.game-line.user .game-line-body>p{margin-left:auto;border:0;border-radius:16px 0 16px 16px;color:#1d191a;background:#fedce5;text-align:left}.game-line.pending .game-line-body>p{opacity:.72}.game-line.waiting .game-line-body>p{min-width:50px}.game-unsent-text{align-self:flex-end;max-width:min(100%,320px);padding:9px 12px;border:1px solid #e9bec9;border-radius:14px;color:#87495e;background:#fff7f9;font-size:12px}.game-unsent-text strong{display:block;font-weight:600}.game-unsent-text p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;-moz-user-select:text;user-select:text}.game-line-image{display:block;width:min(210px,62vw);max-height:210px;border:4px solid hsla(0,0%,100%,.82);border-radius:16px 16px 16px 5px;object-fit:contain;background:#fff;box-shadow:0 7px 18px rgba(83,48,64,.08)}.game-line.user .game-line-image{margin-left:auto;border-radius:16px 16px 5px 16px}.game-typing-dots{display:inline-flex;align-items:center;justify-content:center;gap:4px}.game-typing-dots i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.38;animation:game-typing 1s ease-in-out infinite}.game-typing-dots i:nth-child(2){animation-delay:.14s}.game-typing-dots i:nth-child(3){animation-delay:.28s}.game-composer{display:flex;align-items:end;gap:12px;min-height:48px}.game-compose-field{display:flex;flex:1 1;align-items:center;min-width:0;min-height:48px;padding:8px 12px;border:1px solid #ffe8ee;border-radius:22px;background:hsla(0,0%,100%,.8);transition:border-color .14s,background-color .14s}.game-compose-field:focus-within{border-color:#fa7188;background:hsla(0,0%,100%,.88)}.game-compose-field textarea{display:block;width:100%;min-width:0;height:22px;min-height:22px;max-height:30vh;padding:0;border:0;outline:none;color:#503a45;background:transparent;font:300 16px/22px var(--font-ui);resize:none;overflow-y:auto;-webkit-appearance:none}.game-compose-field textarea::placeholder{color:#beadb0}.game-composer>button{position:relative;width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;padding:0;border:0;color:#fff;background:transparent;touch-action:manipulation}.game-composer>button:before{content:"";position:absolute;inset:6px;border:1px solid #fa7188;border-radius:50%;background:#fa7188}.game-composer>button img{position:relative}.game-composer>button:disabled{opacity:.55}.game-composer>button:focus-visible{outline:2px solid #fa7188;outline-offset:2px;border-radius:22px}.game-secondary{align-self:center;display:flex;align-items:center;gap:5px;border:0;color:var(--game-accent);background:transparent;font-size:12px}.game-end-link{margin:2px auto 0}.turtle-composer{display:grid;grid-gap:6px;gap:6px}.game-inline-actions{display:flex;align-items:center;justify-content:center;gap:18px;min-height:22px}.game-inline-actions .game-end-link,.game-inline-actions .game-secondary{align-self:auto;margin:0}.game-line .is-chat-audio{max-width:min(250px,68vw);padding:12px;border:1px solid #ffe8ee;border-radius:0 16px 16px;color:#1d191a;background:hsla(0,0%,100%,.8)}.game-line.user .is-chat-audio{border-color:transparent;border-radius:16px 0 16px 16px;background:#fedce5}.game-line .is-chat-audio .audio-bubble{min-height:24px;padding:0;gap:14px;border:0;border-radius:0;color:inherit;background:transparent;box-shadow:none;animation:none;font-size:16px;font-weight:300}.game-line .is-chat-audio .audio-bubble svg{color:#ff648b}.game-line .is-chat-audio .audio-wave span{width:1px;background:#a58288}.game-line .is-chat-audio .audio-transcript{width:min(184px,100%);max-width:100%;margin-top:8px;padding:0;border:0;border-radius:0;color:inherit;background:transparent;font-size:16px;font-weight:300;line-height:22px}.game-line-decision{display:flex;gap:6px;margin-top:-3px;padding:8px 9px;border-radius:0 0 13px 4px;background:hsla(0,0%,100%,.78)}.game-line-decision button{min-height:28px;padding:0 10px;border:1px solid rgba(190,82,123,.14);border-radius:9px;color:#ad5375;background:#fbeaf0;font-size:11px}.game-line-decision button.selected{border-color:var(--game-accent);color:#fff;background:var(--game-accent)}.game-line-decision button:disabled:not(.selected){opacity:.48}.game-settlement{position:relative;display:grid;grid-gap:14px;gap:14px;overflow:hidden;padding:16px;border:1px solid #ffe8ee;border-radius:20px;background:linear-gradient(130deg,hsla(0,0%,100%,.96),rgba(255,240,244,.92));box-shadow:0 8px 24px rgba(91,49,69,.07);animation:game-settlement-in .28s cubic-bezier(.2,.8,.2,1) .18s both}.game-settlement:before{position:absolute;top:0;right:0;left:0;height:3px;background:linear-gradient(90deg,#ffd8e4,#fa7188,#ffd8e4);content:""}.game-settlement-close{position:absolute;top:9px;right:9px;width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;color:#a98191;background:transparent;cursor:pointer}.game-settlement-close:hover{color:#755362;background:rgba(205,104,141,.09)}.game-settlement-collapsed{justify-self:start;min-height:36px;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid #ffe8ee;border-radius:999px;color:#794a52;background:hsla(0,0%,100%,.88);box-shadow:0 5px 15px rgba(91,49,69,.06);cursor:pointer}.game-settlement-heading{display:flex;align-items:center;gap:10px;padding-right:28px}.game-settlement-heading>span{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border-radius:12px;color:#c95c84;background:#ffe3eb}.game-settlement-heading small{display:block;margin-bottom:2px;color:#93767b;font-size:11px}.game-settlement-heading h2{margin:0;color:#794a52;font:600 20px/1.25 var(--font-serif),serif}.game-result-reveal{padding:12px;border:1px solid #ffe8ee;border-radius:14px;background:hsla(0,0%,100%,.82)}.game-result-reveal>span{display:block;margin-bottom:5px;color:#a76a80;font-size:11px}.game-result-reveal>p{max-height:126px;margin:0;overflow-y:auto;color:#503a45;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.55}.game-settlement-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;grid-gap:8px;gap:8px}.game-settlement-actions .game-primary{min-height:42px;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;box-shadow:none}.game-settlement-actions .game-end-link{min-height:42px;margin:0;padding:8px 10px;border:1px solid #ffe8ee;border-radius:999px;color:#794a52;background:hsla(0,0%,100%,.82);white-space:nowrap}.word-clue-card{padding:22px 20px;border:1px solid rgba(205,104,141,.12);border-radius:24px;color:#604551;background:linear-gradient(145deg,hsla(0,0%,100%,.9),rgba(250,232,239,.78));box-shadow:0 14px 32px rgba(97,54,75,.08)}.word-clue-card svg{color:#cc6289}.word-clue-card small{display:block;margin-top:10px;color:#b1768c}.word-clue-card h2{margin:8px 0 14px;font:600 21px/1.45 var(--font-serif),serif}.word-clue-card>div{color:#a17b8d;font-size:11px}.word-dialogue{padding-inline:3px}.gomoku-board-panel{min-width:0;min-height:0;flex:0 1 auto;display:flex;flex-direction:column;gap:8px}.gomoku-status{display:flex;justify-content:space-between;color:#8d6d7c;font-size:11px}.gomoku-status span{display:flex;align-items:center;gap:5px}.gomoku-status i{width:10px;height:10px;border-radius:50%}.gomoku-status .black{background:#30262b}.gomoku-status .white{border:1px solid #ac929e;background:#fffafd}.gomoku-board{align-self:center;width:min(100%,520px,max(230px,calc(var(--app-viewport-height, 100dvh) - 390px)));aspect-ratio:1;display:grid;grid-template-columns:repeat(15,1fr);padding:13px;border:1px solid rgba(163,91,119,.17);border-radius:18px;background:linear-gradient(145deg,#f2dce4,#e9cbd7);box-shadow:0 14px 30px rgba(97,54,75,.13),inset 0 0 30px hsla(0,0%,100%,.24)}.gomoku-board button{position:relative;min-width:0;padding:0;border:0;background:transparent}.gomoku-board button:after,.gomoku-board button:before{content:"";position:absolute;z-index:0;background:rgba(101,65,82,.46);pointer-events:none}.gomoku-board button:before{left:0;right:0;top:calc(50% - .5px);height:1px}.gomoku-board button:after{top:0;bottom:0;left:calc(50% - .5px);width:1px}.gomoku-board button.edge-left:before{left:50%}.gomoku-board button.edge-right:before{right:50%}.gomoku-board button.edge-top:after{top:50%}.gomoku-board button.edge-bottom:after{bottom:50%}.gomoku-board button:disabled{opacity:1}.gomoku-board button:not(:disabled):hover{background:radial-gradient(circle,rgba(190,82,123,.23) 0 25%,transparent 27%)}.stone{position:absolute;z-index:2;inset:9%;border-radius:50%;box-shadow:0 2px 4px rgba(29,31,29,.35)}.stone.black{background:radial-gradient(circle at 35% 30%,#665760,#211a1e 68%)}.stone.white{background:radial-gradient(circle at 35% 30%,#fff,#eee5e9 72%)}.stone.pending{animation:game-stone-in .16s ease both}.stone.white.last:after{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:#c95882;box-shadow:0 0 0 2px hsla(0,0%,100%,.75);transform:translate(-50%,-50%)}.gomoku-thinking{display:flex;align-items:center;justify-content:center;gap:7px;min-height:18px;color:#a68795;font-size:11px}.gomoku-thinking.visible{color:#9a7485}.gomoku-thinking .game-typing-dots{color:#c05d82}.gomoku-conversation{min-height:0;flex:1 1;display:flex;flex-direction:column;gap:9px;overflow:hidden}.gomoku-dialogue{min-height:0;max-height:none;flex:1 1}.gomoku-game>.game-inline-actions{flex:0 0 auto}.gomoku-game.is-completed .gomoku-conversation{overflow-y:auto}.draw-conversation,.draw-visual-panel{min-width:0;display:flex;flex-direction:column;gap:10px}.draw-secret{display:flex;align-items:center;gap:6px;padding:10px 12px;border:1px solid rgba(205,104,141,.1);border-radius:14px;color:#8b6878;background:hsla(0,0%,100%,.7);font-size:12px}.draw-secret strong,.draw-secret svg{color:#bc587e}.draw-secret strong{margin-left:auto;font:600 18px var(--font-serif),serif}.draw-canvas-wrap{min-height:0;flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(167,92,121,.14);border-radius:22px;background:#fff;box-shadow:0 12px 28px rgba(97,54,75,.09)}.draw-canvas-slot{min-height:120px;flex:1 1 auto;display:grid;place-items:center;overflow:hidden;background:#fbf6f8}.draw-surface{position:relative;width:100%;aspect-ratio:16/9;background:#fff;box-shadow:0 0 0 1px rgba(167,92,121,.08)}.draw-canvas-placeholder{min-height:120px;flex:1 1 auto;display:grid;place-items:center;border:1px dashed rgba(167,92,121,.24);border-radius:22px;color:#a98293;background:hsla(0,0%,100%,.6);font-size:12px}.draw-canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:none}.draw-submitted-preview{position:absolute;inset:0;display:grid;place-items:center;background:#fff}.draw-submitted-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.draw-submitted-preview>span{position:relative;z-index:1;display:flex;align-items:center;gap:7px;padding:9px 12px;border-radius:999px;color:#765260;background:hsla(0,0%,100%,.94);box-shadow:0 8px 22px rgba(97,54,75,.12);font-size:12px}.draw-tools{flex:0 0 auto;display:flex;align-items:center;gap:6px;min-height:46px;padding:6px 8px;border-top:1px solid rgba(167,92,121,.09);background:#fff}.draw-tools button:disabled{opacity:.45}.draw-tool-actions{flex:0 0 auto;display:flex;align-items:center;gap:2px}.draw-tool-actions button{width:32px;height:32px;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:50%;color:#927080;background:transparent}.draw-tool-actions button.active{border-color:rgba(103,67,85,.32);color:#bd597f;background:#f9eef2}.draw-canvas-wrap.is-fullscreen{position:fixed;inset:0;z-index:950;flex-direction:row-reverse;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border:0;border-radius:0;box-shadow:none}.draw-canvas-wrap.is-fullscreen.is-rotated{inset:auto;top:0;left:100vw;width:100dvh;height:100vw;padding:env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left) env(safe-area-inset-top);transform-origin:top left;transform:rotate(90deg)}.draw-canvas-wrap.is-fullscreen .draw-canvas-slot{padding:12px}.draw-canvas-wrap.is-fullscreen .draw-tools{width:104px;min-height:0;display:flex;flex-direction:column;align-items:center;gap:12px;overflow-y:auto;padding:10px 8px;border-top:0;border-right:1px solid rgba(167,92,121,.09)}.draw-canvas-wrap.is-fullscreen .draw-tools>.draw-fullscreen-word{margin-top:auto}.draw-canvas-wrap.is-fullscreen .draw-tools>.draw-tool-actions{margin-bottom:auto}.draw-fullscreen-exit{flex:none;align-self:flex-start;width:36px;height:36px;display:grid;place-items:center;padding:0;border:1px solid rgba(167,92,121,.16);border-radius:50%;color:#927080;background:#fff}.draw-canvas-wrap.is-fullscreen .draw-color-palette{flex:none;display:grid;grid-template-columns:repeat(2,32px);justify-content:center;grid-gap:6px;gap:6px}.draw-canvas-wrap.is-fullscreen .draw-color-palette button{width:32px;height:32px}.draw-canvas-wrap.is-fullscreen .draw-color-palette i{width:18px;height:18px}.draw-canvas-wrap.is-fullscreen .draw-tool-actions{display:grid;grid-template-columns:repeat(2,36px);justify-content:center;grid-gap:6px;gap:6px}.draw-canvas-wrap.is-fullscreen .draw-tool-actions button{width:36px;height:36px}.draw-fullscreen-word{width:100%;min-width:0;padding-bottom:10px;border-bottom:1px solid rgba(167,92,121,.09);color:#bc587e;text-align:center}.draw-fullscreen-word strong{display:-webkit-box;overflow:hidden;font:600 14px/1.3 var(--font-serif),serif;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:3}.draw-send-button{display:flex;align-items:center;justify-content:center;gap:7px;padding:0 16px;font-size:15px;letter-spacing:.02em}.draw-send-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draw-send-button svg{flex:none}.draw-send-button.is-sent:disabled{opacity:1;border:1px solid color-mix(in srgb,var(--game-accent) 26%,transparent);color:var(--game-accent);background:color-mix(in srgb,var(--game-accent) 8%,#fff);box-shadow:none;font-size:13px;font-weight:500}.draw-send-spin{animation:draw-send-spin .9s linear infinite}@keyframes draw-send-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.draw-send-spin{animation:none}}.draw-color-palette{min-width:0;flex:1 1;display:flex;justify-content:center;gap:4px}.draw-color-palette button{width:25px;height:25px;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:50%;background:transparent}.draw-color-palette button.active{border-color:rgba(103,67,85,.32);background:#f9eef2}.draw-color-palette i{width:15px;height:15px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(70,45,57,.08)}.character-drawing-stack{min-height:0;flex:1 1;display:flex;flex-direction:column;gap:9px}.character-drawing-frame{flex:1 1;min-height:280px;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(167,92,121,.12);border-radius:24px;background:repeating-linear-gradient(0deg,rgba(205,104,141,.055),rgba(205,104,141,.055) 1px,transparent 0,transparent 22px),#fffafd;box-shadow:0 14px 30px rgba(97,54,75,.1)}.character-drawing-frame img{width:100%;height:100%;object-fit:contain}.character-drawing-frame>div{display:grid;place-items:center;grid-gap:9px;gap:9px;color:#c06a8a}.character-drawing-frame span{color:#a98293;font-size:12px}.draw-actions{margin-top:1px}.draw-game.game-play-layout:not(.is-completed){overflow:hidden}.draw-visual-panel{min-height:0;flex:0 1 min(48dvh,440px);overflow-y:auto;overscroll-behavior:contain}.draw-game.is-drawer .draw-visual-panel{flex-basis:min(48dvh,376px)}.draw-visual-content{min-height:0;flex:1 1 auto;display:flex;flex-direction:column;gap:10px}.draw-visual-head{flex:0 0 auto}.draw-secret>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draw-secret>strong{flex:0 0 auto}.character-drawing-head{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px 9px 12px;border:1px solid rgba(205,104,141,.1);border-radius:14px;color:#8b6878;background:hsla(0,0%,100%,.7);font-size:12px}.character-drawing-head>span{min-width:0;display:flex;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-drawing-head>span svg{flex:0 0 auto;color:#bc587e}.character-drawing-head-actions{min-width:0;flex:1 1;display:flex;align-items:center;gap:5px}.character-drawing-head-actions .draw-redraw-button{min-width:0;min-height:30px;overflow:hidden;padding:0 10px;border:1px solid rgba(194,83,126,.14);border-radius:999px;color:#b65379;background:rgba(251,229,238,.82);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.character-drawing-head-actions .draw-redraw-button:disabled{opacity:.58}.character-drawing-head-actions .draw-redraw-exhausted{padding:0 4px;color:#a38090;font-size:10px;white-space:nowrap}.character-drawing-head-actions .draw-visual-toggle{margin-left:auto}.draw-visual-toggle{width:30px;height:30px;flex:0 0 auto;display:grid;place-items:center;padding:0;border:0;border-radius:50%;color:#ae6a85;background:rgba(205,104,141,.08)}.draw-visual-toggle svg{transition:transform .18s ease}.character-drawing-frame{position:relative}.character-drawing-navigation{position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 10px;pointer-events:none}.character-drawing-navigation button{width:36px;height:36px;display:grid;place-items:center;padding:0;border:1px solid rgba(111,72,91,.1);border-radius:50%;color:#8b6172;background:hsla(0,0%,100%,.88);box-shadow:0 6px 18px rgba(76,43,58,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;transition:color .18s ease,background .18s ease,transform .18s ease}.character-drawing-navigation button:hover{color:#c4577f;background:hsla(0,0%,100%,.98);transform:scale(1.04)}.draw-game:not(.is-visual-collapsed) .draw-visual-toggle svg{transform:rotate(180deg)}.draw-game.is-visual-collapsed .draw-visual-panel{flex:0 0 auto;max-height:none;overflow:visible}.draw-game.is-visual-collapsed .draw-visual-content{display:none}.draw-conversation{min-height:190px;flex:1 1;overflow:hidden}.draw-dialogue{min-height:0;flex:1 1}.chat-game-card{width:min(100%,356px);max-width:100%;box-sizing:border-box;display:flex;gap:12px;padding:14px;border:1px solid rgba(197,95,135,.13);border-radius:18px;color:#634957;background:linear-gradient(145deg,hsla(0,0%,100%,.94),rgba(249,234,241,.94));box-shadow:0 8px 24px rgba(95,52,72,.08)}.chat-game-card-icon{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:13px;color:#cf628b;background:rgba(229,104,149,.11)}.chat-game-card>div:last-child{min-width:0;display:grid;grid-gap:3px;gap:3px}.chat-game-card small{color:#b47b91;font-size:9px;letter-spacing:.08em}.chat-game-card strong{font:600 15px var(--font-serif),serif}.chat-game-card p{margin:2px 0;color:#806370;font-size:12px;line-height:1.45}.chat-game-card span{color:#aa8a99;font-size:10px}.chat-game-card.status-playing{border-style:dashed}@keyframes game-page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes game-library-card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes game-content-reveal{0%{opacity:0;transform:translateY(7px) scale(.995)}to{opacity:1;transform:none}}@keyframes game-loader-enter{0%{opacity:0}to{opacity:1}}@keyframes game-loader-orbit{0%{transform:translate3d(-8%,-5%,0) scale(.94)}to{transform:translate3d(9%,7%,0) scale(1.08)}}@keyframes game-loader-pulse{0%,60%,to{opacity:.22;transform:scale(.78)}28%{opacity:.9;transform:scale(1)}}@keyframes game-typing{0%,65%,to{transform:translateY(0);opacity:.32}30%{transform:translateY(-3px);opacity:.85}}@keyframes game-stone-in{0%{opacity:.4;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes game-settlement-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@media (hover:hover) and (pointer:fine){.game-library-card:hover{box-shadow:var(--shadow-float);transform:translateY(-3px)}.game-library-card:hover .game-library-art{filter:drop-shadow(0 16px 22px color-mix(in srgb,var(--accent) 20%,transparent));transform:translateY(-6px) scale(1.025)}}@media (min-width:720px){.game-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:960px){.game-library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:900px){.game-stage-head{padding-inline:max(32px,calc((100vw - 1120px) / 2))}.game-play-layout{padding:28px 32px 30px}.turtle-game{display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto;grid-column-gap:26px;column-gap:26px;overflow:hidden}.turtle-game .turtle-riddle-card{grid-column:1;grid-row:1/4;align-self:start;max-height:100%;overflow-y:auto}.turtle-game .game-dialogue{grid-column:2;grid-row:1}.turtle-game .turtle-composer{grid-column:2;grid-row:2}.turtle-game .game-inline-actions{grid-column:2;grid-row:3}.turtle-game .game-settlement{grid-column:2;grid-row:2/4}.turtle-game .game-settlement-collapsed{grid-column:2;grid-row:2/4;align-self:start}.word-game{display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto;grid-column-gap:26px;column-gap:26px;overflow:hidden}.word-game .word-clue-card{grid-column:1;grid-row:1/4;align-self:start}.word-game .word-dialogue{grid-column:2;grid-row:1}.word-game .word-input{grid-column:2;grid-row:2}.word-game .game-inline-actions{grid-column:2;grid-row:3}.word-game .game-settlement{grid-column:2;grid-row:2/4}.word-game .game-settlement-collapsed{grid-column:2;grid-row:2/4;align-self:start}.gomoku-game{display:grid;grid-template-columns:minmax(360px,500px) minmax(300px,1fr);grid-template-rows:minmax(0,1fr) auto;grid-column-gap:28px;column-gap:28px;overflow:hidden}.gomoku-game .gomoku-board-panel{grid-column:1;grid-row:1/3;min-height:0}.gomoku-game .gomoku-board{width:min(100%,500px,calc(var(--app-viewport-height, 100dvh) - 180px))}.gomoku-game .gomoku-conversation{grid-column:2;grid-row:1;min-height:0}.gomoku-game .gomoku-dialogue{flex:1 1;max-height:none}.gomoku-game>.game-inline-actions{grid-column:2;grid-row:2}.draw-game{display:grid;grid-template-columns:minmax(360px,460px) minmax(320px,1fr);grid-column-gap:28px;column-gap:28px;overflow:hidden}.draw-game .draw-visual-panel{grid-column:1;min-height:0}.draw-game .draw-canvas-wrap{width:min(100%,420px);align-self:center}.draw-game .character-drawing-frame{min-height:0}.draw-game .draw-conversation{grid-column:2;min-height:0}.draw-game .draw-dialogue{flex:1 1;min-height:0;max-height:none}}@media (max-width:899px){.game-play-layout:not(.gomoku-game) .game-composer{margin-inline:0}.gomoku-conversation .game-composer{margin-inline:6px}}@media (min-width:700px) and (max-width:899px){.game-play-layout:not(.gomoku-game) .game-composer{margin-inline:max(4px,calc((100vw - 760px) / 2 + 4px))}.gomoku-conversation .game-composer{margin-inline:max(14px,calc((100vw - 760px) / 2 + 14px))}}@media (max-width:899px) and (max-height:720px){.game-loading-stage{gap:12px}.game-loading-stage:not(.compact) .game-loader-art{width:clamp(118px,min(25vw,24dvh),168px)}.game-loading-stage:not(.compact) .game-loading-copy span{display:none}.game-play-layout{gap:9px;padding-top:12px}.turtle-riddle-card{padding-top:13px;padding-bottom:12px}.turtle-mark{top:14px}.turtle-riddle-card:not(.expanded) .turtle-riddle-surface{-webkit-line-clamp:2}.turtle-riddle-goal{margin-top:6px;padding-top:6px}}@media (max-width:420px){.game-loading-stage{padding-inline:max(16px,env(safe-area-inset-left))}.game-loading-stage:before{inset:12px;border-radius:27px}.game-loading-copy{max-width:88vw}.game-loading-copy strong{font-size:21px}.game-loading-stage.compact{gap:7px;padding:10px}.game-loading-stage.compact .game-loader-art{width:clamp(84px,28vw,112px)}.game-loading-stage.compact .game-loading-copy span{display:none}.game-library-card{min-height:154px;padding:16px}.game-library-copy{width:68%;min-height:122px}.game-library-badges{margin-bottom:8px}.game-library-card p{margin-block:6px}.game-library-art{right:-10px;bottom:-12px;width:clamp(98px,43%,132px)}.gomoku-board{padding:8px}}@media (max-width:360px){.game-library-card{padding-inline:14px}.game-library-copy{width:70%}.game-library-art{bottom:-10px}}@media (prefers-reduced-motion:reduce){.game-library-art,.game-library-card,.game-loading-ambient i,.game-loading-pulse i,.game-loading-stage,.game-play-layout{animation:none!important;transition:none!important}.game-library-card:active,.game-library-card:hover,.game-library-card:hover .game-library-art{transform:none}.game-loading-ambient i{opacity:.5}}.chat-input input::placeholder{color:hsla(34,3%,41%,.46)}.add-button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;cursor:pointer;transition:all .25s cubic-bezier(.2,.8,.2,1);background:transparent;color:hsla(34,3%,41%,.76)}.game-line.user.is-blocked .game-line-body{display:grid;justify-items:end;grid-gap:4px;gap:4px}.game-line-blocked-row{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.game-line-blocked-row>p{max-width:100%;margin:0;padding:12px;border-radius:16px 0 16px 16px;color:#1d191a;background:#fedce5;font:300 16px/22px PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;text-align:left;opacity:.72}.game-stage-head.is-preplay{min-height:68px;border-bottom:0}.game-stage-head.is-preplay strong{display:none}.game-stage-head.is-preplay .game-ai-disclaimer{font-size:11px;font-weight:400}.game-library,.game-setup{padding-top:4px}.game-library-hero,.game-setup-hero{position:relative;display:grid;justify-items:center;grid-gap:5px;gap:5px;margin:0 0 22px;text-align:center}.game-library-hero h1,.game-setup-hero h1{margin:0;color:#44313f;font:650 clamp(26px,6.4vw,37px)/1.25 var(--font-serif),serif;letter-spacing:.015em}.game-library-hero p,.game-setup-hero p{margin:0;color:#8a7180;font:500 clamp(13px,3.3vw,16px)/1.5 var(--font-soft)}.game-library-grid{gap:10px}.game-library-card{min-height:130px;padding:15px 16px;border-color:hsla(0,0%,100%,.94);border-radius:22px;background:linear-gradient(115deg,hsla(0,0%,100%,.96),rgba(255,247,250,.9));box-shadow:0 10px 30px rgba(126,72,96,.07),inset 0 1px 0 hsla(0,0%,100%,.98)}.game-library-card:before{right:-12px;bottom:-84px;width:190px;border-color:color-mix(in srgb,var(--accent) 15%,transparent);background:color-mix(in srgb,var(--accent) 6%,transparent)}.game-library-card-word-guess{--game-card-tint:rgba(207,235,220,.22)}.game-library-card-gomoku{--game-card-tint:rgba(238,216,226,.22)}.game-library-card-draw-guess{--game-card-tint:rgba(255,218,234,.3)}.game-library-copy{width:66%;min-height:100px}.game-library-badges{margin-bottom:8px}.game-library-eyebrow{padding:4px 8px;font-size:10px}.game-library-card strong{color:#483340;font-size:clamp(18px,4.5vw,25px)}.game-library-card p{margin:6px 0 0;font-size:clamp(11px,2.9vw,13px);line-height:1.45}.game-library-art{right:30px;bottom:-13px;width:clamp(105px,32%,148px)}.game-library-art img{object-fit:contain}.game-library-arrow{position:absolute;z-index:2;top:50%;right:12px;display:grid;place-items:center;width:29px;height:29px;border-radius:50%;color:#ab5c7d;background:hsla(0,0%,100%,.86);transform:translateY(-50%)}.game-library-card:focus-visible,.game-role-option:focus-visible{outline:2px solid #d6558b;outline-offset:3px}.game-setup{gap:12px}.game-setup-hero{margin-bottom:10px}.game-setup-hero h1{font-size:clamp(30px,7vw,39px)}.game-role-options{gap:10px}.game-role-options .game-role-option{position:relative;isolation:isolate;display:flex;align-items:center;min-height:142px;overflow:hidden;padding:18px;border:1px solid hsla(0,0%,100%,.96);border-radius:23px;background:linear-gradient(115deg,hsla(0,0%,100%,.96),rgba(248,255,252,.87));box-shadow:0 11px 28px rgba(124,70,94,.055);transition:border-color var(--motion-tap) var(--ease-tap),transform var(--motion-tap) var(--ease-tap),box-shadow var(--motion-tap) var(--ease-tap)}.game-role-options .game-role-option:before{position:absolute;z-index:-1;right:-34px;bottom:-85px;width:200px;aspect-ratio:1;border:1px solid rgba(205,102,143,.12);border-radius:50%;background:rgba(244,211,225,.14);content:""}.game-role-options .game-role-option.active{border-color:#e26a99;background:linear-gradient(115deg,hsla(0,0%,100%,.98),rgba(255,241,247,.92));box-shadow:0 11px 30px rgba(195,83,125,.08),inset 0 0 0 1px rgba(226,106,153,.18)}.game-role-options .game-role-option:active:not(:disabled){transform:scale(.986)}.game-role-options .game-role-copy{position:relative;z-index:2;display:grid;grid-gap:9px;gap:9px;width:61%;margin:0}.game-role-options .game-role-option .game-role-copy strong{color:#49323f;font:650 clamp(19px,5vw,26px)/1.25 var(--font-serif),serif}.game-role-options .game-role-option .game-role-copy span{margin:0;color:#8e7482;font:500 clamp(11px,3vw,13px)/1.5 var(--font-soft)}.game-role-art{position:absolute;right:5px;bottom:-14px;width:46%;height:120%;object-fit:contain;pointer-events:none}.game-role-option:nth-child(2) .game-role-art{transform:rotate(-5deg) scale(.92)}.game-role-options .game-role-indicator{position:absolute;z-index:3;top:12px;right:13px;display:grid;place-items:center;width:25px;height:25px;border:1.5px solid #c9bac3;border-radius:50%;color:#fff;background:hsla(0,0%,100%,.92)}.game-role-options .game-role-option.active .game-role-indicator{border-color:#d35c89;background:#d35c89}.game-setup-note{display:grid;grid-gap:4px;gap:4px;margin:5px 2px 3px;padding:13px 15px;border:1px solid rgba(210,136,166,.14);border-radius:17px;background:hsla(0,0%,100%,.58)}.game-setup-note strong{color:#ab557b;font-size:12px;font-weight:650}.game-setup-note span{color:#8e7581;font-size:11px;line-height:1.45}.game-setup>.game-primary{min-height:51px;margin-top:4px;border-radius:17px;background:linear-gradient(100deg,#e980a5,#e778a2);font-size:15px;box-shadow:0 10px 22px rgba(210,93,139,.15)}.game-setup>.game-primary:active:not(:disabled){transform:scale(.99)}.gomoku-setup-card{position:relative;min-height:185px;overflow:hidden;padding:22px 18px;border-color:hsla(0,0%,100%,.95);border-radius:23px;background:linear-gradient(115deg,hsla(0,0%,100%,.96),rgba(255,241,247,.92))}.gomoku-setup-card>div{position:relative;z-index:2;width:58%}.gomoku-setup-card h2{color:#49323f;font-size:clamp(20px,5.1vw,27px)}.gomoku-setup-card p{font-size:12px}.gomoku-setup-card>img{position:absolute;right:-9px;bottom:-10px;width:48%;height:100%;object-fit:contain}.gomoku-setup-rule{display:flex;align-items:center;gap:11px;min-height:52px;padding:10px 14px;border:1px solid rgba(211,100,143,.15);border-radius:17px;color:#8b6476;background:rgba(255,248,251,.77);font-size:12px}.gomoku-setup-rule svg{color:#d4628d}@media (min-width:700px){.game-library-hero,.game-setup-hero{margin-bottom:28px}.game-library-card{min-height:176px}.game-library-copy{min-height:138px}.game-role-options .game-role-option{min-height:180px}.game-setup{max-width:650px}}@media (max-width:360px){.game-library-card{min-height:118px;padding:12px}.game-library-copy{min-height:94px}.game-library-art{right:24px;width:100px}.game-role-options .game-role-option{min-height:128px;padding:14px}.game-role-art{width:43%}}@media (prefers-reduced-motion:reduce){.game-role-options .game-role-option,.game-setup>.game-primary{transition:none}}.game-stage-head>button:focus-visible{outline:2px solid #c85d86;outline-offset:3px}.image-cropper-backdrop{position:fixed;z-index:10040;inset:0;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 12px max(16px,env(safe-area-inset-bottom));background:rgba(48,29,38,.34);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.image-cropper-dialog{display:grid;width:min(100%,430px);max-height:calc(var(--app-viewport-height, 100dvh) - 32px);overflow:hidden;border:1px solid hsla(0,0%,100%,.72);border-radius:var(--r-card);color:var(--text-1);background:rgba(255,253,253,.98);box-shadow:var(--shadow-float)}.image-cropper-dialog>header{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;min-height:58px;padding:4px 8px 4px 20px;border-bottom:1px solid var(--border)}.image-cropper-dialog>header strong{overflow:hidden;font-family:var(--font-serif);font-size:var(--text-title-size);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.image-cropper-dialog>header button{display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:var(--r-pill);color:var(--text-1);background:var(--card-soft);cursor:pointer}.image-cropper-stage{display:grid;min-height:0;align-content:center;justify-items:center;grid-gap:12px;gap:12px;padding:20px;overflow:auto}.image-cropper-image{position:relative;flex:0 0 auto;overflow:hidden;border-radius:var(--r-media);background:#2d2629;isolation:isolate;touch-action:none;cursor:-webkit-grab;cursor:grab}.image-cropper-image:active{cursor:-webkit-grabbing;cursor:grabbing}.image-cropper-image>img{display:block;max-width:none;object-fit:fill;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:width,height,transform}.image-cropper-image>img,.image-cropper-selection{position:absolute;top:0;left:0;pointer-events:none}.image-cropper-selection{z-index:1;border:2px solid hsla(0,0%,100%,.96);border-radius:var(--r-media);box-shadow:0 0 0 9999px rgba(31,23,27,.58),0 0 0 1px rgba(67,44,56,.16)}.image-cropper-selection.is-circle{border-radius:50%}.image-cropper-stage>p{margin:0;color:var(--text-2);font-family:var(--font-ui)}.image-cropper-error,.image-cropper-stage>p{font-size:var(--text-caption-size);text-align:center}.image-cropper-error{max-width:340px;border-radius:var(--r-chip);padding:8px 12px;color:#9b405e;background:#fde8ee;line-height:1.5}.image-cropper-dialog>footer{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:12px;gap:12px;padding:12px 20px 20px;border-top:1px solid var(--border)}.image-cropper-dialog>footer button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(227,108,146,.18);border-radius:var(--r-pill);color:var(--text-1);background:var(--card);font-weight:700;cursor:pointer}.image-cropper-dialog>footer button:last-child{border:0;color:#fff;background:var(--accent)}.image-cropper-dialog button:disabled{opacity:.52;cursor:wait}.image-cropper-spin{animation:image-cropper-spin .8s linear infinite}@keyframes image-cropper-spin{to{transform:rotate(1turn)}}@media (max-height:620px){.image-cropper-stage{padding-block:12px}.image-cropper-dialog>footer{padding-bottom:12px}}@media (prefers-reduced-motion:reduce){.image-cropper-spin{animation:none}}.add-button:active{transform:scale(.9)}.chat-skeleton{display:grid;grid-gap:14px;gap:14px}.chat-skeleton span{position:relative;overflow:hidden;height:52px;border-radius:24px;background:hsla(43,20%,93%,.7)}.chat-skeleton span:nth-child(2){width:72%;margin-left:auto}.chat-skeleton span:before{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.58),transparent);animation:shimmer 1.2s ease-in-out infinite}.skeleton-card{display:grid;align-content:start;grid-gap:18px;gap:18px}.skeleton-card .poster-frame,.skeleton-line,.skeleton-tags span{position:relative;overflow:hidden;background:hsla(43,20%,93%,.74)}.skeleton-card .poster-frame:before,.skeleton-line:before,.skeleton-tags span:before{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.62),transparent);animation:shimmer 1.3s ease-in-out infinite}.skeleton-line{width:58%;height:22px;border-radius:999px}.skeleton-line.wide{width:78%}.skeleton-tags{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.skeleton-tags span{height:38px;border-radius:999px}@keyframes pageRise{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cardEnter{0%{opacity:0;transform:translateX(var(--card-x,18px)) scale(.965) rotate(.4deg);filter:blur(4px)}to{opacity:1;transform:translateX(0) scale(1) rotate(0);filter:blur(0)}}@keyframes statusBreath{0%,to{box-shadow:0 0 0 5px rgba(46,158,107,.16)}50%{box-shadow:0 0 0 8px rgba(46,158,107,.08)}}@keyframes shimmer{to{transform:translateX(100%)}}@keyframes ambientDrift{0%{transform:scale(1.04) translate3d(-3px,-2px,0)}to{transform:scale(1.08) translate3d(4px,5px,0)}}@keyframes mistBreath{0%{opacity:.72;transform:translateY(0)}to{opacity:1;transform:translateY(-8px)}}@keyframes charmFloat{0%,to{transform:translateY(0) rotate(7deg)}50%{transform:translateY(-8px) rotate(10deg)}}@keyframes softPop{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes authCardIn{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes formItemIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes bubbleIn{0%{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dotJump{0%,to{transform:translateY(0) scale(.92);opacity:.46}50%{transform:translateY(-5px) scale(1.08);opacity:1}}@keyframes typingBubbleBreath{0%,to{transform:translateY(0);box-shadow:0 12px 24px hsla(34,3%,41%,.08),0 0 0 0 rgba(241,120,168,.16)}50%{transform:translateY(-1px);box-shadow:0 15px 28px hsla(34,3%,41%,.1),0 0 0 5px rgba(241,120,168,.06)}}@keyframes pendingShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes timelineRise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pickerRise{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dramaBgFade{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes dramaPhotoIn{0%{opacity:0;filter:blur(5px)}to{opacity:1;filter:blur(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (min-width:431px){.auth-screen{min-height:min(var(--app-viewport-height,100dvh),844px);border-radius:32px;box-shadow:0 30px 80px hsla(34,3%,41%,.18)}.auth-screen.app-view-auth{height:min(var(--app-viewport-height,100dvh),844px)}}@media (max-height:760px){.auth-screen.app-view-auth{padding:max(12px,env(safe-area-inset-top)) 18px max(16px,calc(env(safe-area-inset-bottom) + 12px))}.auth-copy{grid-template-columns:64px minmax(0,1fr);gap:10px;margin:10px auto 14px}.auth-copy h1{font-size:clamp(28px,7.4vw,34px)}.auth-copy .tagline{margin-top:5px;font-size:14px;line-height:1.45}.auth-form{gap:10px}.auth-form.login{margin-top:0}.auth-card{gap:12px;padding:0 16px 16px;border-radius:26px}.auth-card-title,.auth-login-tabs{min-height:52px;margin-inline:-16px;margin-bottom:10px}.auth-card-title strong,.auth-login-tabs button{font-size:16px}.field{gap:4px;min-height:60px;padding:10px 14px;border-radius:18px}.password-field{padding-bottom:24px}.forgot-password-button{right:14px;bottom:6px}.primary-action{min-height:50px;font-size:17px}.auth-switch-row{gap:8px;font-size:13px}.auth-switch-row button{font-size:13px}.auth-agreement{margin-top:0;padding-inline:2px;font-size:11.5px}}@media (max-width:374px){.auth-screen{padding-inline:20px}.wordmark strong{font-size:21px}.character-card-shell{min-height:0;padding:0 4px 4px}.poster-frame{height:clamp(390px,61dvh,510px)}.drama-scene-card{grid-template-columns:88px minmax(0,1fr);gap:10px;min-height:112px;padding:9px}.drama-card-title h2{font-size:17px}.drama-card-body p{font-size:11.5px}.drama-photo{top:48px;bottom:var(--drama-photo-bottom,82px)}.drama-photo img{max-width:min(90%,300px)}.drama-dialogue-dock{right:max(10px,calc(env(safe-area-inset-right) + 8px));bottom:max(10px,calc(env(safe-area-inset-bottom) + 8px));left:max(10px,calc(env(safe-area-inset-left) + 8px));max-height:47%}.drama-dialogue-panel{max-height:min(42dvh,320px);padding:13px 14px 12px}.drama-send{width:36px}.drama-send svg{width:14px;height:14px}}.settings-tab{display:flex;flex-direction:column;height:100%;min-height:0;background:transparent}.settings-topbar{position:relative;display:flex;align-items:center;justify-content:center;height:56px;font-family:var(--serif);font-size:18px;font-weight:600;border-bottom:.5px solid var(--border);color:var(--text-1);flex-shrink:0}.settings-scroll{flex:1 1;min-height:0;overflow-y:auto;padding:16px 16px max(24px,calc(env(safe-area-inset-bottom) + 16px));display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain;overflow-anchor:none;-webkit-overflow-scrolling:touch}