:root{--paper:#f6f3ee;--ink:#322e2b;--muted:#938a80;--line:#e4ded5;--coral:#e47d66;--soft:#edddd0;--serif:Georgia,'Songti SC','STSong',serif;--sans:Inter,-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{opacity:.45;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #cc705b;outline-offset:4px}.header{max-width:1360px;margin:auto;padding:28px 50px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:600;letter-spacing:1px}.brand small{display:block;font-size:8px;letter-spacing:2.6px;margin-top:5px;font-weight:500}.brand-mark{font-size:45px;font-weight:300;color:var(--coral)}nav{display:flex;gap:35px}.nav{padding:12px 0;color:var(--muted);position:relative;font-size:13px}.nav.active{color:var(--ink)}.nav.active:after{content:'';position:absolute;bottom:0;left:25%;width:50%;height:2px;background:var(--coral)}.header-right{display:flex;align-items:center;gap:16px}.balance-button{padding:11px 15px;border:1px solid var(--line);border-radius:30px;font-size:12px;background:#fffcf7}.coin{color:#ad8851;margin-right:7px}.profile-button{border:1px solid var(--line);width:34px;height:34px;border-radius:100%;font-size:21px}.mode-tag{font-size:10px;color:#947769;background:#efe4d9;padding:5px 9px;border-radius:4px}.mode-tag:empty{display:none}main{max-width:1260px;margin:auto;min-height:690px;padding:48px 40px 40px}.eyebrow{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:2.3px;color:var(--muted);text-transform:uppercase}.eyebrow:before{content:'';height:1px;width:28px;background:var(--coral)}.discover-layout{display:grid;grid-template-columns:1fr 390px 230px;gap:45px;align-items:start}.intro{padding-top:45px}.intro h1{font-family:var(--serif);font-weight:400;font-size:45px;line-height:1.5;letter-spacing:2px;margin:20px 0}.intro h1 em{font-style:normal;color:var(--coral)}.intro p{font-size:12px;color:var(--muted);line-height:2.2;max-width:240px}.intro .flower{margin-top:42px;color:#c2aa94;font-size:100px;line-height:1;font-family:var(--serif);font-weight:300;transform:rotate(-15deg);display:inline-block}.intro small{display:block;font-size:10px;line-height:1.8;color:#aaa195;margin-top:25px}.card-zone{position:relative}.filters{display:flex;gap:8px;justify-content:space-between;margin-bottom:17px}.filters select{border:1px solid var(--line);border-radius:25px;background:var(--paper);padding:9px 14px;color:#686058;max-width:185px;font-size:12px}.card-stack{position:relative;perspective:900px}.card-stack:before,.card-stack:after{content:'';position:absolute;inset:5px 8px -7px;border:1px solid #dad1c7;border-radius:15px;background:#ede5db;transform:rotate(3deg)}.card-stack:after{transform:rotate(-2deg);inset:5px 5px -5px;background:#f9f5ef}.host-card{height:500px;border-radius:14px;background:#dca48d;overflow:hidden;position:relative;z-index:1;touch-action:pan-y;box-shadow:0 14px 40px #69554215;transition:transform .28s ease,opacity .28s ease;user-select:none}.host-card img{width:100%;height:100%;object-fit:cover;pointer-events:none}.host-card:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#211611cf)}.host-card .badge{position:absolute;top:18px;left:18px;background:#fff9ecda;border:1px solid #fff8;border-radius:30px;padding:7px 11px;font-size:10px;color:#695444;z-index:2}.host-card .heart-small{position:absolute;right:20px;top:21px;color:#fff8;font-size:22px}.host-info{position:absolute;bottom:24px;left:25px;right:25px;color:#fff;z-index:2}.host-info h2{font-family:var(--serif);font-size:29px;font-weight:400;letter-spacing:1px;margin:0 0 10px}.host-info h2 small{font-family:var(--sans);font-size:14px;margin-left:10px;opacity:.8}.host-info .location{font-size:11px;opacity:.9;margin-bottom:13px}.host-info p{font-size:12px;line-height:1.8;color:#fffdf0c7;margin:0}.tag-row{display:flex;gap:6px;margin-top:13px}.tag-row span{font-size:9px;border:1px solid #ffffff40;background:#ffffff16;padding:5px 9px;border-radius:15px}.swipe-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:24px}.round{border:1px solid var(--line);border-radius:50%;width:55px;height:55px;background:#faf7f1;color:#a1988c;display:flex;align-items:center;justify-content:center;font-size:22px}.round.primary{width:64px;height:64px;background:var(--coral);border-color:var(--coral);color:white;box-shadow:0 6px 20px #de79672a;font-size:27px}.round svg{width:22px;height:22px}.card-caption{text-align:center;margin:12px 0 0;color:var(--muted);font-size:10px;line-height:1.8}.side{padding-top:50px}.side h3{font-size:12px;font-weight:500;letter-spacing:1px}.side .line{height:1px;background:var(--line);margin:19px 0}.small-host{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:9px 0}.small-host img{width:48px;height:55px;object-fit:cover;border-radius:8px}.small-host span{font-size:12px}.small-host small{display:block;color:var(--muted);font-size:10px;margin-top:6px}.small-host .arrow{margin-left:auto;color:#b3a99c}.welcome-card{border:1px solid var(--line);border-radius:10px;padding:19px;margin-top:23px;background:#eee8de80}.welcome-card .gift{color:var(--coral);font-size:25px}.welcome-card h4{font-family:var(--serif);font-weight:400;font-size:19px;margin:13px 0 9px}.welcome-card p{font-size:11px;line-height:1.9;color:var(--muted)}.text-link{font-size:11px;padding:5px 0;color:#9f715c}.side .note{font-size:10px;line-height:1.9;color:#a1998f;margin-top:22px}.bottom-strip{display:flex;border-top:1px solid var(--line);padding-top:24px;margin-top:45px;gap:40px}.bottom-strip div{flex:1;display:flex;gap:13px;align-items:center}.bottom-strip .number{font-size:23px;color:#b6a796;font-family:var(--serif)}.bottom-strip strong{font-weight:400;font-size:12px}.bottom-strip small{display:block;color:var(--muted);font-size:10px;margin-top:5px}footer{max-width:1260px;margin:0 auto;border-top:1px solid var(--line);padding:24px 40px;display:flex;justify-content:space-between;color:#a09589;font-size:10px;letter-spacing:.5px}footer div{display:flex;gap:22px}footer button{font-size:10px;padding:0}.page-title{font-family:var(--serif);font-size:38px;font-weight:400;letter-spacing:2px;margin:18px 0 12px}.subtitle{color:var(--muted);line-height:1.9;font-size:12px}.wallet-layout{display:grid;grid-template-columns:1fr 340px;gap:35px;margin-top:30px}.wallet-panel{padding:28px;border:1px solid var(--line);border-radius:14px;background:#fffcf6}.big-balance{font-family:var(--serif);font-size:60px;line-height:1.3;margin:14px 0}.big-balance span{font-family:var(--sans);font-size:14px;color:var(--muted);margin-left:10px}.packages{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:25px}.package{padding:22px 18px;background:#f5eee5;border:1px solid var(--line);border-radius:10px;text-align:left}.package:nth-child(2){border-color:#d8957f;background:#f3e7db}.package .coins{font-family:var(--serif);font-size:28px}.package small{display:block;color:var(--muted);margin:9px 0;font-size:10px}.package strong{display:block;font-weight:500;font-size:18px;margin:17px 0 0}.primary-button{background:var(--coral);color:#fff;border-radius:7px;padding:13px 21px;font-size:12px}.secondary-button{border:1px solid var(--line);background:#fffaf2;border-radius:7px;padding:12px 19px;font-size:12px}.checkin-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:22px 0}.day{border:1px solid var(--line);border-radius:6px;text-align:center;padding:9px 3px;font-size:10px}.day.done{background:#e9ddcb;color:#978269}.day.milestone{border-color:#d9a78f;background:#f6e8d8}.day b{display:block;margin-top:6px;font-size:9px;font-weight:400;color:#aa8d70}.ledger{margin-top:30px}.ledger-row{padding:13px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;font-size:11px}.ledger-row small{display:block;color:var(--muted);font-size:9px;margin-top:5px}.positive{color:#8a9a73}.negative{color:#b9836e}.favorites-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:25px}.favorites-grid .host-card{height:390px}.empty{padding:75px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:10px;line-height:2}.empty button{display:block;margin:22px auto}dialog{border:1px solid var(--line);border-radius:16px;background:#faf6ef;color:var(--ink);padding:35px;max-width:480px;width:calc(100vw - 30px);box-shadow:0 25px 120px #30261e55}dialog::backdrop{background:#231a1466;backdrop-filter:blur(5px)}.modal-close{position:absolute;right:15px;top:10px;font-size:25px;color:var(--muted)}dialog h2{font-family:var(--serif);font-weight:400;font-size:29px;margin-top:0}dialog p{font-size:12px;line-height:2;color:#857b70}dialog input,dialog textarea,.form-control{width:100%;padding:12px;border:1px solid var(--line);border-radius:7px;background:#fffaf4;color:var(--ink);margin:6px 0 13px}dialog label{font-size:11px}dialog .primary-button{width:100%;margin-top:8px}.error{color:#c06452;font-size:12px;line-height:1.7;min-height:18px}#toast{position:fixed;left:50%;bottom:35px;transform:translate(-50%,15px);background:#3e362f;color:white;padding:13px 22px;border-radius:30px;font-size:12px;opacity:0;transition:.2s;pointer-events:none;z-index:100;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.call-page{max-width:860px;margin:auto}.call-heading{display:flex;align-items:center;justify-content:space-between}.call-heading h2{font-family:var(--serif);font-weight:400;font-size:25px}.call-stage{height:540px;background:#24201e;position:relative;border-radius:16px;overflow:hidden}.remote-video{width:100%;height:100%;position:absolute;inset:0}.remote-video img{width:100%;height:100%;object-fit:cover;opacity:.55}.call-overlay{position:absolute;left:22px;top:22px;color:white;z-index:3;background:#29221e6e;padding:10px 15px;border-radius:25px;font-size:11px}.local-video{position:absolute;right:20px;top:20px;width:145px;height:190px;border-radius:10px;background:#625850;overflow:hidden;z-index:2}.call-wait{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#fff;gap:12px;pointer-events:none;font-size:17px;background:#211a1766}.call-wait small{font-size:11px;color:#c8bdb3}.call-wait.hidden{display:none}.call-controls{position:absolute;bottom:24px;left:0;right:0;display:flex;justify-content:center;gap:15px;z-index:3}.call-controls button{width:52px;height:52px;border-radius:50%;color:white;background:#ffffff25;font-size:20px;backdrop-filter:blur(8px)}.call-controls .hangup{background:#d96957;width:66px}.call-text{display:flex;gap:12px;margin-top:15px}.call-text input{flex:1;margin:0}.call-note{font-size:11px;color:var(--muted);margin-top:13px;text-align:center}.demo-video-label{position:absolute;bottom:105px;left:0;right:0;text-align:center;color:#fff8;font-size:12px}.admin-body{background:#f4f1ec}.admin-shell{max-width:1260px;margin:auto;display:grid;grid-template-columns:200px 1fr;gap:30px;padding:32px}.admin-menu{padding:15px 0}.admin-menu button{display:block;width:100%;text-align:left;padding:13px 16px;font-size:12px;color:var(--muted);border-radius:7px;margin-bottom:5px}.admin-menu button.active{background:#e9ddd1;color:#6e5245}.admin-main h1{font-size:31px;font-family:var(--serif);font-weight:400}.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}.stat-card{padding:20px;border:1px solid var(--line);background:#fffbf5;border-radius:9px}.stat-card small{font-size:10px;color:var(--muted)}.stat-card b{font-family:var(--serif);display:block;font-size:28px;font-weight:400;margin-top:12px}.table-wrap{overflow:auto;background:#fffcf8;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}th,td{padding:16px;text-align:left;border-bottom:1px solid var(--line)}th{font-weight:400;color:var(--muted);background:#f3eee5}.table-wrap img{width:38px;height:45px;object-fit:cover;border-radius:5px;vertical-align:middle;margin-right:10px}.admin-actions{display:flex;align-items:center;justify-content:space-between;margin:20px 0}.admin-actions h2{font-size:15px;font-weight:500}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.editor-grid label{font-size:11px;color:var(--muted)}.editor-grid textarea{min-height:120px}.full{grid-column:1/-1}.metric-bar{height:7px;background:#e4d6c4;border-radius:5px;margin-top:7px;min-width:100px}.metric-bar i{height:7px;display:block;background:var(--coral);border-radius:5px}.pill{padding:5px 8px;background:#e8ebdf;color:#778565;border-radius:4px;font-size:9px}.pill.off{background:#ebe5dd;color:#9d8c7d}.status-label{font-size:11px;color:var(--muted)}.legal{line-height:2;color:#847a6f;font-size:12px}.loading{padding:80px;text-align:center;color:var(--muted)}
@media(max-width:1100px){.discover-layout{grid-template-columns:1fr 370px;gap:30px}.side{display:none}.intro h1{font-size:39px}.header{padding:23px 30px}.header-right{gap:8px}nav{gap:22px}}@media(max-width:740px){.header{padding:15px 18px;flex-wrap:wrap;gap:8px}.brand{font-size:16px;gap:7px}.brand small{font-size:6px;letter-spacing:1.5px}.brand-mark{font-size:33px}.header nav{order:3;width:100%;justify-content:center;gap:45px;margin-top:5px}.mode-tag{font-size:8px}.balance-button{padding:8px 10px;font-size:10px}.profile-button{display:none}main{padding:22px 18px 30px;min-height:700px}.discover-layout{display:flex;flex-direction:column;gap:0}.intro{padding:0;text-align:left}.intro h1{font-size:25px;line-height:1.5;margin:13px 0;letter-spacing:1px}.intro h1 br{display:none}.intro h1 em{margin-left:6px}.intro .eyebrow{font-size:8px}.intro p,.intro .flower,.intro small{display:none}.card-zone{width:100%;max-width:390px;margin:8px auto}.filters{margin-bottom:13px}.host-card{height:460px}.bottom-strip{margin-top:25px;gap:10px;flex-wrap:wrap}.bottom-strip div{gap:7px}.bottom-strip strong{font-size:10px}.bottom-strip small{font-size:8px;line-height:1.5}.bottom-strip .number{font-size:18px}footer{padding:22px 18px;gap:15px;flex-direction:column}footer div{gap:25px}.wallet-layout{grid-template-columns:1fr;gap:20px}.wallet-panel{padding:22px}.packages{gap:8px}.package{padding:17px 12px}.package .coins{font-size:23px}.package strong{font-size:16px}.favorites-grid{grid-template-columns:1fr 1fr;gap:15px}.favorites-grid .host-card{height:300px}.favorites-grid .host-info{left:15px;right:15px}.favorites-grid .host-info h2{font-size:20px}.favorites-grid .host-info p{display:none}.favorites-grid .tag-row{display:none}.call-stage{height:65vh}.local-video{width:100px;height:135px}.call-heading{flex-wrap:wrap}.call-text input{width:70%}.admin-shell{display:block;padding:20px 15px}.admin-menu{display:flex;overflow:auto;padding:0}.admin-menu button{white-space:nowrap;margin:0}.stat-cards{grid-template-columns:1fr 1fr}.editor-grid{display:block}.header.admin-header nav{display:none}dialog{padding:27px}.page-title{font-size:31px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.admin-main{width:100%;margin:0;padding:24px 20px;min-height:0;max-width:none;min-width:0}
@media(max-width:740px){.admin-main{padding:22px 0}}
/* Cinematic portrait wall, v2. */
:root{--bg:#111015;--paper:#1b1921;--ink:#f7f4fc;--muted:#a29caa;--line:#ffffff16;--accent:#b4a1ff;--serif:ui-serif,"Songti SC",serif}body{background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}.header{background:#111015ed;border-bottom:1px solid var(--line);padding:22px 5%;gap:24px}.brand{color:#f9f7fe}.brand-mark{background:#b4a1ff;color:#181224;border-radius:13px;font-size:26px;width:44px;height:44px;display:grid;place-items:center}.brand small{color:#837b92;letter-spacing:2px}.nav{color:#a29caa;border:0}.nav.active{color:#e3d8ff;background:#272230;border-radius:100px}.balance-button,.profile-button{background:#201d27;color:#e2d6ff;border:1px solid #3a3347}.coin{color:#ceb3ff}main{max-width:1320px;padding:0 40px;margin:auto;min-height:65vh}.wall-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:50px 0 38px}.wall-hero .eyebrow{font:11px ui-monospace,monospace;letter-spacing:2px;color:#b9a8e2;display:flex;align-items:center;gap:9px}.live-dot{width:6px;height:6px;background:#c1a5ff;border-radius:50%;box-shadow:0 0 15px #c3a9ff8a}.wall-hero h1{font-family:inherit;font-size:clamp(30px,3.6vw,48px);font-weight:650;letter-spacing:-1.7px;margin:17px 0}.wall-hero h1 span{color:#c9b6ff}.wall-hero p{color:#a39aaf;font-size:13px;line-height:1.9;margin:0}.trial-card{background:linear-gradient(110deg,#322439,#262131);border:1px solid #594260;border-radius:16px;color:#eaddfc;padding:20px 25px;min-width:230px;text-align:left;cursor:pointer}.trial-card span{font-size:11px;color:#cfb7dc;display:block}.trial-card strong{font-size:23px;font-weight:600;display:block;margin:11px 0}.trial-card small{font-size:10px;color:#b09dbc}.wall-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:23px}.wall-tabs{display:flex;gap:22px}.wall-tabs button{background:none;border:0;color:#9d94aa;padding:10px 0;cursor:pointer;font-size:13px;position:relative}.wall-tabs button.selected{color:#e3d5ff}.wall-tabs button.selected:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:#b3a0ff}.filters{display:flex;gap:10px;margin:0}.filters select{background:#1e1a26;border:1px solid #322a40;border-radius:9px;color:#b5a9c4;padding:10px 13px;min-width:130px;font-size:11px}.girl-wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.girl-tile{background:#1d1924;border:1px solid #ffffff0b;border-radius:18px;overflow:hidden;transition:transform .2s,border-color .2s}.girl-tile:hover{transform:translateY(-4px);border-color:#cdb5ff60}.tile-image{display:block;position:relative;width:100%;height:365px;padding:0;border:0;cursor:pointer;background:#26212b;color:white;overflow:hidden;text-align:left}.tile-image>img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform .6s}.girl-tile:hover .tile-image>img{transform:scale(1.035)}.tile-image:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#110c18dc)}.ai-tag{position:absolute;z-index:2;top:16px;left:16px;font-size:9px;letter-spacing:.3px;padding:6px 9px;border:1px solid #ffffff45;border-radius:7px;background:#1b132866;backdrop-filter:blur(10px)}.tile-heart{position:absolute;z-index:2;top:13px;right:14px;border-radius:50%;background:#241b3155;width:33px;height:33px;display:grid;place-items:center;font-size:21px;backdrop-filter:blur(10px)}.tile-caption{position:absolute;z-index:2;bottom:24px;left:24px;right:24px}.tile-caption h2{font-size:25px;font-weight:550;margin:0 0 9px;letter-spacing:.2px}.tile-caption h2 small{font-size:14px;font-weight:400;margin-left:9px;color:#d0c5d4}.tile-caption>span{font-size:11px;color:#ded1e8}.tile-bottom{padding:18px 21px 21px}.tile-bottom p{margin:0 0 17px;color:#a89db5;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-button{display:flex;align-items:center;justify-content:center;gap:11px;background:#33233f;color:#e7d1ff;border:1px solid #62447966;border-radius:9px;padding:12px 14px;width:100%;font-size:12px;cursor:pointer;transition:background .2s}.video-button:hover{background:#563567}.video-button>span:last-child{margin-left:auto}.video-icon{margin-right:auto}.wall-footnote{display:flex;justify-content:space-between;margin:22px 0 36px;font-size:10px;color:#82758e;gap:15px}.daily-banner{display:flex;gap:24px;align-items:center;background:linear-gradient(90deg,#272032,#1c1923);border:1px solid #3a2e4c;border-radius:16px;padding:25px 30px;margin-bottom:45px}.banner-symbol{color:#cdb2ff;font-size:39px}.daily-banner h3{margin:0 0 8px;font-weight:500;font-size:15px}.daily-banner p{color:#a194af;font-size:11px;margin:0}.daily-banner button{margin-left:auto;white-space:nowrap}.primary-button{background:#b39af2;color:#1a102c;border:0;border-radius:9px}.secondary-button{background:#292133;color:#d5bdf5;border:1px solid #493657;border-radius:9px}.text-link{color:#cab2f3}.match-zone{max-width:380px;margin:15px auto 35px}.match-zone .host-card{height:500px}.host-card{border-radius:18px}.host-info{color:#fff}.host-info h2,.host-info p,.host-info .location{color:#fff}.host-card:after{background:linear-gradient(transparent,#130d21e0)}.badge{background:#332442aa;color:#fff}.swipe-controls .round{background:#241c30;color:#d7bffc;border:1px solid #4b3b5d}.swipe-controls .round.primary{background:#b49af4;color:#21102c}.card-caption{color:#9c8aa9}.character-detail{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center}.character-detail>img{width:100%;border-radius:10px}dialog{background:#211a2b;color:#f1e8ff;border:1px solid #574165;max-width:660px}dialog label,dialog p{color:#bbaaC7}dialog input,dialog textarea,.form-control{background:#15111d;color:#eee;border:1px solid #4b385d}.modal-close{color:#d5bbf2;background:#332341}.wallet-panel,.welcome-card{background:#211c2a;border:1px solid #3d2b4e}.package{background:#2b2137;color:#e1d1f4;border:1px solid #513363}.day{background:#292032;color:#baa7d0}.day.done{background:#4b325c;color:#e1c5ff}.day.milestone{border-color:#745a91}.positive{color:#cfb4fc}footer{border-top:1px solid var(--line);color:#81768d;padding:25px 5%}footer button,footer a{color:#9a87aa}#toast{background:#45324e;color:white}.call-note{color:#ad99bd}.favorites-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-body{--bg:#f6f3ee;--paper:#fff;--ink:#302923;--muted:#8e8073;--line:#ded7ce;--accent:#b37e68;background:#f6f3ee;color:#302923}.admin-body .header{background:#fff}.admin-body .brand{color:#302923}.admin-body main{padding:40px}.admin-body input,.admin-body textarea,.admin-body select{background:white;color:#302923}.admin-body .secondary-button{background:#eee3d5;color:#302923}.admin-body dialog{background:white;color:#302923}.admin-body dialog p,.admin-body dialog label{color:#76665b}
@media(min-width:1550px){.tile-image{height:410px}}@media(max-width:1000px){.header{padding:19px 25px}.brand small{display:none}.header nav{gap:4px}.girl-wall{gap:17px}.tile-image{height:315px}.tile-caption{left:18px;bottom:19px}.tile-caption h2{font-size:22px}.tile-bottom{padding:16px}.wall-hero{padding:35px 0}.trial-card{min-width:210px}}@media(max-width:720px){.header{padding:15px 18px;flex-wrap:wrap;gap:15px}.brand{font-size:17px}.brand-mark{width:34px;height:34px;font-size:23px}.header nav{order:3;width:100%;justify-content:space-between}.header-right{margin-left:auto;gap:8px}.balance-button{padding:8px 10px;font-size:10px}.profile-button{width:30px;height:30px}main{padding:0 18px}.wall-hero{display:block;padding:29px 0 27px}.wall-hero h1{font-size:31px;letter-spacing:-1px}.wall-hero p{font-size:11px}.trial-card{display:flex;width:100%;margin-top:23px;align-items:center;gap:10px;min-width:0;padding:16px;border-radius:12px}.trial-card strong{font-size:17px;white-space:nowrap;margin:0 0 0 auto}.trial-card span{font-size:10px}.trial-card small{display:none}.wall-toolbar{flex-wrap:wrap;gap:10px;margin-bottom:17px}.wall-tabs{gap:22px}.filters{margin-left:auto;gap:6px}.filters select{min-width:0;width:100px;padding:8px;font-size:10px}.girl-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.tile-image{height:240px}.girl-tile{border-radius:12px}.ai-tag{left:10px;top:10px;font-size:8px;padding:4px 5px}.tile-heart{width:26px;height:26px;top:8px;right:8px;font-size:17px}.tile-caption{left:12px;right:10px;bottom:17px}.tile-caption h2{font-size:20px}.tile-caption h2 small{font-size:11px;margin-left:5px}.tile-caption>span{font-size:9px}.tile-bottom{padding:12px}.tile-bottom p{font-size:9px;margin-bottom:12px}.video-button{font-size:10px;padding:10px;gap:4px}.wall-footnote{font-size:9px;flex-wrap:wrap;margin:17px 0 27px}.daily-banner{gap:13px;padding:20px 17px;flex-wrap:wrap}.daily-banner h3{font-size:12px}.daily-banner p{font-size:10px}.banner-symbol{font-size:29px}.daily-banner button{width:100%;margin:5px 0 0}.character-detail{gap:16px}.character-detail h2{font-size:21px}.favorites-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.match-zone .host-card{height:480px}.wallet-layout{display:block}.wallet-panel{margin-bottom:20px}.wall-hero .eyebrow{font-size:9px;letter-spacing:1.5px}footer{padding:22px 18px;font-size:9px}.header nav .nav{font-size:11px;padding:9px 15px}}
.call-page{max-width:720px}.call-stage{width:min(100%,calc((100dvh - 220px)*.75),540px);height:auto;aspect-ratio:3/4;margin:18px auto}.remote-video video{object-fit:contain!important}.local-video{width:90px;height:120px;top:14px;right:14px;border:1px solid #ffffff45}.call-controls{bottom:18px;gap:12px}.call-controls button{width:44px;height:44px}.call-controls button.hangup{width:58px;height:58px}.call-text{max-width:600px;margin:16px auto}.call-overlay{font-size:10px;top:14px;left:14px}.day.milestone{background:#392843;color:#e2cbff}.header .nav.active{border-bottom:0}.eyebrow:before{background:#9b74c7}
.header .profile-button{display:grid;place-items:center}.header .nav:after{display:none}
/* International landing pages retain readable copy at all viewport sizes. */
#languageSelect{font:inherit;font-size:12px;max-width:125px;padding:8px;border:1px solid #ffffff30;border-radius:8px;background:#211c29;color:#f7eff9}
.language-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px}.language-links a{color:var(--muted);font-size:12px;text-decoration:none}
.seo-content{margin:65px auto 20px;max-width:850px;color:var(--muted);line-height:1.8}.seo-content h2{color:var(--text);font-size:24px;font-weight:400;margin:28px 0 14px}.seo-content details{border-bottom:1px solid #ffffff15;padding:15px 0}.seo-content summary{cursor:pointer;color:#ece3ef}.language-hint{font-size:13px!important;color:#c9a3e9!important}.profile-page{margin:30px auto}.profile-page h1{font-size:32px;line-height:1.25}.tile-image{display:block;text-decoration:none;color:inherit}.tile-image img{height:100%;object-fit:cover}.wall-hero h1{font-size:clamp(36px,4.2vw,70px);line-height:1.12;max-width:720px}.wall-toolbar{margin:20px 0}footer{flex-wrap:wrap}.language-links{width:100%}
@media(max-width:650px){#languageSelect{max-width:96px;font-size:11px;padding:6px}.header{flex-wrap:wrap;gap:12px}.header nav{order:3;width:100%;justify-content:center;display:flex}.header .header-right{margin-left:auto}.brand{font-size:17px}.header nav .nav{font-size:12px;white-space:normal}.profile-page{display:block}.profile-page img{width:100%;max-height:450px;object-fit:cover}.call-heading{gap:10px;align-items:start}.call-heading h2{font-size:16px}.call-heading .status-label{font-size:10px}}
/* Account, contact and operations panels. */
.contact-qr-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.contact-qr-grid figure{margin:0;text-align:center}.contact-qr-grid img{background:white;border-radius:12px;width:100%;height:auto;max-height:300px;object-fit:contain}.contact-qr-grid figcaption{margin-top:10px;font-size:13px}.recharge-identity{padding:15px;background:var(--panel,#242129);border-radius:12px}.admin-account-link{display:inline-block;margin:14px 0;text-decoration:none}#authForm+.text-link{margin-right:12px}#nicknameForm{margin-bottom:14px}.retention-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}.retention-cards .stat-card{padding:22px}.dashboard-chart{display:flex;align-items:flex-end;gap:4px;height:130px;padding:20px 10px 0;overflow:hidden}.dashboard-chart a{display:block;flex:1;min-width:4px;background:#9d7057;border-radius:4px 4px 0 0}.dashboard-chart a:hover{background:#de9b78}.user-search{display:flex;gap:12px;margin:22px 0}.user-search input{flex:1;min-width:0}.manual-summary{padding:14px;background:#f3ece6;border-radius:10px;margin:12px 0}.contact-editor img{max-width:200px;height:200px;object-fit:contain;background:#fff}.admin-header .header-right{flex-wrap:wrap}.admin-menu{overflow-y:auto}.admin-body .recharge-identity{background:#f3ece6}.pagination{display:flex;align-items:center;gap:14px;padding:20px 0}.admin-main .table-wrap th{white-space:nowrap}.admin-main .table-wrap td{max-width:360px;overflow-wrap:anywhere}.admin-main input[type=number]{max-width:100%}@media(max-width:650px){.retention-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-qr-grid{gap:10px}.header nav .nav{font-size:12px;padding:12px 8px}.admin-header .brand{min-width:0}.user-search{flex-wrap:wrap}.user-search input{flex-basis:100%}}
.group-invite-pending{display:flex;align-items:center;justify-content:center;min-height:230px;padding:24px;border:1px dashed #9c8977;border-radius:12px;line-height:1.8}

.remote-video > video{width:100%;height:100%;object-fit:contain}.local-video > video{width:100%;height:100%;object-fit:cover}
.invite-wallet-card{margin:24px 0;padding:20px;background:rgba(179,142,255,.10);border:1px solid #524161;border-radius:18px}.invite-wallet-card h3{margin:0}.invite-wallet-card p{color:#c6b8d5;font-size:14px;line-height:1.6}.invite-stats{display:flex;gap:16px;flex-wrap:wrap;margin:20px 0;color:#f699b7}.invite-code-list{display:grid;gap:10px}.invite-code{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e8dce1;border-radius:14px;padding:14px}.invite-code code{font-size:15px;letter-spacing:1px}.invite-code small{display:block;margin-top:6px;color:#bdb0c9}.invite-code.used{background:#f5f3f4;color:#8c8388}.invite-actions{display:flex;gap:8px;flex-wrap:wrap}.invite-actions button{padding:8px 12px;font-size:12px}.invitation-panel input{font-size:13px;width:100%;box-sizing:border-box}.invitation-panel h3{margin-top:28px}@media(max-width:560px){.invite-code{align-items:flex-start;flex-direction:column}.invite-actions{width:100%}.invite-actions button{flex:1}.invite-code code{font-size:16px}}


/* ==========================================================================
   CineMatch 品牌替换适配（原站样式表之上的增量 1/2）
   原站 header 为 justify-content:space-between 的三段结构，品牌文字长度直接
   决定中间导航的水平位置。品牌由 "Cinemate Companions" 替换为 "CineMatch" /
   "银幕相亲角" 后变短，此处锁定原站实测宽度，保证导航与右侧控件的落点一致。
   ========================================================================== */
@media (min-width: 741px) {
  .header .brand { min-width: 302.55px; }
}

/* ==========================================================================
   CineMatch 缺陷修正：角色详情页主图纵向拉伸（增量 2/2）
   --------------------------------------------------------------------------
   现象：/companions/<id>/ 左侧人物主图被纵向拉伸，窗口越窄越扁
         （1440 视口 608x1100 偏差 26%，1080 视口 488x1100 偏差 41%，
          820 视口 358x1100 偏差 57%）。
   成因：原站 CSS 只有 .character-detail>img{width:100%}，没有约束高度；
         而该 <img> 上的 height="1100" 属性会作为"表现性提示"生效
         （presentational hint，等同作者级 height:1100px），于是宽度随栅格列
         伸缩、高度却被钉死在 1100px，配合默认 object-fit:fill 就产生拉伸。
   修法：显式高度 auto，并按原图 825:1100 的 3:4 比例锁定图片框；39 张人像
         素材本身比例不一（825x1100 / 900x1350 / 758x1350 …），统一用
         object-fit:cover 裁切而非拉伸，保证每页版式一致且不变形。
   注：≤650px 的原站移动端规则自带 object-fit:cover，无变形，故不覆盖。
   ========================================================================== */
@media (min-width: 651px) {
  .character-detail > img {
    width: 100%;
    height: auto;
    aspect-ratio: 825 / 1100;
    object-fit: cover;
    object-position: 50% 30%;
  }
}

/* ==========================================================================
   CineMatch 缺陷修正：通话页控制钮错位与字形失真（增量 3/3）
   --------------------------------------------------------------------------
   问题一（错位）：原站 .call-controls 未设 align-items，取 flex 默认值
         normal(=stretch)，四个按钮全部「顶对齐」。普通钮 44px、挂断钮 58px，
         于是中间那枚红色挂断钮的中心比其余三枚低 7px，看起来就是歪的。
         → 补 align-items:center，四钮同心对齐。
   问题二（字形）：原站按钮内容用的是文字字符 ♩ / ◉ / ⌁ / !，靠系统字体渲染。
         ♩(U+2669)、◉(U+25C9)、⌁(U+2301) 都不在常用字集里，落到不同回退字体
         时「墨迹」在字身框中并不居中、笔画粗细也各异；⌁ 本身还是一条斜杠，
         所以麦克风钮像一根竖线、挂断钮是歪的。
         → 换成内联 SVG 图标，沿用站点已有的 .round svg 规格（24x24 视箱 /
           1.4 线宽 / currentColor），并显式设定尺寸与弹性居中。
   圆钮的尺寸、底色、圆角、间距、定位一律保持原样。
   ========================================================================== */
.call-controls {
  align-items: center;
}
.call-controls button {
  display: flex;
  align-items: center;
  justify-content: center;
}
.call-controls button svg {
  width: 22px;
  height: 22px;
}
.call-controls button.hangup svg {
  width: 26px;
  height: 26px;
}
@media (max-width: 720px) {
  .call-controls button svg { width: 19px; height: 19px; }
  .call-controls button.hangup svg { width: 23px; height: 23px; }
}

/* Shared original SyncroOS wordmark, including small screens. */
.header .brand-logo { display:block; width:160px; height:48px; object-fit:contain; }
@media(max-width:720px){ .header .brand-logo { width:132px; height:40px; } }
