/* Blizhe: visual tokens taken from the supplied interactive prototype. */
:root{color-scheme:light;--bg:#FAF7F3;--panel:#FFFDFC;--text:#493F3B;--ink:#493F3B;--muted:#887A74;--accent:#D99284;--line:#E8DDD7;--success:#7DA58C;--danger:#9e5143}
*{box-sizing:border-box}body{margin:0;background:#eee7e0;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;font-size:16px;line-height:1.5}button,input,textarea,select{font:inherit;color:var(--text)}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #93685e;outline-offset:3px}a{color:var(--text)}p{margin:0 0 14px}h1,h2,h3{color:var(--text);margin:0;line-height:1.2}svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}button:active{filter:brightness(.97)}
.app{background:var(--bg);max-width:430px;min-height:100dvh;min-height:var(--app-height,100dvh);margin:auto;isolation:isolate;overflow:hidden;box-shadow:none}#screens{position:relative;z-index:1}.screen,.gate{padding:20px 20px calc(24px + var(--safe-bottom,0px));min-height:var(--app-height,100dvh);padding-top:calc(20px + var(--safe-top,0px));background:transparent}.screen.active{display:flex;flex-direction:column}.top{display:flex;align-items:center;gap:12px;min-height:42px;margin:0 0 18px}.brand{font-size:18px;font-weight:800;color:var(--text)}.back{border:0;background:none;min-width:30px;min-height:42px;padding:0}.back svg{width:23px;height:23px}.icon-button{border:1px solid var(--line);background:var(--panel);width:42px;height:42px;border-radius:16px;color:var(--text)}.home-top{justify-content:space-between}.home-top .brand{font-size:22px;margin-right:auto}.home-top .icon-button{width:42px;height:42px;margin:0}.home-top .icon-button svg{width:23px;height:23px}
.ribbon{background:none;opacity:1;position:absolute;width:145%;height:245px;left:-22%;top:140px;pointer-events:none;z-index:0;transform:none}.ribbon:before,.ribbon:after{content:'';display:block;position:absolute;inset:10px;border:1px solid #eed8ce;border-radius:50%;transform:rotate(-17deg)}.ribbon:after{inset:150px -60px -95px 160px;border-color:#eadfce;transform:rotate(29deg)}.ribbon.second{top:640px;background:none;opacity:.6;transform:scaleY(-1)}.ribbon.second:before{border-color:#d9e2d5}.ribbon.second:after{display:none}
.hero{justify-content:center;align-items:stretch;text-align:left;flex:1;padding:50px 0 88px}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;font-size:11px;font-weight:800;color:#a27f74;margin:0 0 7px}#home-tagline{font-size:34px;font-weight:800;letter-spacing:-1.15px;line-height:1.08;text-align:left;text-wrap:initial;margin:0 0 14px;max-width:370px}.hero-subtitle{font-size:16px;line-height:1.4;color:var(--muted);margin:0}.menu{display:grid;gap:11px;margin-top:30px}.primary,.secondary,.ghost,.soft{min-height:56px;border-radius:22px;padding:12px 18px;font-size:15px;font-weight:750;line-height:1.35;text-align:center;border:1px solid var(--line);box-shadow:none}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.secondary{background:rgba(255,253,252,.92);color:var(--text)}.ghost,.soft{background:#f0e5df;color:var(--text)}.menu>button{font-size:15px}.text-button{color:var(--muted);background:none;font-size:14px;min-height:44px}.menu>button.primary{box-shadow:0 10px 24px #d992841f}.bottom-actions{margin-top:auto;padding-top:26px;gap:10px}.section-title{font-size:25px;font-weight:800;letter-spacing:-.5px;margin:6px 0 22px}.muted{color:var(--muted);line-height:1.55}.empty{font-size:15px;line-height:1.5;color:var(--muted);padding:28px 0;background:none}.empty button{margin-top:22px}.footer{font-size:11px;color:#a0948e;background:none}
.list{display:grid;gap:12px;margin-top:18px}.partner-row,.choose-partner{gap:12px;padding:18px 15px;background:var(--panel);border:1px solid var(--line);border-radius:24px;width:100%;text-align:left;margin-bottom:12px;min-height:84px}.partner-name{font-size:16px;font-weight:800}.partner-sub{font-size:12px;color:var(--muted);line-height:1.45;margin-top:5px;font-weight:400}.mini-score{display:none}.avatar{background:#ead5ce;color:#8e6258;border:0;width:46px;height:46px;flex-shrink:0;font-weight:800}.badge{background:var(--accent);color:#fff;border:0;font-size:11px;min-width:21px;min-height:21px;height:auto;line-height:21px;border-radius:20px}.partner-link:active{background:#f4eae4}
.play-heading{margin-bottom:10px}.play-screen .game-top{display:flex;align-items:center;gap:7px;min-height:42px}.game-category-control{flex:1;min-width:0}.game-top .choice-control{min-width:0}.game-top .choice-trigger{min-height:42px;border-radius:16px;padding:8px 10px;font-size:12px}.mode-button{background:#fffaf7;border:1px solid var(--line);border-radius:16px;font-size:12px;min-height:42px;padding:7px 9px;gap:5px;color:var(--text)}.mode-button .mode-art{width:21px;height:21px;flex-shrink:0}.mode-button:active{background:#f2e5de}.game-top .score{font-size:12px;gap:4px;display:flex;align-items:center;white-space:nowrap}.score i{display:none}.score #my-score{font-weight:800;color:var(--text)}.score span:last-child{font-size:10px;color:var(--muted)}.game-top .mode-button{font-size:12px}.play-screen .ball-wrap{display:flex;align-items:center;justify-content:center;flex:1;min-height:345px;padding:24px 0;margin:0}.play-screen .ball{width:min(74vw,294px);height:auto;aspect-ratio:1;border:1px solid #e4c9c0;border-radius:50%;position:relative;background:radial-gradient(circle at 33% 27%,#fffffffa,#fffaf7dc 20%,#e8c6bd6b 52%,#b8c8b233 77%,#ffffff99);box-shadow:inset -15px -18px 40px #caa09120,0 20px 48px #644e4611;transform:none;filter:none;overflow:hidden;animation:blizhe-breathe 6s ease-in-out infinite}.play-screen .ball:before{content:'';position:absolute;inset:35px 20px 32px;border:1px solid #e3bdbb66;border-radius:50%;transform:rotate(-28deg) scaleY(.7);background:none;filter:none}.play-screen .ball:after{display:none}.orb-mist,.orb-light{display:none}.ball-text{position:relative;z-index:1;display:flex;align-items:center;flex-direction:column;padding:20px;gap:9px;color:var(--text)}.ball-heart{width:36px;height:36px;stroke:#d99d8d;stroke-width:1.5;margin-bottom:4px}.play-screen .ball-text b{font-size:18px;line-height:1.2;font-weight:800;color:var(--text);text-shadow:none}.play-screen .ball-text span{font-size:11px;color:var(--muted)}.play-screen .ball.shaking{animation:blizhe-shake 1000ms ease-in-out infinite}.play-screen .ball.revealed{animation:blizhe-reveal 900ms ease-out both}.game-footer{display:grid;gap:10px;padding:14px 0 0}.game-footer>button{width:100%;font-size:14px}.game-footer>button.ghost{background:transparent;border:0;min-height:44px}.active-summary,.motion-status{color:var(--muted);font-size:12px;text-align:center;margin:0}.active-detail .wish-text{font-size:24px;line-height:1.4;font-weight:750;color:var(--text);margin:18px 0}.active-actions{grid-template-columns:1fr;gap:10px}.active-actions .ghost{background:var(--panel)}.status{color:var(--muted);font-size:13px}.status i{background:var(--success)}
.form-group{margin:0 0 15px}.form-group label,.field-label{font-size:13px;color:var(--muted);margin:0 0 7px;display:block}textarea,select,input[type=email],input[type=text],input[type=password]{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:20px;padding:14px;font-size:16px;width:100%;line-height:1.4}textarea{min-height:140px;resize:vertical}.wish-prefix{display:none}.field-meta{color:var(--muted);font-size:11px;display:flex;justify-content:space-between;gap:10px;margin-top:6px}.form-error,.danger-text{color:var(--danger)}.wish-options{margin:0 0 20px}.wish-options>summary{display:flex;justify-content:space-between;gap:12px;list-style:none;color:var(--muted);font-size:12px;cursor:pointer;min-height:44px;align-items:center}.wish-options summary::-webkit-details-marker{display:none}.wish-options>summary span:last-child{padding:8px 10px;border:1px solid var(--line);border-radius:14px;background:#fffaf7}.wish-options[open]{padding-bottom:4px}.list-title{font-size:18px;font-weight:750;color:var(--text);margin:25px 0 14px}.wish-item{padding:17px 0;border-bottom:1px solid var(--line)}.wish-item-text{font-size:16px;font-weight:600;line-height:1.5}.wish-item-meta{font-size:12px;line-height:1.45;color:var(--muted)}.small-button{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:9px 12px;min-height:44px;font-size:12px}.small-button.danger-text{color:var(--danger)}
.choice-trigger{background:#fffaf7;color:var(--text);border:1px solid var(--line);border-radius:20px;min-height:52px;font-size:16px;padding:12px 14px}.choice-menu{background:var(--panel);border:1px solid #d8b6a9;border-radius:20px;box-shadow:0 12px 32px #493f3b14;padding:7px;z-index:500}.choice-option{background:transparent;color:var(--text);border:0;border-radius:14px;font-size:15px;padding:12px;min-height:48px}.choice-option[aria-selected=true]{background:#f7e7e2;color:var(--text)}.choice-option:active,.choice-option:hover{background:#f4e9e2}.choice-check{color:#a77466}.choice-option .mode-art{width:26px;height:26px}
.profile-summary{padding:16px 0 20px;gap:14px}.profile-avatar{width:58px;height:58px;font-size:23px}.profile-name{font-size:23px;font-weight:800}.profile-username{font-size:14px;color:var(--muted)}.profile-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0;border:0}.profile-stats>div{border:1px solid var(--line);border-radius:25px;padding:16px;background:#fffaf7}.profile-stats strong{font-size:31px;line-height:1.1}.profile-stats span{font-size:12px;color:var(--muted);display:block;margin-top:6px}.pair-progress-card{background:var(--panel);border:1px solid var(--line);border-radius:26px;padding:18px;margin-top:13px}.achievement-progress{font-size:12px;gap:6px;margin-top:12px}.achievement-progress b{color:var(--muted);font-weight:400}.achievement-progress i{height:7px;background:#ece2dc}.achievement-progress em{background:linear-gradient(90deg,#e7c6bd,#d99284)}.wallet-row{gap:8px;margin:18px 0 5px}.wallet-row span{background:#fffaf7;border:1px solid var(--line);border-radius:22px;min-height:76px;font-size:12px;padding:10px 5px;color:var(--muted)}.wallet-row b{color:var(--text);font-size:18px}.wallet-row svg{color:#bd8577}.setting-row{background:transparent;color:var(--text);min-height:66px;font-size:16px;padding:16px 0;border-color:var(--line)}.setting-value{font-size:14px;color:var(--muted)}.setting-row .partner-sub{display:block}.setting-row select{width:150px;padding:10px;font-size:13px}.setting-row .choice-control{width:155px;flex-shrink:0}.setting-row .choice-trigger{font-size:13px;padding:10px;min-height:44px}.switch{background:#e8ddd7;border:0}.switch:after{background:#fff}.switch:checked{background:#b8c8b2}.pair-actions-link small{color:var(--muted);font-size:12px}.pair-actions-link strong{font-size:18px}.partner-active-task{border:1px solid var(--line);border-radius:24px;background:#fffaf7;padding:17px}.task-heading h3{font-size:18px}.task-lock{stroke:#bd8577}.task-meta,.task-date,.task-private,.completed-task p{color:var(--muted);font-size:12px}.task-state{font-size:15px}.completed-task{border-color:var(--line)}.completed-task h3{font-size:16px}.completed-reward{font-size:19px}.task-empty{font-size:14px;color:var(--muted)}
.message,.rule-note{border:1px solid var(--line);border-radius:24px;padding:17px;background:#fffaf7;color:var(--text)}.notification.unread{border-color:#d59b8b}.notification-result{color:var(--muted)}.message-title{font-size:15px}.message-text{font-size:16px}.notification-date{font-size:11px;color:var(--muted)}.notification-meta{font-size:12px;color:var(--muted)}.unread-mark{background:#d99284}.notification .message-actions button{font-size:13px;border-radius:18px}.message-actions .primary{background:#dfe8dc;color:#536451;border-color:#c7d5c2}.rule-note{margin:16px 0;font-size:14px}.rule-note p{margin:7px 0 0;color:var(--muted)}.rules-list{gap:12px}.rules-list>section{border:1px solid var(--line);border-radius:24px;padding:18px;background:#fffaf7}.rules-list h2{font-size:19px;font-weight:750}.rules-list p{color:var(--muted);font-size:16px;line-height:1.55}
.pair-action-summary{border:1px solid var(--line);border-radius:24px;background:var(--panel);padding:12px;gap:6px}.pair-action-summary>span{color:var(--muted);border-color:var(--line);background:#fffaf7;font-size:10px;border-radius:17px}.pair-action-summary b,.pair-action-summary strong{color:var(--text)}.pair-action-summary svg{color:#bd8577}.pair-action-summary>div{border-color:var(--line);padding:5px}.pair-action-summary>div strong{font-size:28px}.pair-timeline{padding-left:0;gap:12px}.pair-timeline:before,.pair-action:before{display:none}.pair-action{border:1px solid var(--line);border-radius:24px;padding:15px;grid-template-columns:36px 1fr;gap:11px;background:#fffaf7}.pair-action-icon{width:34px;height:34px;background:#f1dfd9;color:#9b6d62}.pair-action-icon svg{width:21px;height:21px}.pair-action h3{font-size:15px;font-weight:750}.pair-action p{color:var(--muted);font-size:13px}.pair-action small{font-size:11px;color:var(--muted)}.pair-actions-end{color:var(--muted);font-size:13px}.pair-actions-end span{color:var(--accent)}
dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-bottom:0;max-width:430px;width:100%;max-height:90dvh;border-radius:30px 30px 0 0;box-shadow:0 -10px 40px #493f3b12}dialog::backdrop{background:#493f3b52;backdrop-filter:blur(3px)}.sheet{padding:0 20px calc(24px + var(--safe-bottom,0px))}.sheet-top{height:52px}.sheet-handle{background:#d8c8c0;width:38px;height:3px}.sheet-top .icon-button{background:none;color:var(--muted)}.sheet h2{font-size:23px;color:var(--text);margin:4px 0 18px}.sheet p{color:var(--muted);font-size:15px}.sheet .actions{gap:10px}.sheet .payment-note{font-size:12px;color:var(--muted)}.sheet .form-error{color:var(--danger)}.achievement-sheet>svg{color:#cf9c8c}.achievement-sheet li{background:#fffaf7;border-color:var(--line);border-radius:20px;padding:15px}.achievement-sheet li b{font-size:18px}.achievement-sheet li span{color:var(--muted);font-size:14px}.bonus-actions .text-button{color:var(--text);background:#f0e5df;border-color:var(--line);border-radius:18px;min-height:48px;font-size:12px}.choice-two-options .secondary{border-radius:22px;background:#fffaf7;font-size:17px;padding:16px}.choice-two-options span{color:#a27f74;font-size:12px}.partner-wish-reveal blockquote{font-size:25px;color:var(--text);border-color:var(--line)}.reveal-symbol{stroke:#bd8577}.payment-email{background:var(--panel);border-color:var(--line);color:var(--text)}.payment-amount{color:var(--text)}
.gate .brand{font-size:22px}.gate-body h1{font-size:30px;letter-spacing:-.8px}.gate-body p{color:var(--muted)}.gate-body.first-run{align-items:stretch;text-align:left;padding:35px 0 20px;gap:12px}.first-run h1{font-size:34px}.first-run>p{max-width:none}.first-run .rule-note{margin:0}.first-run .rule-note strong{font-size:15px}.first-run .rule-note p{font-size:14px}.age-check{font-size:14px}.first-run>button{max-width:none}.loader{border-color:#ead5ce;border-top-color:var(--accent)}.toast,.connection-status{color:var(--text);background:#fffaf7;border-color:var(--line);box-shadow:0 6px 25px #493f3b15;font-size:13px}.qr-frame{background:#fff;border-radius:22px;padding:12px;width:248px;height:248px;margin-top:22px}
@keyframes blizhe-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes blizhe-shake{0%,100%{transform:rotate(0) scale(1)}25%{transform:rotate(-7deg) scale(1.015)}75%{transform:rotate(7deg) scale(1.015)}}@keyframes blizhe-reveal{0%{transform:scale(.98);box-shadow:0 0 0 #d9928400}40%{transform:scale(1.025);box-shadow:0 0 55px #d9928433}100%{transform:scale(1);box-shadow:0 20px 48px #644e4611}}
html[data-reduced-motion=true] *,html[data-reduced-motion=true] *:before,html[data-reduced-motion=true] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:350px){.screen,.gate{padding-left:16px;padding-right:16px}#home-tagline{font-size:30px}.hero{padding-bottom:50px}.play-heading .brand{font-size:17px}.game-top{gap:5px}.game-top .mode-button{font-size:11px;padding:6px}.game-top .choice-trigger{font-size:11px;padding:8px}.game-top .score span:last-child{display:none}.profile-stats strong{font-size:28px}.profile-stats>div{padding:14px}.profile-stats span{font-size:11px}.wallet-row{gap:5px}.wallet-row span{font-size:11px}.sheet{padding-left:16px;padding-right:16px}.message-actions{gap:6px}.message-actions button{padding:10px 6px}.setting-row .choice-control{width:130px}}
@media(max-height:700px){.hero{padding:25px 0 35px}.play-screen .ball-wrap{min-height:280px;padding:20px 0}.play-screen .ball{width:min(65vw,260px)}}

.active-detail .active-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.active-detail .active-actions button{width:100%;padding:12px 8px;min-width:0}
