:root{--text:#f7f7fa;--muted:#aaa8b7;--line:rgba(255,255,255,.09);font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI","Apple Color Emoji","Segoe UI Emoji",sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#08090d;color:var(--text)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.hidden{display:none!important}.app{position:relative;z-index:3;max-width:1050px;margin:auto;min-height:100dvh;padding:12px 14px 90px}.screen{display:none}.screen.active{display:block}.backdrop{position:fixed;inset:-24px;z-index:0;background-position:center;background-repeat:no-repeat;pointer-events:none}.blur{opacity:0}.shade{position:fixed;inset:0;z-index:1;background:#08090db8;pointer-events:none}.glow{position:fixed;inset:0;z-index:2;pointer-events:none}.topbar{display:flex;align-items:center;justify-content:space-between}.brandAnchor{display:flex;align-items:center;gap:10px}.brandAnchor img{width:42px;height:42px;object-fit:contain;padding:4px;border-radius:12px;background:#0e0f14c7;border:1px solid var(--line)}.brandAnchor b{font-size:20px}.brandAnchor small{margin-left:7px;color:var(--muted);font-size:9px}.prov{color:#6ee7d8}.ghost,.back,.pill{border:1px solid var(--line);background:#ffffff08;border-radius:12px;padding:8px 10px}.back{width:42px;height:42px;padding:0;font-size:25px;background:#0f1016d1;backdrop-filter:blur(16px)}.tiny{padding:8px}.menuWrap,.roomMenuWrap{position:relative}.menu{position:absolute;right:0;top:48px;z-index:80;width:215px;padding:7px;border:1px solid var(--line);border-radius:14px;background:#101117fc;box-shadow:0 18px 60px #0008}.menu button{width:100%;border:0;background:transparent;text-align:left;padding:10px;border-radius:9px}.menu small{display:block;color:#777582;margin-top:2px}.roomMenu{top:42px}.dangerText{color:#ff8d8d}.homeTitle{text-align:center;margin:20px 0 14px}.homeTitle h1{font-size:30px;margin:0 0 10px}.pill{border-radius:99px;font-size:9px;color:#aaa8b7}.pill.on{border-color:#6ee7d855;color:#dffcf7}.fieldHead{display:flex;align-items:center;justify-content:space-between;margin:7px 2px 9px}.fieldHead>div{display:flex;align-items:center;gap:8px}.fieldHead b{font-size:12px}.fieldHead span{font-size:9px;color:#9b99a6}.newRoom{border:1px solid #6ee7d838;background:#6ee7d80d;color:#c7fff6;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:700}.rooms{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.rooms.compact{gap:6px}.rooms.spacious{gap:14px}.card{--p:#9f8cff;--s:#6ee7d8;--hc1:#172033;--hc2:#281329;--hb1:#54d8ed;--hb2:#ff58b9;position:relative;overflow:hidden;min-height:158px;padding:0;text-align:left;border:2px solid transparent;border-radius:22px;background:linear-gradient(145deg,#171821e8,#0b0c11ee) padding-box,linear-gradient(120deg,var(--hb1),var(--hb2)) border-box;color:#fff}.card.big{grid-column:1/-1;min-height:182px}.surface-glass .card{backdrop-filter:blur(18px);background:linear-gradient(145deg,#181923b3,#0b0c11bd) padding-box,linear-gradient(120deg,var(--hb1),var(--hb2)) border-box}.surface-soft .card{background:linear-gradient(145deg,#202129ed,#111218f0) padding-box,linear-gradient(120deg,var(--hb1),var(--hb2)) border-box}.surface-solid .card{background:linear-gradient(#111218,#111218) padding-box,linear-gradient(120deg,var(--hb1),var(--hb2)) border-box}.surface-minimal .card{background:linear-gradient(#0a0b107a,#0a0b107a) padding-box,linear-gradient(120deg,var(--hb1),var(--hb2)) border-box;border-width:1px}.cbg,.cblur{position:absolute;inset:-10px;background-position:center;background-repeat:no-repeat}.cblur{opacity:0}.wash{position:absolute;inset:0;background:linear-gradient(135deg,color-mix(in srgb,var(--hc1) 48%,transparent),color-mix(in srgb,var(--hc2) 42%,transparent))}.readability{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(4,5,9,.70) 0%,rgba(4,5,9,.42) 58%,rgba(4,5,9,.20) 100%),linear-gradient(0deg,rgba(4,5,9,.72) 0%,transparent 48%,rgba(4,5,9,.28) 100%)}.cardContent{position:relative;z-index:2;height:100%;min-height:154px;padding:12px;display:grid;grid-template-rows:auto minmax(44px,1fr) auto;gap:9px}.card.big .cardContent{min-height:178px}.idrow,.identity{display:flex;align-items:center}.idrow{justify-content:space-between;min-width:0}.identity{gap:9px;min-width:0}.idcopy{min-width:0}.avatar{--p:#9f8cff;--s:#6ee7d8;flex:0 0 auto;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-weight:800;background:linear-gradient(145deg,var(--p),var(--s));background-repeat:no-repeat;border:1px solid #ffffff33;overflow:hidden}.avatar.img{color:transparent}.name{font-weight:850;font-size:15px;color:#fff;text-shadow:0 1px 8px #000,0 0 2px #000;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.08}.name small{font-size:7px;color:#e7e6ed}.rel{font-size:9px;color:#eceaf1;margin-top:3px;text-shadow:0 1px 6px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.identityAccent{display:flex;gap:3px;margin-top:5px}.identityAccent i{width:18px;height:4px;border-radius:99px}.unread{min-width:22px;height:22px;border-radius:99px;display:grid;place-items:center;background:#0008;border:1px solid #ffffff28;font-size:9px}.attnmark{position:absolute;right:10px;top:10px;z-index:4;min-width:30px;height:30px;border-radius:99px;display:grid;place-items:center;color:#1b1206;font-weight:900;background:linear-gradient(145deg,#ffe27c,#ff8c62);box-shadow:0 0 18px #ff914b66}.previewZone{align-self:end;min-width:0}.previewText{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:92%;width:max-content;color:#fff;font-size:12px;line-height:1.28;text-shadow:0 1px 8px #000,0 0 2px #000;padding:5px 7px;margin-left:-7px;border-radius:9px;background:linear-gradient(90deg,rgba(0,0,0,.32),transparent)}.cardFooter{min-width:0;display:grid;gap:5px}.traceRow{display:flex;align-items:center;gap:6px;min-width:0}.emotionDots{display:flex;gap:3px;flex:0 0 auto}.emotionDots i{width:20px;height:3px;border-radius:99px}.traceText{font-size:8px;color:#dedce5;text-shadow:0 1px 5px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reason{display:none;font-size:8px;line-height:1.25;color:#f1eff5;text-shadow:0 1px 6px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:4px;border-top:1px solid #ffffff26}.field-on .reason{display:block}.field-on .card .readability{background:linear-gradient(90deg,rgba(3,4,7,.86) 0%,rgba(3,4,7,.62) 66%,rgba(3,4,7,.36) 100%),linear-gradient(0deg,rgba(3,4,7,.88) 0%,rgba(3,4,7,.22) 62%,rgba(3,4,7,.46) 100%)}.field-on .card .previewText{background:rgba(0,0,0,.46);backdrop-filter:blur(3px)}.field-on .cardContent{grid-template-rows:auto minmax(42px,1fr) auto}.emptyState{text-align:center;padding:55px 20px 80px}.emptyOrb{width:70px;height:70px;margin:auto;border-radius:25px;display:grid;place-items:center;font-weight:900;font-size:28px;background:linear-gradient(145deg,#9f8cff44,#6ee7d833);border:1px solid #ffffff1b}.emptyState p{max-width:340px;margin:0 auto 18px;color:#9795a3;font-size:12px}.primary{border:0!important;background:linear-gradient(145deg,#a58cff,#6d77ff)!important;font-weight:800}.search{position:fixed;left:50%;bottom:calc(10px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:50;width:min(620px,calc(100% - 20px));display:flex;gap:8px;align-items:center;padding:9px 12px;border:1px solid #ffffff1c;border-radius:19px;background:#0f1016ed;backdrop-filter:blur(18px)}.search input{flex:1;border:0;outline:0;background:transparent}.roomHeader{position:sticky;top:0;z-index:20;margin:0 -14px 10px;padding:9px 14px 8px;background:transparent}.roomTop{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start}.roomMetaPanel{position:relative;overflow:visible;border:1px solid #ffffff1d;border-radius:22px;padding:8px;background:linear-gradient(145deg,#12131ad1,#090a0fc2);backdrop-filter:blur(18px);box-shadow:0 14px 38px #0005}.metaTop{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.roomActions{display:flex;gap:6px}.roomName{font-size:18px;font-weight:800;overflow-wrap:anywhere}.roomSub{font-size:9px;color:#d2cfdbb8;margin-top:2px}.viewer{display:grid;grid-template-columns:auto 1fr 1fr;align-items:center;gap:4px;margin-top:8px;padding:3px;border:1px solid #ffffff17;border-radius:15px;background:#08090d73}.viewer span{font-size:8px;color:#aaa7b7;padding:0 8px;text-transform:uppercase;letter-spacing:.08em}.viewer button{border:0;background:transparent;padding:8px;border-radius:11px;color:#aaa8b7}.viewer button.active{background:#9f8cff28;color:#fff}.phone{--r:18px;position:relative;height:calc(100dvh - 188px);min-height:470px;display:grid;grid-template-rows:1fr auto;overflow:hidden;border:1px solid #ffffff18;border-radius:24px;background:#111219}.roomBackdrop{position:absolute;inset:-14px;background-position:center;background-repeat:no-repeat}.roomOverlay{position:absolute;inset:0;background:#08090da3}.messages{position:relative;z-index:2;overflow:auto;padding:16px 13px 22px;-webkit-user-select:none;user-select:none}.g{margin:13px 0;display:flex;flex-direction:column}.g.mine{align-items:flex-end}.g.theirs{align-items:flex-start}.who{font-size:8px;color:#c0bec9;margin:0 6px 4px;text-shadow:0 1px 5px #000}.msg{position:relative;max-width:85%;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:pan-y;cursor:pointer}.msg *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.msg.longpressing{filter:brightness(1.12);transform:scale(.995)}.bubble{padding:10px 13px;border-radius:var(--r);border:1px solid #ffffff1d;background:#64667d2e;font-size:15px;line-height:1.3}.bubble mark{background:#8e6b35;color:inherit;padding:0 .08em;border-radius:.18em}.playful .bubble{border-radius:calc(var(--r) + 6px);background:linear-gradient(135deg,#ff76a933,#c45fff1c);border-color:#ff84ab73;font-weight:650}.warm .bubble{font-family:Georgia,"Apple Color Emoji",serif;background:linear-gradient(145deg,#f7aa5b29,#ffce8e17);border-color:#ffbe7570}.serious .bubble{border-radius:max(5px,calc(var(--r) - 8px));background:#6e829626;border-color:#bcd3e675;font-weight:750;box-shadow:inset 4px 0 #c5e1f599}.hype .bubble{background:linear-gradient(135deg,#18d9eb26,#745bff33,#ff4ab926);border-color:#5adaf08f;font-weight:850}.vulnerable .bubble{font-family:Georgia,"Apple Color Emoji",serif;font-style:italic;background:linear-gradient(145deg,#e784b12a,#9984e41f);border-color:#e19bc366}.dry .bubble{font-style:italic;border-style:dashed}.anxious .bubble{font-family:Georgia,serif;font-style:italic;border-color:#84a8ff80}.venting .bubble{border-left:4px solid #f18237b8}.support .bubble{border-color:#87d3c080}.subtle .bubble{font-size:14px}.strong .bubble{font-size:16px}.hype.strong .bubble{font-size:18px}.unsure .bubble{font-style:italic;border-right-style:dashed;border-bottom-style:dashed}.qmark{position:absolute;left:-8px;top:-8px;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#7e7a9acc;border:1px solid #dcd8ee66;font-weight:800}.attn .msg{padding:3px}.attn .msg:before{content:"";position:absolute;inset:-2px;border-radius:calc(var(--r) + 8px);background:linear-gradient(110deg,#ffd15c,#ff7a5c);filter:drop-shadow(0 0 8px #ffa0464d)}.attn .bubble{position:relative}.bang{position:absolute;right:-8px;top:-9px;z-index:4;min-width:27px;height:27px;border-radius:99px;display:grid;place-items:center;color:#1b1206;font-weight:900;background:linear-gradient(145deg,#ffe27c,#ff8c62)}.reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;max-width:85%}.mine .reactions{justify-content:flex-end}.reactionPill{display:inline-flex;align-items:center;gap:3px;min-height:23px;padding:2px 7px;border-radius:999px;border:1px solid #ffffff1b;background:#101118c7;backdrop-filter:blur(10px);font-size:12px;box-shadow:0 2px 10px #0005}.reactionPill span{font-size:8px;color:#d4d1dc}.reactionPill.mineReact{border-color:#9f8cff88;background:#9f8cff20;box-shadow:0 0 0 1px #9f8cff22}.reactionBackdrop{position:absolute;inset:0;z-index:5;background:#05060920}.reactionBar{position:absolute;z-index:12;left:50%;width:max-content;max-width:calc(100% - 20px);transform:translateX(-50%);padding:7px;border:1px solid #ffffff24;border-radius:18px;background:#11121bf4;box-shadow:0 18px 48px #000b;backdrop-filter:blur(18px)}.reactionPrimary,.reactionMore{display:flex;gap:4px;align-items:center}.reactionBar button{width:38px;height:38px;border:1px solid transparent;border-radius:12px;background:transparent;font-size:20px}.reactionBar button:active{background:#ffffff12;transform:scale(.94)}.reactionMoreButton{color:#c8c5d2!important;font-size:22px!important;border-color:#ffffff16!important}.reactionMore{margin-top:5px;padding-top:5px;border-top:1px solid #ffffff10}.reactionHint{text-align:center;color:#777584;font-size:7px;margin-top:5px}.reactorPop{position:absolute;z-index:13;left:50%;width:min(260px,calc(100% - 26px));transform:translateX(-50%);padding:11px;border:1px solid #ffffff22;border-radius:16px;background:#11121bf7;box-shadow:0 18px 48px #000b;backdrop-filter:blur(18px)}.reactorHead{display:flex;align-items:center;justify-content:space-between;padding-bottom:7px;border-bottom:1px solid #ffffff10}.reactorHead b{font-size:13px}.reactorHead button{width:27px;height:27px;border:1px solid #ffffff13;border-radius:50%;background:#ffffff08}.reactorPerson{display:flex;align-items:center;gap:8px;padding:8px 2px;border-bottom:1px solid #ffffff09;font-size:10px}.reactorPerson i{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(145deg,#9f8cff44,#6ee7d844);font-style:normal;font-weight:800}.reactorPop>small{display:block;margin-top:8px;color:#777584;font-size:7px;line-height:1.35}.composer{position:relative;z-index:3;padding:8px;border-top:1px solid var(--line);background:#08090ded}.compose{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:6px;align-items:end;padding:6px;border:1px solid var(--line);border-radius:18px;background:#ffffff08}.exprButton{border:0;border-radius:99px;padding:7px 9px;background:#7971aa1a;font-size:9px;align-self:center}.messageInput{min-height:32px;max-height:104px;overflow:auto;outline:0;padding:7px 2px;line-height:1.35;font-size:16px;white-space:pre-wrap;word-break:break-word}.messageInput:empty:before{content:attr(data-placeholder);color:#858390}.messageInput mark{background:#8e6b35!important;color:inherit}.formatButton{width:35px;height:35px;border:1px solid #ffffff1b;border-radius:50%;background:#ffffff08;font-size:12px}.formatButton.active{background:#9f8cff22;border-color:#9f8cff66}.send{width:35px;height:35px;border:0;border-radius:50%;background:linear-gradient(145deg,#a58cff,#6d77ff);font-size:18px}.formatBar{position:absolute;right:8px;bottom:66px;z-index:9;display:flex;gap:5px;padding:7px;border:1px solid #ffffff1e;border-radius:15px;background:#0e0f15f6;box-shadow:0 16px 50px #0008;backdrop-filter:blur(16px)}.formatBar button{min-width:54px;border:1px solid #ffffff10;border-radius:10px;background:#ffffff07;padding:7px 8px;display:grid;gap:2px;place-items:center}.formatBar small{font-size:7px;color:#8d8b99}.highlightTool span{padding:0 4px;border-radius:3px;background:#8e6b35}.exprBackdrop{position:absolute;inset:0;z-index:7;background:#0304078c;backdrop-filter:blur(2px)}.exprSheet{position:absolute;left:8px;right:8px;bottom:66px;z-index:8;max-height:82%;overflow:hidden;border:1px solid #ffffff1f;border-radius:20px;background:#0e0f15fd;display:grid;grid-template-rows:auto 1fr auto}.exprSheet header{display:flex;justify-content:space-between;align-items:center;padding:13px 14px 11px;border-bottom:1px solid #ffffff12}.exprSheet h2{margin:0;font-size:16px}.exprSheet header p{margin:3px 0 0;font-size:9px;color:var(--muted)}.circle{width:31px;height:31px;border-radius:50%;border:1px solid var(--line);background:#ffffff08;font-size:18px}.exprScroll{overflow:auto;padding:11px}.exprPreview{display:flex;justify-content:space-between;align-items:center;padding:10px 11px;margin-bottom:9px;border:1px solid #ffffff10;border-radius:13px;background:#ffffff06}.exprPreview span{font-size:8px;letter-spacing:.12em;color:#7c7a89}.exprPreview div{padding:7px 10px;border:1px solid #ffffff1f;border-radius:12px;font-size:12px}.tones{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tone{min-height:96px;text-align:left;border:1px solid var(--line);border-radius:14px;padding:12px;background:#ffffff06}.tone b{display:block;font-size:14px;margin-bottom:6px}.tone small{font-size:9px;color:#777685}.tone.active{background:#9f8cff12}.tone.playful b{color:#ff8ab7}.tone.warm b{font-family:Georgia,serif;color:#ffc57f}.tone.serious b{color:#d5e8f7}.tone.hype b{color:#62e7f3}.tone.vulnerable b{font-family:Georgia,serif;font-style:italic;color:#f0a7cb}.exprSection{margin-top:11px;padding-top:11px;border-top:1px solid #ffffff10}.exprSection>label{display:flex;justify-content:space-between;margin-bottom:8px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#aaa9b7}.choiceRow{display:grid;grid-template-columns:1fr 1fr;gap:6px}.choiceRow.three{grid-template-columns:repeat(3,1fr)}.choiceRow button,.chips button{border:1px solid var(--line);background:#ffffff08;border-radius:10px;padding:9px;font-size:9px;color:#aaa8b7}.choiceRow button.active,.chips button.active{color:#fff;background:#9f8cff1a}.chips{display:flex;flex-wrap:wrap;gap:6px}.toggle{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:12px;padding:10px;background:#ffffff08}.toggle.spaced{margin-top:7px}.toggle.active{background:#9f8cff12}.toggle i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#7875962e;font-style:normal;font-weight:900}.toggle span b{display:block;font-size:10px}.toggle span small{display:block;font-size:8px;color:#aaa8b7}.toggle u{width:34px;height:19px;padding:2px;border-radius:99px;background:#ffffff14;text-decoration:none}.toggle u:after{content:"";display:block;width:15px;height:15px;border-radius:50%;background:#9a99a8}.toggle.active u:after{transform:translateX(15px);background:#f2efff}.done{margin:9px 10px 10px;border:0;border-radius:11px;padding:10px;background:linear-gradient(145deg,#a58cff,#6d77ff);font-weight:800}dialog{border:1px solid #ffffff1f;border-radius:22px;padding:0;color:#fff;background:#0f1016fd;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#040408c7;backdrop-filter:blur(5px)}.flowDialog{width:min(560px,calc(100% - 16px));max-height:90dvh;padding:16px;overflow:auto}.flowHead{display:flex;justify-content:space-between;gap:10px;padding-bottom:13px;border-bottom:1px solid var(--line)}.flowHead span,.sectionHead span,.customHead>div>span{font-size:8px;letter-spacing:.15em;color:#777585;text-transform:uppercase}.flowHead h2{margin:3px 0 5px;font-size:25px}.flowHead p{margin:0;color:#8b8998;font-size:10px}.step{padding:14px 0;border-bottom:1px solid #ffffff10}.step>label,.step label{display:block;color:#aaa8b7;font-size:10px}.step input{width:100%;margin-top:6px;padding:11px;border:1px solid var(--line);border-radius:11px;background:#ffffff08;outline:0}.choiceCards,.closeness{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}.choiceCards.two{grid-template-columns:1fr 1fr}.choiceCards button,.closeness button{border:1px solid var(--line);background:#ffffff08;border-radius:11px;padding:10px 6px;font-size:10px}.choiceCards button.active,.closeness button.active{background:#9f8cff1c;border-color:#9f8cff66}.uploadRow{display:grid;grid-template-columns:1fr 1fr;gap:7px}.uploadRow label,.uploadRow button{border:1px solid var(--line);background:#ffffff08;border-radius:10px;padding:9px;font-size:9px;text-align:center}.uploadRow input{display:none}.createAvatarPreview{width:70px;height:70px;margin:12px auto 0;border-radius:24px;display:grid;place-items:center;background:linear-gradient(145deg,#9f8cff,#6ee7d8);font-weight:900;font-size:25px;background-position:center;background-size:cover}.flowFooter,.confirmActions,.saveRow{display:flex;gap:8px;margin-top:14px}.flowFooter button,.confirmActions button,.saveRow button{flex:1;padding:11px;border-radius:11px;border:1px solid var(--line);background:#ffffff08}.archivedList{display:grid;gap:8px;margin-top:12px}.archivedItem{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:14px;background:#ffffff06}.archivedItem .avatar{width:38px;height:38px}.archivedItem b{display:block;font-size:12px}.archivedItem small{color:#858391}.archivedButtons{display:flex;gap:5px}.archivedButtons button{border:1px solid var(--line);background:#ffffff08;border-radius:9px;padding:7px;font-size:9px}.confirmDialog{width:min(420px,calc(100% - 24px));padding:20px;text-align:center}.confirmIcon{width:48px;height:48px;margin:auto;border-radius:50%;display:grid;place-items:center;background:#ff696922;border:1px solid #ff7d7d55;color:#ff9a9a;font-weight:900;font-size:22px}.confirmDialog h2{margin:12px 0 5px}.confirmDialog p{color:#9694a2;font-size:11px;line-height:1.45}.danger{background:#c94c56!important;border-color:#df606a!important}.customDialog{width:min(980px,calc(100% - 16px));height:min(90dvh,900px)}.customGrid{height:100%;display:grid;grid-template-columns:minmax(300px,.9fr) minmax(360px,1.1fr)}.controls{overflow:auto;padding:15px;border-right:1px solid var(--line)}.customHead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line)}.customHead h2{margin:2px 0 5px;font-size:25px}.customHead p,.sectionHead p{font-size:9px;color:#8b8998;margin:4px 0}.previewJump{margin-top:10px;width:100%;border:1px solid #9f8cff42;background:#9f8cff14;border-radius:11px;padding:10px;font-weight:700}.customSection{margin-top:14px;padding:14px;border:1px solid #ffffff16;border-radius:18px;background:#ffffff06}.sectionHead{padding-bottom:11px;margin-bottom:12px;border-bottom:1px solid #ffffff13}.sectionHead h3{font-size:18px;margin:3px 0}.field{display:block;margin-bottom:10px;font-size:9px;color:#8f8d9a}.field input[type=text],.field select{width:100%;margin-top:5px;border:1px solid var(--line);background:#ffffff08;border-radius:10px;padding:9px}.colors{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.fourColors{grid-template-columns:1fr 1fr}.colors label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px;font-size:9px;color:var(--muted)}.colors input{width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:transparent}.wideSecondary{width:100%;margin-top:10px;border:1px solid var(--line);border-radius:10px;background:#ffffff08;padding:9px;font-size:9px}.range{margin:9px 0}.range label{display:flex;justify-content:space-between;font-size:9px;color:#8f8d9a}.range input{width:100%;accent-color:#9f8cff}.modeGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.modeGrid button,.optionGrid button,.backControls{border:1px solid var(--line);background:#ffffff08;border-radius:10px;padding:9px;font-size:9px}.modeGrid button.active,.optionGrid button.active{background:#9f8cff24}.optionGrid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:5px}.previewPanel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:15px;min-height:0}.roomPreviewPanel{grid-template-rows:auto auto minmax(0,1fr) auto}.previewTitle{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px}.previewTitle h3{margin:0;font-size:18px}.previewTitle span{font-size:8px;color:#7e7c89}.previewTabs{display:inline-flex;gap:6px;margin-bottom:9px;width:max-content}.previewTabs button{min-width:86px;height:38px;border:1px solid var(--line);background:#ffffff08;border-radius:11px;padding:0 14px;font-size:10px}.previewTabs button.active{background:#9f8cff1f}.previewStage{position:relative;overflow:auto;min-height:0;border:1px solid var(--line);border-radius:18px;background:#0b0c11;padding:13px}.homePreview{position:relative;overflow:hidden;min-height:100%;border-radius:16px;background:#111219}.previewBg{position:absolute;inset:-10px;background-position:center;background-repeat:no-repeat}.previewShade{position:absolute;inset:0;background:#08090da3}.homePreviewContent{position:relative;z-index:2;padding:14px}.miniBrand{display:flex;align-items:center;gap:9px}.miniBrand img{width:34px;height:34px}.homePreviewContent>h2{text-align:center}.hpGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hpCard{min-height:102px;border:1px solid #ffffff1f;border-radius:16px;padding:10px;background:#0f1016a8}.hpCard.big{grid-column:1/-1}.truePreviewStage .card{width:100%;min-height:180px}.truePreviewStage #truePreviewInside{position:relative;width:100%;overflow:hidden;border-radius:18px}.liveClone{position:absolute;left:0;top:0;transform-origin:top left;pointer-events:none}.liveClone .composer,.liveClone .exprSheet,.liveClone .exprBackdrop,.liveClone .reactionBackdrop,.liveClone .reactionBar,.liveClone .reactorPop,.liveClone .messageActions{display:none!important}.toast{position:fixed;z-index:100;left:50%;bottom:90px;transform:translateX(-50%);opacity:0;padding:8px 12px;border:1px solid var(--line);border-radius:99px;background:#1b1c24;font-size:10px;transition:.2s}.toast.show{opacity:1}
@media(max-width:760px){.app{padding:9px 8px 88px}.rooms{grid-template-columns:1fr 1fr}.card.big{grid-column:1/-1}.roomHeader{margin:0 -8px 8px;padding:6px 8px}.roomTop{gap:8px}.metaTop{grid-template-columns:1fr}.roomActions{justify-content:flex-end;position:absolute;right:7px;top:7px}.roomMetaPanel{padding:8px 8px 7px}.roomMetaPanel .identity{padding-right:124px;min-height:46px}.viewer{margin-top:8px}.phone{height:calc(100dvh - 184px);min-height:455px}.customDialog{width:calc(100% - 10px);height:94dvh}.customGrid{display:block;overflow:auto}.controls{overflow:visible;border:0}.previewPanel{height:560px;padding-top:4px}.roomPreviewPanel{height:610px}.uploadRow{grid-template-columns:1fr}.modeGrid{grid-template-columns:1fr 1fr}.fieldHead{align-items:flex-start}.fieldHead>div{flex-direction:column;align-items:flex-end;gap:5px}.choiceCards,.closeness{grid-template-columns:1fr 1fr}.formatBar{left:8px;right:8px;justify-content:space-between}.formatBar button{flex:1;min-width:0}.cardContent{padding:11px}.card:not(.big){min-height:168px}.card:not(.big) .cardContent{min-height:164px}.name{font-size:14px}.previewText{font-size:11px}.traceText,.reason{font-size:7.5px}.reactionBar button{width:36px;height:36px;font-size:19px}.reactionBar{padding:6px}}
.reactionActionButton{color:#d6d3df!important;font-size:16px!important;letter-spacing:1px;border-color:#ffffff16!important}
.messageActions{position:absolute;z-index:14;left:50%;width:min(275px,calc(100% - 26px));transform:translateX(-50%);padding:7px;border:1px solid #ffffff24;border-radius:18px;background:#11121bf7;box-shadow:0 18px 48px #000b;backdrop-filter:blur(18px)}
.messageActionsTitle{padding:6px 9px 8px;color:#7f7d8b;font-size:8px;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #ffffff0d}
.messageActions>button{width:100%;display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:center;text-align:left;border:0;background:transparent;border-radius:11px;padding:9px;color:#f5f4f8}
.messageActions>button:active{background:#ffffff0b}
.messageActions>button>span{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:#ffffff09;font-size:15px}
.messageActions>button b{display:block;font-size:11px}.messageActions>button small{display:block;margin-top:2px;color:#858391;font-size:8px}
.messageActions .actionDanger b,.messageActions .actionDanger>span{color:#ff9097}
.editedMark{margin-top:3px;padding:0 6px;font-size:7px;color:#858391}.mine .editedMark{text-align:right}.theirs .editedMark{text-align:left}
.editBanner{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 2px 7px;padding:8px 10px;border:1px solid #9f8cff43;border-left:3px solid #9f8cff;border-radius:12px;background:#9f8cff12}
.editBanner b{display:block;font-size:10px}.editBanner small{display:block;margin-top:2px;font-size:8px;color:#9b99a7}
.editBanner button{width:28px;height:28px;border-radius:50%;border:1px solid #ffffff17;background:#ffffff08;font-size:17px}
.composer.editing .compose{border-color:#9f8cff50;box-shadow:0 0 0 1px #9f8cff12}
.composer.editing .send{background:linear-gradient(145deg,#c19cff,#7b7cff)}
@media(max-width:760px){.reactionBar button{width:34px;height:36px}.reactionActionButton{font-size:14px!important}.messageActions{width:min(265px,calc(100% - 24px))}}


/* V0.12.2.4 — optional Home Card color + border */
.card{
  --cardBorder:linear-gradient(120deg,var(--hb1),var(--hb2));
  --cardWash:linear-gradient(135deg,var(--hc1),var(--hc2));
  --cardWashOpacity:.46;
  background:linear-gradient(145deg,#171821e8,#0b0c11ee) padding-box,var(--cardBorder) border-box;
}
.surface-glass .card{background:linear-gradient(145deg,#181923b3,#0b0c11bd) padding-box,var(--cardBorder) border-box}
.surface-soft .card{background:linear-gradient(145deg,#202129ed,#111218f0) padding-box,var(--cardBorder) border-box}
.surface-solid .card{background:linear-gradient(#111218,#111218) padding-box,var(--cardBorder) border-box}
.surface-minimal .card{background:linear-gradient(#0a0b107a,#0a0b107a) padding-box,var(--cardBorder) border-box}
.wash{background:var(--cardWash);opacity:var(--cardWashOpacity)}
.optionGrid.three{grid-template-columns:repeat(3,1fr)}
.homeCardSection .field{margin-top:10px}
.cardBorderField{margin-top:14px!important}
.controlNote{margin:-3px 0 10px;padding:8px 9px;border:1px solid #ffffff10;border-radius:10px;background:#ffffff05;color:#9d9ba8;font-size:8.5px;line-height:1.45}
.disabledControl{opacity:.34;pointer-events:none;filter:saturate(.45)}


/* =========================================================
   Room(~) V0.13.0 — Moments(~)
   CELEBRATE / LOVE / REVEAL
   ========================================================= */
.momentProv{color:#6ee7d8}
.momentIntro{margin:5px 0 9px;color:#8e8c99;font-size:8.5px;line-height:1.45}
.momentGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.momentGrid button{min-height:74px;display:flex;align-items:center;gap:8px;text-align:left;border:1px solid var(--line);background:#ffffff07;border-radius:13px;padding:9px;color:#d8d6df;transition:.18s ease}
.momentGrid button:hover{background:#ffffff0d;transform:translateY(-1px)}
.momentGrid button.active{border-color:#9f8cff78;background:#9f8cff17;box-shadow:0 0 0 1px #9f8cff12 inset}
.momentGrid button[data-moment="celebrate"].active{border-color:#ffd36c7d;background:linear-gradient(145deg,#ffd86e14,#ff8c6f0f)}
.momentGrid button[data-moment="love"].active{border-color:#ff89b374;background:linear-gradient(145deg,#ff91ad16,#ff6d9710)}
.momentGrid button[data-moment="reveal"].active{border-color:#81dce174;background:linear-gradient(145deg,#78dce515,#8f8cff10)}
.momentGrid i{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:#ffffff09;font-style:normal;font-size:18px;flex:0 0 auto}
.momentGrid span{min-width:0}
.momentGrid b{display:block;font-size:9.5px;letter-spacing:.01em}
.momentGrid small{display:block;margin-top:2px;color:#898795;font-size:7.5px;line-height:1.3}
.momentHint{display:block;margin-top:8px;color:#73717f;font-size:7.5px;line-height:1.45}

.momentStage{position:absolute;inset:0;z-index:41;pointer-events:none;overflow:hidden;border-radius:inherit}
.momentConfetti{position:absolute;left:var(--x);top:-24px;width:8px;height:14px;border-radius:2px;background:#ffd66e;opacity:0;animation:momentConfettiFall var(--dur) cubic-bezier(.18,.7,.25,1) var(--delay) forwards;transform:translateX(0) rotate(0deg)}
.momentConfetti:nth-child(4n+2){background:#ff78ad}.momentConfetti:nth-child(4n+3){background:#55e5f3}.momentConfetti:nth-child(4n){background:#a88fff}
@keyframes momentConfettiFall{0%{opacity:0;transform:translate(0,-20px) rotate(0)}8%{opacity:1}100%{opacity:0;transform:translate(var(--drift),calc(100dvh + 50px)) rotate(var(--rot))}}
.momentCelebrate:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,#ffd66e24,transparent 42%);animation:momentRoomPulse 1.15s ease-out forwards}

.momentHeart{position:absolute;left:var(--x);bottom:10%;font-style:normal;font-size:25px;color:#ff729f;opacity:0;text-shadow:0 4px 18px #ff4f8a66;animation:momentHeartFloat 2.25s ease-out var(--delay) forwards;transform:translateX(0) scale(var(--scale))}
.momentHeart:nth-child(3n){color:#ffb0c7}.momentHeart:nth-child(4n){font-size:19px}
@keyframes momentHeartFloat{0%{opacity:0;transform:translate(0,22px) scale(calc(var(--scale)*.7))}15%{opacity:.95}100%{opacity:0;transform:translate(var(--drift),-420px) scale(var(--scale)) rotate(10deg)}}
.momentLove:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 60%,#ff779622,transparent 48%);animation:momentRoomPulse 1.55s ease-out forwards}
@keyframes momentRoomPulse{0%{opacity:0}22%{opacity:1}100%{opacity:0}}

.revealRipple{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px;border-radius:50%;display:grid;place-items:center;background:#0a0c12bd;border:1px solid #b8eaff66;font-size:30px;box-shadow:0 0 0 0 #8fe7ef35;animation:momentRevealPulse 1.45s ease-out forwards}
@keyframes momentRevealPulse{0%{opacity:0;transform:scale(.65);box-shadow:0 0 0 0 #8fe7ef44}18%{opacity:1}75%{opacity:.92;box-shadow:0 0 0 38px #8fe7ef00}100%{opacity:0;transform:scale(1.06)}}

.momentTargetCelebrate .bubble{animation:targetCelebrate 1.35s ease-out}
.momentTargetLove .bubble{animation:targetLove 1.55s ease-out}
.momentTargetReveal .bubble,.revealJustOpened .bubble{animation:targetReveal 1.25s ease-out}
@keyframes targetCelebrate{0%,100%{filter:none}20%{filter:brightness(1.3);box-shadow:0 0 0 3px #ffd36d2c,0 0 34px #ffd36d28}48%{transform:scale(1.025)}}
@keyframes targetLove{0%,100%{filter:none}25%{filter:brightness(1.18);box-shadow:0 0 0 3px #ff82ac25,0 0 34px #ff82ac2d}55%{transform:scale(1.018)}}
@keyframes targetReveal{0%{filter:blur(5px);opacity:.45;transform:scale(.98)}45%{filter:blur(0);opacity:1}100%{transform:scale(1)}}

.momentTrace{width:max-content;max-width:75%;display:flex;align-items:center;gap:4px;margin-top:4px;padding:3px 7px;border:1px solid #ffffff12;border-radius:999px;background:#08090da8;color:#9896a3;font-size:7px;letter-spacing:.01em}
.g.mine .momentTrace{margin-left:auto}
.momentTrace span{font-size:9px}
.momentTrace.celebrate{border-color:#ffd36d24;color:#d7c58f}
.momentTrace.love{border-color:#ff82ac2a;color:#e5a6ba}
.momentTrace.reveal{border-color:#7cdde22d;color:#9fcdd1}

.revealLocked{min-width:210px;max-width:min(78%,360px)}
.revealCover{width:100%;min-height:74px;display:flex;align-items:center;gap:10px;border:1px solid #82dae050;border-radius:18px;padding:12px 14px;background:
linear-gradient(115deg,#0c1118ed,#161323ed),
repeating-linear-gradient(120deg,#ffffff06 0 8px,transparent 8px 16px);
color:#e9fbfc;text-align:left;box-shadow:0 10px 30px #0004;overflow:hidden;position:relative}
.revealCover:before{content:"";position:absolute;inset:-40%;background:linear-gradient(105deg,transparent 35%,#9eeef11a 49%,transparent 63%);animation:revealShimmer 2.2s linear infinite}
.revealCover>i,.revealCover>span{position:relative;z-index:1}
.revealCover>i{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#78dce514;font-style:normal;font-size:18px}
.revealCover b{display:block;font-size:11px}
.revealCover small{display:block;margin-top:2px;color:#8ba6a9;font-size:8px}
@keyframes revealShimmer{from{transform:translateX(-30%)}to{transform:translateX(30%)}}

@media(max-width:760px){
  .momentGrid{grid-template-columns:1fr}
  .momentGrid button{min-height:56px}
  .revealLocked{max-width:88%;min-width:190px}
  .momentHeart{font-size:21px}
}
@media(prefers-reduced-motion:reduce){
  .momentConfetti,.momentHeart,.momentCelebrate:after,.momentLove:after,.revealRipple,.momentTargetCelebrate .bubble,.momentTargetLove .bubble,.momentTargetReveal .bubble,.revealJustOpened .bubble,.revealCover:before{animation-duration:.01ms!important;animation-iteration-count:1!important}
}


/* V0.13.0.1 — CELEBRATE timing + stronger party vibe */
.momentCelebrate:after{
  background:
    radial-gradient(circle at 50% 28%,#ffd66e2c,transparent 40%),
    radial-gradient(circle at 22% 48%,#ff78ad18,transparent 28%),
    radial-gradient(circle at 78% 44%,#55e5f318,transparent 30%);
  animation:momentRoomPulse 2.6s ease-out forwards;
}
.momentCelebrate:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 12% 18%,#fff7 0 2px,transparent 3px),
    radial-gradient(circle at 31% 11%,#fff8 0 1.5px,transparent 2.5px),
    radial-gradient(circle at 70% 17%,#fff8 0 2px,transparent 3px),
    radial-gradient(circle at 87% 27%,#fff7 0 1.5px,transparent 2.5px),
    radial-gradient(circle at 55% 9%,#fff8 0 1.5px,transparent 2.5px);
  opacity:0;
  animation:momentPartyTwinkle 3.8s ease-out forwards;
}
@keyframes momentPartyTwinkle{
  0%{opacity:0;transform:scale(.98)}
  15%{opacity:1}
  55%{opacity:.8}
  100%{opacity:0;transform:scale(1.03)}
}
.momentPartyBurst{
  position:absolute;
  z-index:2;
  font-size:30px;
  line-height:1;
  opacity:0;
  filter:drop-shadow(0 6px 14px #0005);
  animation:momentPartyPop 3.2s cubic-bezier(.16,.8,.25,1) forwards;
}
.momentPartyBurst.burst0{left:7%;top:18%;--br:-10deg;animation-delay:.08s}
.momentPartyBurst.burst1{left:21%;top:8%;font-size:24px;--br:12deg;animation-delay:.32s}
.momentPartyBurst.burst2{right:7%;top:19%;--br:10deg;animation-delay:.16s}
.momentPartyBurst.burst3{right:23%;top:7%;font-size:24px;--br:-10deg;animation-delay:.44s}
@keyframes momentPartyPop{
  0%{opacity:0;transform:translateY(12px) scale(.45) rotate(var(--br))}
  18%{opacity:1;transform:translateY(0) scale(1.08) rotate(var(--br))}
  58%{opacity:.95;transform:translateY(-10px) scale(1) rotate(var(--br))}
  100%{opacity:0;transform:translateY(-34px) scale(.88) rotate(var(--br))}
}
.momentTargetCelebrate .bubble{animation:targetCelebrateParty 2.8s ease-out}
@keyframes targetCelebrateParty{
  0%,100%{filter:none;transform:scale(1);box-shadow:none}
  14%{filter:brightness(1.24);transform:scale(1.02);box-shadow:0 0 0 3px #ffd36d30,0 0 38px #ffd36d30}
  38%{filter:brightness(1.1);transform:scale(1.012);box-shadow:0 0 0 2px #ff86b020,0 0 28px #ff86b024}
  64%{filter:brightness(1.06);transform:scale(1.006);box-shadow:0 0 0 2px #67e7f31d,0 0 20px #67e7f320}
}
@media(prefers-reduced-motion:reduce){
  .momentPartyBurst,.momentCelebrate:before{animation-duration:.01ms!important;animation-iteration-count:1!important}
}
