:root{--pink:#f7abc8;--hot:#ef6592;--lav:#dccdf5;--cream:#fffaf5;--yellow:#ffe38a;--ink:#9b6f86;--green:#5aaa4e}
*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:"Microsoft YaHei UI","Noto Sans SC",sans-serif;color:var(--ink);background:linear-gradient(180deg,#fffaf5 0%,#fff3f8 50%,#f7e9fb 100%);overflow:hidden}.app-shell{position:relative;height:100%;padding:38px 48px 24px;display:flex;flex-direction:column;align-items:center;gap:18px;overflow:hidden}h1{margin:0;color:var(--hot);font-size:48px;line-height:1.1;letter-spacing:2px;text-shadow:0 4px 0 #fff,0 8px 16px rgba(239,101,146,.16)}button{font:inherit}.toy-screen{position:relative;width:min(100%,540px);height:330px;padding:16px;border:0;border-radius:54px;background:linear-gradient(145deg,#ffd6e5,#f4afd0);box-shadow:0 18px 30px rgba(213,126,170,.22),inset 0 5px 0 rgba(255,255,255,.75);cursor:pointer}.toy-screen:disabled{cursor:default}.screen-inner{position:relative;width:100%;height:275px;border-radius:38px;overflow:hidden;background-color:#fffdf8;background-image:linear-gradient(45deg,#eee5fa 25%,transparent 25%),linear-gradient(-45deg,#eee5fa 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eee5fa 75%),linear-gradient(-45deg,transparent 75%,#eee5fa 75%);background-size:64px 64px;background-position:0 0,0 32px,32px -32px,-32px 0;box-shadow:inset 0 0 0 4px rgba(255,255,255,.85),inset 0 0 24px rgba(196,169,216,.22)}#previewImg{width:100%;height:100%;object-fit:contain;display:none;padding:12px}#previewHint{position:absolute;bottom:18px;left:0;right:0;font-size:17px;color:#b99cca}.bunny{position:absolute;left:50%;top:48%;width:190px;height:150px;transform:translate(-50%,-50%);border:6px solid #d8bbb1;border-radius:50%;background:#fffdf9}.ear{position:absolute;top:-82px;width:66px;height:112px;border:6px solid #d8bbb1;border-radius:48%;background:#fffdf9}.e1{left:18px}.e2{right:18px}.eye{position:absolute;top:66px;width:15px;height:15px;border-radius:50%;background:#9a8077}.eye1{left:52px}.eye2{right:52px}.nose{position:absolute;left:50%;top:82px;width:17px;height:14px;transform:translateX(-50%);border-radius:50%;background:#9a8077}.cheek{position:absolute;top:92px;width:42px;height:26px;border-radius:50%;background:#ffd6d6}.ch1{left:20px}.ch2{right:20px}.screen-lights{display:flex;justify-content:flex-end;gap:8px;padding:10px 14px}.screen-lights i{width:14px;height:14px;border-radius:50%;background:#ffd85b;box-shadow:inset 0 2px 0 #fff}.screen-lights i:nth-child(2){background:#d9c2f3}.screen-lights i:nth-child(3){background:#f79aba}.deco{position:absolute}.flower2{left:24px;bottom:20px;color:#c7a9ed;font-size:38px}.cherries{right:26px;bottom:24px;color:#f491b6;letter-spacing:-5px;font-size:31px}.size-row{width:min(100%,520px);display:grid;grid-template-columns:135px 1fr 55px;gap:14px;align-items:center;color:#d36b96}.size-row label{font-size:18px}.size-row output{text-align:right;font-size:19px}input[type=range]{appearance:none;width:100%;height:12px;border-radius:999px;background:linear-gradient(90deg,#f4a8c5,#f4d2e2);outline:none}input[type=range]::-webkit-slider-thumb{appearance:none;width:34px;height:34px;border-radius:50%;background:#fff;border:6px solid #ee8cb2;box-shadow:0 4px 10px rgba(209,92,142,.25);cursor:pointer}.actions{position:relative;width:min(100%,560px);display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:4px}.action{height:88px;border:8px solid rgba(255,255,255,.88);border-radius:999px;font-size:28px;font-weight:800;box-shadow:0 12px 0 rgba(177,116,145,.13),0 16px 24px rgba(180,103,146,.15);transition:.15s transform,.15s filter}.action:not(:disabled):hover{transform:translateY(-2px);filter:brightness(1.03)}.action:not(:disabled):active{transform:translateY(5px)}.action.small{background:linear-gradient(145deg,#ffe99a,#ffd96d);color:#e85d8d}.action.big{background:linear-gradient(145deg,#f8b7d0,#ed8db5);color:#fff}.action:disabled{filter:grayscale(.3);opacity:.58}.btn-heart{font-family:Arial,sans-serif}.mini-bunny{position:absolute;left:50%;top:50%;transform:translate(-50%,-45%);width:58px;height:58px;border-radius:50%;background:#fff;border:5px solid #fff4f8;display:grid;place-items:center;font-size:34px;filter:drop-shadow(0 5px 6px rgba(182,104,146,.18));pointer-events:none}.status{min-height:48px;padding:9px 24px;border:2px solid #f2c3d7;border-radius:999px;background:rgba(255,255,255,.68);color:#9b7c8e;cursor:pointer}.status .dot{display:inline-block;width:12px;height:12px;margin-right:9px;border-radius:50%;background:#d8a7bb}.status.connected .dot{background:#74c55f}.status.connecting .dot{background:#f0c45b}.status.connected span:last-child{color:var(--green)}footer{display:flex;align-items:center;gap:13px;margin-top:auto;color:#db789f;font-size:15px}footer button{border:0;background:none;color:#db789f;cursor:pointer;padding:5px}.toast{position:absolute;bottom:82px;left:50%;transform:translate(-50%,20px);padding:11px 18px;border-radius:999px;background:rgba(112,70,94,.88);color:#fff;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.decor{position:absolute;pointer-events:none}.cloud{width:70px;height:34px;border-radius:999px;background:#fff;box-shadow:0 5px 12px rgba(204,160,183,.15)}.cloud:before,.cloud:after{content:"";position:absolute;background:#fff;border-radius:50%}.cloud:before{width:38px;height:38px;left:8px;top:-16px}.cloud:after{width:44px;height:44px;right:6px;top:-21px}.c1{left:44px;top:104px}.heart{width:30px;height:30px;background:#f58fb0;transform:rotate(45deg)}.heart:before,.heart:after{content:"";position:absolute;width:30px;height:30px;border-radius:50%;background:#f58fb0}.heart:before{left:-15px}.heart:after{top:-15px}.h1{left:132px;top:116px}.star{right:85px;top:98px;color:#ffd25c;font-size:52px}.flower{right:42px;top:134px;color:#c9b0ed;font-size:42px}dialog{border:0;border-radius:28px;padding:0;max-width:600px;width:86%;box-shadow:0 28px 80px rgba(115,68,96,.28)}dialog::backdrop{background:rgba(101,65,88,.30);backdrop-filter:blur(4px)}dialog article{padding:28px;background:#fffafc}dialog h2{margin-top:0;color:#e96f9b}dialog pre{white-space:pre-wrap;font:15px/1.75 "Microsoft YaHei UI",sans-serif;max-height:55vh;overflow:auto;color:#765f6d}dialog button{display:block;margin:18px auto 0;border:0;border-radius:999px;padding:10px 32px;background:#f3a4c3;color:#fff;font-weight:700}@media(max-height:800px){.app-shell{padding-top:22px;gap:11px}h1{font-size:40px}.toy-screen{height:290px}.screen-inner{height:235px}.action{height:74px}.decor{display:none}}
/* v0.3.2: custom terms overlay for older WebView compatibility */
.terms-overlay{position:fixed;inset:0;z-index:1000;align-items:center;justify-content:center;padding:28px;background:rgba(101,65,88,.30)}
.terms-card{width:min(86%,600px);max-height:82vh;padding:28px;border-radius:28px;background:#fffafc;box-shadow:0 28px 80px rgba(115,68,96,.28)}
.terms-card h2{margin-top:0;color:#e96f9b}.terms-card pre{white-space:pre-wrap;font:15px/1.75 "Microsoft YaHei UI",sans-serif;max-height:55vh;overflow:auto;color:#765f6d}.terms-card button{display:block;margin:18px auto 0;border:0;border-radius:999px;padding:10px 32px;background:#f3a4c3;color:#fff;font-weight:700;cursor:pointer}
.recruit-card pre{margin-bottom:12px}.qq-contact{padding:14px 18px;border-radius:18px;background:#fff0f7;color:#d85f91;text-align:center;font-size:18px}.modal-actions{display:flex;justify-content:center;gap:12px;margin-top:18px}.modal-actions button{display:inline-block;margin:0}.modal-actions button:first-child{background:#d9b9ef}

.official-links{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.official-links button{margin:0;border:0;border-radius:999px;padding:10px 14px;background:#fff0f7;color:#d85f91;font-weight:700;cursor:pointer}.official-links button:nth-child(2){background:#f1e9fb;color:#9b74ba}.official-links small{grid-column:1/-1;text-align:center;color:#ad8d9e;font-size:12px}

/* v0.4.0 global: language selector is part of the normal layout, not an overlay. */
.language-row{width:min(100%,560px);min-height:34px;display:flex;justify-content:flex-end;align-items:center;gap:9px;color:#c56f98;font-size:13px;z-index:5}
.language-row select{min-width:128px;border:2px solid #f0bfd4;border-radius:999px;background:#fffafc;color:#8f687c;padding:6px 12px;outline:none;cursor:pointer}
.language-row select:focus{border-color:#e99abb;box-shadow:0 0 0 3px rgba(239,101,146,.10)}
.official-links{grid-template-columns:1fr 1fr}.official-links button{white-space:normal}
footer{flex-wrap:wrap;justify-content:center;text-align:center}
@media(max-width:620px){.language-row{justify-content:center}.language-row select{min-width:120px}footer{gap:7px}.actions .action{font-size:clamp(17px,4.8vw,25px)}}
