
:root{--paper:#f5f4ef;--card:#fff;--ink:#172c3c;--muted:#78848c;--line:#e7e9e5;--gold:#c5a467;--gold-light:#faf5e9;--teal:#258474;--teal-light:#edf6f2;--danger:#b75246;--shadow:0 8px 32px #172c3c05;--radius:18px;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible{outline:3px solid #4d9d92;outline-offset:4px}input:focus,select:focus,textarea:focus{outline:2px solid #5c9e90;outline-offset:1px}a{color:inherit}.icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex:none}h1,h2,h3,p{margin:0}h1{font-size:30px;font-weight:600;letter-spacing:-.6px;line-height:1.35}h2{font-size:17px;font-weight:600}h3{font-size:15px;font-weight:600}small{font-size:11px}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2.7px;text-transform:uppercase;font-weight:600}.small{font-size:12px}.mono{font-variant-numeric:tabular-nums}.gold{color:#ab8343}.green{color:var(--teal)}.negative{color:var(--danger)}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.stack{display:grid;gap:18px}.gap8{gap:8px}.full{width:100%}.mb20{margin-bottom:20px}.mb12{margin-bottom:12px}.mt20{margin-top:20px}.subtext{color:var(--muted);font-size:12px;margin-top:6px}.btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:600;white-space:nowrap;transition:background .2s,transform .2s}.btn:hover{background:#f4f5f2}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:#294559}.btn.gold-btn{background:#e0c48a;color:#29333a;border-color:#e0c48a}.btn.soft{background:var(--teal-light);color:var(--teal);border-color:transparent}.btn.danger{color:var(--danger)}.btn.small-btn{padding:6px 11px;font-size:11px}.text-btn{border:0;background:none;padding:4px 0;font-size:12px;display:inline-flex;align-items:center;gap:5px}.text-btn:hover{text-decoration:underline}.icon-btn{border:1px solid var(--line);background:white;border-radius:50%;width:36px;height:36px;display:grid;place-items:center}.tag{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;border-radius:5px;padding:3px 7px;background:#f1f3f2;color:#65727b;white-space:nowrap}.tag.green-tag{background:var(--teal-light);color:var(--teal)}.tag.gold-tag{background:#fbf2df;color:#ab8343}.tag.red-tag{background:#fbede9;color:var(--danger)}
.prototype-bar{height:44px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 25px;position:sticky;top:0;z-index:40;font-size:11px;color:#6f7b81}.proto-label{display:flex;align-items:center;gap:9px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}.mode-toggle{display:flex;gap:3px;background:#f2f3f0;padding:3px;border-radius:7px}.mode-toggle button{padding:4px 12px;border:0;border-radius:5px;background:none;color:#75818a;font-size:11px}.mode-toggle button.active{background:white;color:var(--ink);box-shadow:0 1px 4px #172c3c13}.prototype-actions{display:flex;align-items:center;gap:16px}.reset{border:0;background:none;color:#8d969b;font-size:10px}.sidebar{position:fixed;top:44px;bottom:0;left:0;width:224px;background:var(--ink);color:#c6d0d7;padding:31px 18px 22px;z-index:30;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;margin:0 10px 39px;color:#fff}.brand img{width:40px;height:40px}.brand-name{font-size:21px;letter-spacing:3px;line-height:1.2}.brand-en{font-size:8px;letter-spacing:2.2px;color:#a8b3b9;margin-top:7px}.nav-caption{font-size:9px;letter-spacing:1.8px;color:#768a98;margin:12px 16px}.nav{display:grid;gap:6px}.nav button{display:flex;align-items:center;gap:13px;padding:13px 16px;border:0;background:none;color:#b8c5cd;border-radius:9px;font-size:13px;text-align:left;position:relative}.nav button .icon{width:18px;height:18px;opacity:.8}.nav button.active{background:#2a4050;color:#efdbb2}.nav button.active:before{content:'';position:absolute;left:0;top:16px;bottom:16px;width:3px;border-radius:4px;background:#d2b77e}.nav button:hover{background:#243b4c}.nav-count{margin-left:auto;border-radius:4px;padding:0 6px;background:#40515c;font-size:10px;color:#f1e2c5}.sidebar-bottom{margin-top:auto}.side-note{margin:25px 12px;color:#8096a4;font-size:10px;line-height:1.9;display:flex;gap:10px}.side-profile{padding:18px 9px 0;border-top:1px solid #ffffff12;display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;background:#e7ecdf;border-radius:50%;display:grid;place-items:center;color:#3c6059;font-family:Georgia,'SimSun',serif;font-size:15px;flex-shrink:0}.side-profile .avatar{background:#385061;color:#e0c48a}.main{margin-left:224px;min-height:calc(100vh - 44px)}.topbar{height:77px;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between;background:#f9f9f5}.breadcrumbs{font-size:11px;display:flex;align-items:center;gap:12px;color:#929da4}.breadcrumbs strong{font-weight:500;color:#485b69}.topbar-right{display:flex;align-items:center;gap:14px;font-size:11px}.bell-wrap{position:relative}.bell-wrap:after{content:'';width:5px;height:5px;background:var(--gold);position:absolute;right:7px;top:7px;border:2px solid white;box-sizing:content-box;border-radius:50%}.content{padding:30px 38px 20px;max-width:1510px;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:15px}.page-head p{color:var(--muted);font-size:12px;margin-top:8px}.page-head .eyebrow{color:#a09072;margin-bottom:8px;font-size:9px}.page-actions{display:flex;gap:10px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(275px,1fr);gap:22px;margin-bottom:24px}.passport{min-height:292px;border-radius:18px;padding:28px 30px 23px;background:radial-gradient(ellipse at 88% 50%,#36526470,transparent 60%),#172c3c;color:#fff;position:relative;overflow:hidden;box-shadow:0 9px 20px #172c3c0b}.passport:after{content:'';position:absolute;inset:8px;border:1px solid #e2c78524;border-radius:12px;pointer-events:none}.passport:before{content:'';position:absolute;width:330px;height:330px;border-radius:50%;border:1px solid #d4bd8826;right:-70px;top:-35px;box-shadow:0 0 0 26px #d4bd8807,0 0 0 52px #d4bd8807,0 0 0 78px #d4bd8807}.passport-inner{position:relative;z-index:1}.passport-head{display:flex;align-items:center;justify-content:space-between;color:#cfb77f}.passport-head .eyebrow{font-size:9px}.passport-head .icon{width:28px;height:28px}.passport-title{font-size:25px;font-weight:400;letter-spacing:4px;margin-top:6px;font-family:Georgia,'Songti SC','SimSun',serif}.passport-body{display:flex;align-items:center;justify-content:space-between;margin:26px 0 23px;gap:20px}.passport-name{font-size:30px;font-weight:400;letter-spacing:5px;font-family:Georgia,'SimSun',serif}.passport-identity{color:#9cafba;font-size:10px;margin-top:8px;letter-spacing:.8px}.passport-emblem{width:100px;height:100px;border:1px solid #d6bd7c70;border-radius:50%;display:grid;place-items:center;position:relative;color:#d6bd7c;margin-right:19px;transform:rotate(-12deg)}.passport-emblem:before{content:'';position:absolute;inset:6px;border:1px dashed #d6bd7c70;border-radius:50%}.passport-emblem .icon{width:40px;height:40px}.passport-emblem small{position:absolute;bottom:16px;font-size:7px;letter-spacing:2px}.passport-foot{border-top:1px solid #ffffff13;padding-top:14px;display:flex;justify-content:space-between;align-items:center;color:#b2c1c9;font-size:10px;gap:10px}.passport-foot strong{color:#dac28b;font-weight:400}.point-card{border-radius:18px;background:#fff;border:1px solid var(--line);padding:25px 25px 22px;display:flex;flex-direction:column}.point-label{font-size:12px;color:#74828c;display:flex;align-items:center;justify-content:space-between}.point-label .icon{color:#a49a86;width:17px}.points-big{font-size:58px;line-height:1.1;font-weight:500;letter-spacing:-2.5px;margin:17px 0 4px;font-family:Arial,sans-serif}.points-big small{font-size:12px;color:#849098;letter-spacing:0;margin-left:8px;font-family:inherit}.pending{font-size:11px;color:#859198;margin-bottom:19px}.pending strong{font-weight:500;color:#b39359;margin-left:5px}.progress-track{height:5px;background:#eef0eb;border-radius:5px;overflow:hidden;margin-top:10px}.progress-track>span{display:block;background:#c7ad76;height:100%;border-radius:5px}.point-card .btn{margin-top:auto}.point-card .progress-caption{font-size:10px;color:#829097;margin:9px 0 17px}.grid-main{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(275px,1fr);gap:22px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);min-width:0}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:22px}.panel-head .subtext{margin-top:4px}.stamp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stamp-tile{padding:0;border:0;background:none;text-align:center}.stamp-circle{width:74px;height:74px;border-radius:50%;margin:0 auto 11px;border:1.5px dashed #c8b37d;background:#faf8ef;color:#9d854c;display:grid;place-items:center;position:relative;transform:rotate(-7deg);transition:transform .2s}.stamp-circle:before{content:'';position:absolute;inset:5px;border:1px solid #d6c9a5;border-radius:50%}.stamp-circle .icon{width:27px;height:27px}.stamp-circle.teal{border-color:#91bdb3;background:#f1f8f4;color:#4b8e7e}.stamp-circle.teal:before{border-color:#bdd8cd}.stamp-circle.gray{color:#aaaead;background:#f6f7f4;border-color:#ced4cd}.stamp-circle.gray:before{border-color:#e1e4df}.stamp-tile:hover .stamp-circle{transform:rotate(0) scale(1.04)}.stamp-tile strong{display:block;font-size:11px;font-weight:500}.stamp-tile small{display:block;color:#94a099;font-size:9px;margin-top:4px}.journey-note{margin-top:22px;padding-top:15px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;color:#839087;font-size:10px}.journey-note .icon{width:14px;height:14px}.journey-note button{margin-left:auto}.explore{background:#f0f5ef;border-color:#e0e8db;position:relative;overflow:hidden}.explore .eyebrow{color:#65806a;font-size:8px}.explore h2{font-family:Georgia,'SimSun',serif;font-weight:400;font-size:21px;margin:10px 0}.explore p{font-size:11px;color:#7a8b7f;max-width:210px}.explore-track{display:flex;align-items:center;gap:7px;margin:25px 0 20px;color:#4a7a68;font-size:10px}.explore-track .track-line{height:1px;background:#bdcfc0;flex:1}.explore-icon{width:30px;height:30px;border-radius:50%;background:#e2eddf;display:grid;place-items:center}.explore-icon .icon{width:16px;height:16px}.ticket{border:1px solid #eee6d5;background:#fcfaf4;border-radius:12px;display:flex;align-items:center;padding:18px;gap:15px;position:relative;overflow:hidden}.ticket.blue-ticket{background:#f3f7f8;border-color:#e0e9ec}.ticket-value{color:#ad8d4e;font-size:32px;font-family:Georgia,serif;line-height:1;flex-shrink:0;min-width:48px;text-align:center}.ticket-value small{font-size:12px;margin-left:2px}.ticket-info{flex:1;border-left:1px dashed #e1d5bc;padding-left:17px}.ticket-info h3{font-size:12px}.ticket-info p{font-size:10px;color:#969183;margin-top:4px}.ticket .btn{font-size:10px;padding:7px 11px}.reward-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.reward-row .ticket{padding:16px;flex-wrap:wrap}.reward-row .ticket-info{min-width:100px}.reward-row .ticket-footer{width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:2px;padding-top:12px;border-top:1px dashed #e3dbc9;font-size:10px;color:#9a8c73}.transaction-list{display:grid}.transaction{display:flex;align-items:center;gap:11px;padding:14px 0;border-bottom:1px solid #f0f1ee}.transaction:last-child{border-bottom:0;padding-bottom:0}.transaction:first-child{padding-top:0}.transaction-icon{width:34px;height:34px;border-radius:9px;background:#f2f5f0;color:#7b9486;display:grid;place-items:center}.transaction-icon .icon{width:17px;height:17px}.transaction-detail{flex:1;min-width:0}.transaction-detail strong{font-size:11px;font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-detail small{color:#97a1a6;font-size:9px}.transaction-value{text-align:right;font-size:12px;color:var(--teal)}.transaction-value small{display:block;color:#a2abae;font-size:9px;margin-top:2px}.footer{display:flex;align-items:center;justify-content:space-between;color:#a0a7a7;font-size:9px;padding:25px 0 10px;gap:15px}.footer span:last-child{letter-spacing:1px;font-size:8px}.rewards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.reward-card{padding:23px;background:#fff;border:1px solid var(--line);border-radius:18px}.reward-art{height:140px;border-radius:12px;background:#f4eee1;display:grid;place-items:center;margin-bottom:23px;position:relative;overflow:hidden}.reward-art:before,.reward-art:after{content:'';position:absolute;border:1px solid #ceb98b45;width:200px;height:200px;border-radius:50%;right:-50px;top:-30px}.reward-art:after{width:170px;height:170px;right:-35px;top:-15px}.reward-art .icon{width:55px;height:55px;color:#9e8147;position:relative;z-index:1}.reward-art.blue-art{background:#eaf0f2}.reward-art.blue-art .icon{color:#567f91}.reward-art .art-value{position:absolute;bottom:10px;right:15px;font-family:Georgia,serif;font-size:30px;color:#a58a5260}.reward-price{display:flex;justify-content:space-between;align-items:center;margin:24px 0 16px}.reward-price strong{font-size:23px;font-weight:500}.reward-price small{color:#8b979e;font-size:11px}.rule-banner{padding:12px 16px;background:#f4f1e8;color:#91805f;font-size:11px;border-radius:9px;margin-bottom:22px;display:flex;gap:10px;align-items:flex-start}.rule-banner .icon{width:17px;height:17px;margin-top:1px}.tabs{display:flex;gap:5px;margin-bottom:20px;flex-wrap:wrap}.tabs button{border:1px solid transparent;background:none;padding:7px 14px;border-radius:7px;color:#839098;font-size:12px}.tabs button.active{background:#fff;border-color:var(--line);color:var(--ink)}.empty{text-align:center;padding:50px 20px;color:#86939b}.empty .icon{width:42px;height:42px;margin-bottom:14px;color:#b9c1bd}.empty h3{color:#536877;margin-bottom:7px}.empty p{font-size:12px;margin-bottom:18px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:11px;text-align:left}th{font-size:10px;color:#91a0a8;font-weight:500;background:#fafbf8}th,td{padding:13px 12px;border-bottom:1px solid #edf0eb;white-space:nowrap}td strong{font-weight:500}td .muted{font-size:10px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafbf9}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:24px}.stat{padding:19px 21px;background:white;border:1px solid var(--line);border-radius:14px}.stat-title{font-size:11px;color:#8b979d;display:flex;justify-content:space-between}.stat-title .icon{width:16px;height:16px;color:#b4bcb8}.stat-number{font-size:30px;font-family:Arial,sans-serif;line-height:1.3;margin-top:10px}.stat-number small{font-family:inherit;font-size:11px;color:#91a09f;margin-left:6px}.stat-foot{font-size:9px;color:#9ba5a5;margin-top:8px}.admin-grid{display:grid;grid-template-columns:1.8fr 1fr;gap:22px}.chart-row{display:flex;align-items:end;gap:14px;height:150px;border-bottom:1px solid var(--line);margin-top:28px;padding:0 8px}.chart-col{flex:1;text-align:center;position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.chart-col .bar{width:62%;max-width:40px;background:#bccfc9;border-radius:4px 4px 0 0;min-height:3px}.chart-col:nth-last-child(2) .bar{background:#324f5a}.chart-col .bar-value{font-size:10px;color:#81968b;margin-bottom:6px}.chart-col .bar-day{position:absolute;bottom:-23px;font-size:9px;color:#92a09f}.chart-note{font-size:10px;color:#9aa3a1;margin-top:38px}.dept-summary{display:grid;gap:22px}.dept-summary .progress-track{height:7px}.dept-summary .progress-track>span{background:#719d8c}.role-select{border:1px solid #dfe4dd;background:#fff;border-radius:7px;padding:7px 10px;color:#60747d;font-size:11px;max-width:190px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:12px;color:#617480}.field input,.field select,.field textarea{width:100%;border:1px solid #dfe5df;background:#fcfdfb;border-radius:8px;padding:11px 12px;color:#344c5b;min-width:0}.field textarea{resize:vertical;min-height:90px}.field small{color:#92a098;font-size:10px}.field.wide{grid-column:1/-1}.calc-box{background:#f2f6ef;border:1px solid #dde7d8;border-radius:12px;padding:18px;display:flex;justify-content:space-between;align-items:center}.calc-box strong{font-size:24px;font-weight:500;color:#4b7867}.form-error{color:var(--danger);font-size:12px;padding:8px 0}.search-box{border:1px solid var(--line);border-radius:9px;background:#fff;display:flex;align-items:center;gap:9px;padding:0 12px;max-width:400px;margin-bottom:20px}.search-box input{padding:11px 0;outline:none;border:0;min-width:0;width:100%;background:none;font-size:12px}.search-box .icon{color:#94a19d;width:17px}.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.member-card .avatar{width:45px;height:45px;font-size:20px}.member-card .member-stat{display:flex;justify-content:space-between;margin-top:22px;padding-top:16px;border-top:1px solid var(--line);font-size:11px}.member-stat strong{display:block;font-size:20px;font-weight:500}.review-detail{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin:20px 0}.review-detail dt{font-size:11px;color:#92a09f}.review-detail dd{margin:5px 0 0;font-size:13px}.auth-empty{max-width:600px;margin:65px auto}.auth-demo-note{padding:13px 17px;background:#f1f4ed;border-radius:8px;font-size:11px;color:#78907e;margin-bottom:20px}.rule-list{display:grid;gap:15px;font-size:12px;color:#71818a}.rule-list p{padding-bottom:14px;border-bottom:1px solid var(--line)}.rule-list p:last-child{border:0;padding:0}.rule-list strong{display:block;color:#354d5c;margin-bottom:4px;font-weight:600}.audit-dot{width:7px;height:7px;background:#b4cbbd;border-radius:50%;margin-top:7px}.audit-item{display:flex;gap:13px;padding:15px 0;border-bottom:1px solid var(--line)}.audit-item:last-child{border:0}.audit-item h3{font-size:12px}.audit-item p{font-size:11px;color:#81918a;margin-top:5px}.audit-item small{color:#a1aaa7}.mobile-brand{display:none}.bottom-nav{display:none}
dialog{border:1px solid #e3e6df;border-radius:20px;width:min(500px,calc(100vw - 28px));padding:0;color:var(--ink);box-shadow:0 25px 90px #112b3930;max-height:88vh;overflow-y:auto}dialog::backdrop{background:#112b3960;backdrop-filter:blur(5px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:23px 25px 0}.modal-head h2{font-size:18px}.modal-body{padding:20px 25px 25px}.modal-close{border:0;background:#f2f4ef;width:28px;height:28px;border-radius:50%;display:grid;place-items:center}.modal-close .icon{width:15px;height:15px}.modal-actions{display:flex;gap:10px;margin-top:22px;justify-content:flex-end}.receipt{background:#f8f6ee;border:1px dashed #d6c9a8;border-radius:12px;padding:20px;margin:18px 0;display:grid;gap:9px}.receipt .row{font-size:12px}.receipt .muted{font-size:11px}.celebration{text-align:center;padding:20px 0 5px}.celebration h2{font-family:Georgia,'SimSun',serif;font-size:25px;font-weight:400;margin:18px 0 8px}.celebration p{font-size:12px;color:#7f8e92}.envelope{width:155px;height:110px;background:#d7be84;border:1px solid #b39b64;border-radius:5px;margin:24px auto 30px;position:relative;box-shadow:0 10px 20px #c3b78b25}.envelope:after{content:'';position:absolute;left:0;top:0;width:100%;height:100%;background:linear-gradient(33deg,#e3ce9d 49.5%,transparent 50%) left/50% 100%,linear-gradient(-33deg,#dac18b 49.5%,transparent 50%) right/50% 100%;background-repeat:no-repeat;border-radius:5px}.envelope:before{content:'';position:absolute;left:0;top:-1px;border-left:77px solid transparent;border-right:77px solid transparent;border-top:58px solid #e6d3a6;z-index:2;transform-origin:top;animation:envelope-open .8s .2s both}.seal{position:absolute;top:40px;left:61px;z-index:3;width:32px;height:32px;border-radius:50%;background:#8e7547;color:#eee0bc;display:grid;place-items:center;font-family:'SimSun',serif;font-size:15px}.envelope-card{position:absolute;inset:10px 18px;background:#fffaf1;border-radius:3px;display:grid;place-items:center;color:#aa8750;font-size:24px;font-family:Georgia,serif;animation:card-rise 1s .6s both}.stamp-large{width:120px;height:120px;margin:10px auto;background:#f1f7f0;border:2px dashed #85ad96;border-radius:50%;display:grid;place-items:center;color:#5b8a71;animation:stamp-in .5s both}.stamp-large .icon{width:45px;height:45px}#toast{position:fixed;left:calc(50% + 90px);bottom:35px;transform:translate(-50%,15px);padding:12px 20px;background:#1c3545;color:#f2f5ef;font-size:12px;border-radius:10px;box-shadow:0 6px 25px #142f4620;opacity:0;pointer-events:none;z-index:99;transition:all .2s;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.fade-in{animation:fade-in .3s both}@keyframes fade-in{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes envelope-open{to{transform:rotateX(170deg)}}@keyframes card-rise{to{transform:translateY(-45px)}}@keyframes stamp-in{from{opacity:0;transform:scale(1.25) rotate(-15deg)}to{opacity:1;transform:scale(1) rotate(-7deg)}}
@media(min-width:1600px){.content{padding-top:38px}.passport{min-height:310px}.passport-body{margin:32px 0}.sidebar{width:240px}.main{margin-left:240px}}
@media(max-width:1200px){.sidebar{width:192px;padding-left:12px;padding-right:12px}.main{margin-left:192px}.content{padding:25px}.topbar{padding:0 25px}.hero-grid,.grid-main{grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);gap:18px}.passport{padding:25px}.passport-emblem{margin-right:0;width:83px;height:83px}.passport-name{font-size:26px}.panel{padding:21px}.stamp-circle{width:61px;height:61px}.reward-row{grid-template-columns:1fr}.reward-row .ticket:last-child{display:none}.stats-grid{gap:12px}.admin-grid{grid-template-columns:1.5fr 1fr}.rewards-grid{gap:14px}.reward-card{padding:18px}.page-head h1{font-size:26px}}
@media(max-width:970px){.sidebar{width:175px}.main{margin-left:175px}.brand{gap:5px;margin-left:8px}.brand-name{font-size:18px}.brand-en{font-size:6px}.nav button{padding:12px;gap:9px;font-size:12px}.content{padding:23px 20px}.topbar{padding:0 20px}.hero-grid{grid-template-columns:1.4fr 1fr;gap:16px}.grid-main{grid-template-columns:1fr}.grid-main>.stack:last-child{display:grid;grid-template-columns:1fr 1fr;align-items:start}.passport{padding:22px;min-height:280px}.passport-emblem{display:none}.point-card{padding:22px}.points-big{font-size:48px}.stamp-circle{width:75px;height:75px}.reward-row{grid-template-columns:1fr 1fr}.reward-row .ticket:last-child{display:flex}.rewards-grid{grid-template-columns:repeat(2,1fr)}.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}.member-grid{grid-template-columns:1fr 1fr}.topbar-right .header-member{display:none}.page-actions .btn{padding:9px 12px}.prototype-bar{padding:0 16px}.role-select{max-width:150px}}
@media(max-width:680px){.prototype-bar{height:42px;padding:0 12px;font-size:9px}.proto-label .proto-extra{display:none}.mode-toggle button{padding:4px 7px;font-size:10px}.prototype-actions{gap:6px}.reset{font-size:9px}.sidebar{display:none}.main{margin-left:0}.topbar{height:61px;padding:0 17px;background:#f9f9f5}.breadcrumbs{display:none}.mobile-brand{display:flex;align-items:center;gap:8px;font-size:16px;letter-spacing:2px}.mobile-brand img{width:29px;height:29px}.topbar-right{gap:10px}.topbar-right>.muted{display:none}.icon-btn{width:32px;height:32px}.role-select{font-size:10px;padding:6px;max-width:157px}.content{padding:23px 17px 90px}.page-head{margin-bottom:22px;align-items:flex-start}.page-head h1{font-size:25px;letter-spacing:0}.page-head p{font-size:11px;max-width:240px;line-height:1.8}.page-head .eyebrow{font-size:8px;letter-spacing:2px}.page-actions .btn{padding:7px 9px;font-size:10px}.page-actions .btn .icon{display:none}.hero-grid{grid-template-columns:1fr;gap:15px;margin-bottom:17px}.passport{min-height:265px;padding:24px}.passport-emblem{display:grid;width:83px;height:83px;margin-right:7px}.passport-title{font-size:23px}.passport-name{font-size:28px}.passport-body{margin:24px 0 20px}.passport-foot{font-size:9px}.point-card{padding:22px;display:block}.point-label{font-size:11px}.points-big{font-size:48px;margin-top:12px}.pending{margin-bottom:16px}.point-card .btn{width:100%;margin-top:0}.point-card .progress-caption{margin-bottom:17px}.grid-main{gap:17px}.grid-main>.stack:last-child{grid-template-columns:1fr}.stack{gap:17px}.panel{padding:20px;border-radius:15px}.panel-head{margin-bottom:20px}.panel-head h2{font-size:16px}.panel-head .subtext{font-size:10px}.stamp-grid{gap:5px}.stamp-circle{width:62px;height:62px;margin-bottom:10px}.stamp-tile strong{font-size:10px}.stamp-tile small{font-size:8px}.journey-note{font-size:9px;gap:5px}.journey-note button{font-size:9px}.reward-row{gap:10px;grid-template-columns:1fr}.reward-row .ticket:last-child{display:flex}.reward-row .ticket{flex-wrap:nowrap}.reward-row .ticket-footer{width:auto;border:0;padding:0;flex-direction:column;gap:6px;flex-shrink:0}.ticket-value{font-size:27px;min-width:35px}.ticket-info{padding-left:12px}.ticket-info p{font-size:9px}.ticket{gap:11px;padding:15px}.ticket .btn{font-size:9px;padding:6px 9px}.explore p{max-width:none}.explore-track{margin:20px 0}.footer{padding:24px 0 0;font-size:8px;flex-wrap:wrap;gap:7px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;padding:10px 6px calc(10px + env(safe-area-inset-bottom));background:#ffffffed;border-top:1px solid var(--line);backdrop-filter:blur(12px);z-index:35;overflow:auto}.bottom-nav button{border:0;background:none;flex:1;min-width:60px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:9px;color:#8a979d;white-space:nowrap}.bottom-nav button.active{color:#a48650}.bottom-nav button .icon{width:20px;height:20px}.rewards-grid{grid-template-columns:1fr}.reward-art{height:130px}.reward-card{padding:22px}.stats-grid{gap:10px;margin-bottom:17px}.stat{padding:16px}.stat-title{font-size:10px}.stat-number{font-size:27px}.stat-foot{font-size:8px}.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.member-grid{grid-template-columns:1fr}.admin-grid{gap:17px}.role-bar{font-size:10px}.rule-banner{font-size:10px;padding:12px}.auth-empty{margin:25px auto}.modal-head{padding:20px 20px 0}.modal-body{padding:18px 20px 22px}.modal-actions{flex-wrap:wrap}.review-detail{gap:13px}.review-detail dd{font-size:12px;overflow-wrap:anywhere}.table-wrap{margin:0 -8px}th,td{padding:12px 9px;font-size:10px}#toast{left:50%;bottom:85px;width:max-content;max-width:90vw}.chart-row{gap:8px}.tabs{gap:1px}.tabs button{font-size:11px;padding:6px 11px}}
@media(max-width:680px){.page-head{display:block}.page-head .page-actions{margin-top:13px}.page-head h1{font-size:24px}.page-head p{max-width:none}.page-actions:empty{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition:none!important;scroll-behavior:auto!important}.envelope-card{transform:translateY(-45px)}}

/* Shengfeng Studio / a restrained, tactile membership experience. */
:root {
  color-scheme:dark; --paper:#0e1b21; --card:#15262d; --ink:#edf0e9; --muted:#9aaeb1;
  --line:#ffffff12; --gold:#d6b779; --gold-light:#3d3726; --teal:#83c9b4; --teal-light:#233d38;
  --danger:#ef9c8d; --shadow:0 14px 45px #00000010; --radius:20px;
  --surface:#1b3037; --surface-hover:#263b42; --panel-top:#192c33; --nav-bg:#0b171d;
  --text-soft:#becbc9; --gold-ink:#e4c58b; --gold-bg:#332f25; --field:#112229;
  --ticket-bg:#20312f; --ticket-border:#b4a87930; --top-bg:#0e1b21e8; --modal-bg:#1a2c33;
  --button-bg:#d9bd84; --button-ink:#26352e; --background-glow:#42695626;
  font-family:'Segoe UI','Microsoft YaHei',sans-serif;
}
:root[data-theme='day'] {
  color-scheme:light; --paper:#f4f2ed; --card:#fffefa; --ink:#233b3c; --muted:#6f8080;
  --line:#203e3a14; --gold:#ac8648; --gold-light:#f4ead8; --teal:#377b65; --teal-light:#e4eee6;
  --danger:#ac493b; --shadow:0 12px 35px #38514706; --surface:#efeee7; --surface-hover:#e7e9df;
  --panel-top:#fffefa; --nav-bg:#14292d; --text-soft:#536b69; --gold-ink:#987137; --gold-bg:#f5ecd9;
  --field:#f7f7f1; --ticket-bg:#f5f0e4; --ticket-border:#b9a37040; --top-bg:#f4f2ede8;
  --modal-bg:#fffefa; --button-bg:#284a43; --button-ink:#fff8e8; --background-glow:#c9d8c84d;
}
body { background:radial-gradient(ellipse at 95% 20%,var(--background-glow),transparent 50%),var(--paper); color:var(--ink); }
::selection { background:#b7cbb34d; }
button { touch-action:manipulation; }
.fade-in { animation:none; }
.gold { color:var(--gold-ink); }
.green { color:var(--teal); }
.subtext,.muted { color:var(--muted); }
.btn { color:var(--text-soft); background:var(--surface); border-color:var(--line); border-radius:10px; min-height:40px; transition:background .18s,box-shadow .18s,transform .18s; }
.btn:hover { background:var(--surface-hover); border-color:#b9c3b52b; box-shadow:0 5px 20px #0000000d; }
.btn.primary { background:var(--button-bg); border-color:transparent; color:var(--button-ink); }
.btn.primary:hover { background:var(--button-bg); filter:brightness(1.08); box-shadow:0 4px 24px #c9ad6e22; }
.btn.primary:disabled { filter:none; box-shadow:none; }
.btn .button-arrow { margin-left:auto; display:grid; place-items:center; }
.btn .icon { transition:transform .25s; }
@media(hover:hover){.btn:hover .button-arrow .icon,.text-btn:hover .icon { transform:translateX(3px); }}
.icon-btn { background:var(--surface); border-color:var(--line); color:var(--text-soft); }
.text-btn { color:var(--text-soft); }
.tag { background:var(--surface); color:var(--text-soft); border:1px solid var(--line); border-radius:6px; font-weight:400; }
.tag.gold-tag { background:var(--gold-bg); color:var(--gold-ink); border-color:#bca67526; }
.tag.green-tag { background:var(--teal-light); color:var(--teal); }
.tag.red-tag { background:#73463833; color:var(--danger); }
.prototype-bar { height:36px; padding:0 24px; background:var(--nav-bg); color:#9baead; border-bottom:1px solid #ffffff0c; font-size:9px; }
.proto-label { font-size:9px; letter-spacing:1px; }
.proto-extra { letter-spacing:.2px; color:#809593; }
.status-dot { background:#96b8a8; box-shadow:0 0 10px #9cba8b25; }
.mode-toggle { background:#ffffff06; border:1px solid #ffffff10; padding:2px; }
.mode-toggle button { color:#96aaa9; font-size:10px; padding:3px 10px; }
.mode-toggle button.active { background:#294039; color:#efdfbd; box-shadow:inset 0 0 0 1px #cdb27628; }
.reset { color:#a1b0ae; }
.sidebar { top:36px; width:216px; padding:34px 17px 24px; background:radial-gradient(ellipse at 0% 0%,#31584729,transparent 65%),var(--nav-bg); border-right:1px solid #ffffff08; }
.brand { margin:0 6px 50px; gap:11px; }
.brand-name { font-family:'Songti SC','SimSun',serif; font-size:23px; letter-spacing:3px; color:#f2ead9; }
.brand-en { color:#91a49d; font-size:7px; letter-spacing:2.2px; }
.brand img { width:36px; height:36px; }
.nav-caption { font-size:8px; margin:9px 12px 18px; letter-spacing:1.5px; color:#6c8585; }
.nav { gap:8px; }
.nav button { color:#a3b8b7; border-radius:10px; min-height:47px; padding:13px 14px; font-size:12px; transition:background .2s,color .2s; }
.nav button:hover { background:#ffffff06; color:#f0dfb8; }
.nav button.active { background:linear-gradient(100deg,#c8ae6c1c,#c8ae6c07); color:#e4c990; box-shadow:inset 0 0 0 1px #cfb67520; }
.nav button.active:before { background:#d2b679; height:14px; top:17px; }
.nav button .icon { width:18px; }
.side-note { color:#718a88; font-size:10px; }
.side-profile { border-color:#ffffff0c; }
.side-profile .avatar { background:#34493d; color:#dcc68e; }
.avatar { background:var(--teal-light); color:var(--teal); }
.main { margin-left:216px; min-height:calc(100vh - 36px); }
.topbar { height:74px; background:var(--top-bg); border-color:var(--line); padding:0 36px; }
.breadcrumbs { color:var(--muted); gap:10px; font-size:10px; }
.breadcrumbs strong { color:var(--text-soft); }
.breadcrumbs .icon { width:16px; height:16px; }
.topbar-right { gap:13px; }
.bell-wrap:after { border-color:var(--paper); }
.visual-controls { display:flex; gap:5px; padding-right:12px; margin-right:1px; border-right:1px solid var(--line); }
.visual-toggle { background:transparent; color:var(--muted); border:1px solid transparent; border-radius:7px; padding:6px 8px; display:flex; gap:6px; align-items:center; font-size:10px; min-height:34px; }
.visual-toggle:hover { color:var(--ink); background:var(--surface); border-color:var(--line); }
.visual-toggle>span:first-child { font-size:20px; line-height:1; }
.content { max-width:1530px; padding:32px 36px 24px; }
.page-head { margin-bottom:28px; gap:20px; }
.page-head h1 { font-size:30px; letter-spacing:.2px; line-height:1.45; font-weight:500; }
.page-head h1>span { font-family:'Songti SC','SimSun',serif; font-weight:400; color:var(--gold-ink); }
.page-head .eyebrow { color:var(--gold); font-size:8px; letter-spacing:3px; margin-bottom:10px; }
.page-head p { color:var(--muted); font-size:11px; margin-top:9px; }
.page-actions .btn { font-size:11px; }
.hero-grid { grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr); gap:22px; margin-bottom:0; perspective:1200px; }
.passport { min-height:304px; padding:26px 30px 21px; border-radius:19px; background:linear-gradient(120deg,#e5d5ae 0%,#c9b27e 42%,#ddcb9f 67%,#bb9e64 100%); color:#243e37; border:1px solid #faeac359; box-shadow:0 18px 35px #00000020,inset 0 0 30px #ffeac434; transform-style:preserve-3d; }
.passport:before { width:390px; height:390px; border-color:#fff8df35; right:-140px; top:-56px; box-shadow:0 0 0 25px #fff7e010,0 0 0 50px #fff7e009,0 0 0 75px #fff7e00a; }
.passport:after { inset:9px; border:1px solid #fff7de50; border-radius:12px; z-index:4; }
.card-shine { position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at var(--shine-x,20%) var(--shine-y,15%),#fffbe842,transparent 56%); z-index:2; mix-blend-mode:soft-light; }
.passport-watermark { position:absolute; right:25px; bottom:22px; font-size:235px; font-family:'SimSun',serif; line-height:1; font-weight:600; color:#586c4c0c; transform:rotate(-8deg); pointer-events:none; }
.foil-orbit { position:absolute; width:260px; height:260px; right:-43px; top:21px; transform:rotate(-25deg); pointer-events:none; }
.foil-orbit span { position:absolute; inset:0; border:1px solid #5d715c24; border-radius:50%; }
.foil-orbit span:nth-child(2) { inset:12px; border-style:dashed; }
.foil-orbit span:nth-child(3) { inset:28px; border-color:#fff2ca55; }
.passport-inner { z-index:3; }
.passport-head { color:#3a5141; align-items:flex-start; }
.passport-head .eyebrow { font-size:8px; letter-spacing:2.4px; color:#5f6d4e; }
.passport-title { margin-top:12px; font-size:27px; letter-spacing:3px; }
.edition-label { text-align:right; font-size:6px; letter-spacing:2px; color:#6b764c; line-height:1.2; }
.edition-label b { font-family:Georgia,serif; font-size:31px; font-weight:400; letter-spacing:0; display:block; margin-top:3px; }
.passport-body { margin:31px 0 24px; align-items:flex-end; }
.member-label { font-size:8px; letter-spacing:1.8px; color:#6b7657; }
.passport-name { color:#294637; font-size:29px; margin-top:2px; letter-spacing:4px; }
.passport-name>span { font-family:'Segoe UI',sans-serif; font-size:8px; letter-spacing:2px; margin-left:9px; color:#586d4c; vertical-align:middle; }
.passport-identity { color:#56684c; font-size:9px; letter-spacing:.3px; margin-top:5px; }
.passport-emblem { width:82px; height:82px; border-color:#54715160; color:#3c6246; margin-right:16px; transform:rotate(-13deg); background:#f5e5b61a; box-shadow:0 2px 8px #5f612208,inset 0 0 10px #fffad624; }
.passport-emblem:before { border-color:#54715166; }
.passport-emblem .icon { width:32px; height:32px; transform:translateY(-5px); stroke-width:1.2; }
.passport-emblem small { font-size:5px; letter-spacing:1.1px; bottom:16px; }
.passport-foot { padding-top:12px; border-color:#465d3f20; color:#54684b; font-size:9px; }
.passport-foot strong { color:#3b543b; font-weight:600; letter-spacing:1.6px; }
.passport-foot .icon { width:22px; }
.point-card { position:relative; background:linear-gradient(125deg,var(--panel-top),var(--card)); border-color:var(--line); border-radius:19px; padding:24px 25px 22px; }
.point-label { color:var(--text-soft); font-size:11px; }
.point-label small { display:block; font-size:6px; color:var(--muted); letter-spacing:2px; margin-top:3px; }
.point-label .point-spark { display:grid; place-items:center; border:1px solid #bda77430; border-radius:50%; width:33px; height:33px; background:#c6a86908; }
.point-label .icon { width:17px; color:var(--gold-ink); }
.points-big { font-family:'Segoe UI',Arial,sans-serif; font-size:56px; font-weight:300; letter-spacing:-2px; margin:10px 0 8px; color:var(--ink); font-variant-numeric:tabular-nums; }
.points-big small { font-size:9px; letter-spacing:1.3px; color:var(--gold); margin-left:10px; }
.pending { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:9px; margin-bottom:16px; }
.pending strong { margin:0; color:var(--gold-ink); }
.pending-dot { width:4px; height:4px; background:var(--gold); border-radius:50%; }
.point-divider { color:var(--line); margin:0 5px; }
.point-milestone .small { font-size:10px; color:var(--text-soft); }
.point-milestone .gold small { font-size:9px; color:var(--muted); }
.progress-track { background:var(--surface); height:4px; }
.progress-track>span { background:linear-gradient(90deg,#a78d55,#e5cc91); box-shadow:0 0 10px #cab07540; }
.point-card .progress-caption { color:var(--muted); font-size:9px; margin:8px 0 18px; }
.point-card .btn { justify-content:flex-start; font-size:11px; min-height:40px; padding:10px 14px; }
.collection-strip { display:flex; gap:16px; justify-content:space-between; padding:20px 3px; border-bottom:1px solid var(--line); margin-bottom:23px; color:var(--muted); font-size:9px; }
.collection-strip>span { display:flex; gap:8px; align-items:center; }
.collection-strip .icon { width:14px; height:14px; color:var(--gold); }
.grid-main { grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr); gap:22px; }
.stack { gap:20px; align-content:start; }
.panel { border-radius:var(--radius); background:linear-gradient(135deg,var(--panel-top),var(--card)); border-color:var(--line); padding:24px; box-shadow:var(--shadow); }
.panel-head { margin-bottom:23px; }
.panel-head h2 { font-size:16px; font-weight:500; }
.section-kicker { color:var(--gold); font-size:7px; letter-spacing:2.5px; margin-bottom:8px; }
.panel-head .subtext { font-size:10px; margin-top:6px; }
.stamp-panel { position:relative; overflow:hidden; }
.stamp-panel:before { content:''; position:absolute; width:200px; height:200px; border-radius:50%; background:#b9ab6d05; filter:blur(15px); top:-90px; right:-40px; pointer-events:none; }
.stamp-grid { gap:12px; padding:4px 0 0; }
.stamp-circle { width:73px; height:73px; margin-bottom:14px; background:radial-gradient(circle at 30% 20%,#d9bd7b29,#86733d12 70%); color:#d6bb7b; border:1px dashed #c9b27588; box-shadow:inset 0 0 0 4px #decf8c08,0 8px 18px #0000000b; }
.stamp-circle:before { inset:6px; border-color:#c6b28038; }
.stamp-circle .icon { width:26px; height:26px; stroke-width:1.25; }
.stamp-circle.teal { background:radial-gradient(circle at 30% 20%,#8ecfb226,#668c8612 70%); border-color:#81b9a180; color:#9dceba; }
.stamp-circle.teal:before { border-color:#9bc8b338; }
.stamp-circle.gray { background:var(--surface); border-color:var(--line); color:var(--muted); }
.stamp-circle.gray:before { border-color:var(--line); }
.stamp-number { position:absolute; bottom:6px; left:50%; transform:translateX(-50%); font-size:5px; letter-spacing:1px; opacity:.7; }
.stamp-orbit { position:absolute; inset:-5px; border:1px solid #bfa15f12; border-radius:50%; }
.stamp-tile strong { font-size:11px; font-weight:400; letter-spacing:.8px; }
.stamp-tile small { color:var(--muted); font-size:8px; margin-top:5px; }
.journey-note { margin-top:22px; padding-top:16px; border-color:var(--line); color:var(--muted); font-size:9px; }
.journey-note button { font-size:10px; }
.explore { background:radial-gradient(ellipse at 100% 0%,#467f6260,transparent 80%),#183b32; border-color:#739c6f2b; min-height:270px; }
.explore>*:not(.explore-orbit) { position:relative; z-index:1; }
.explore-orbit { width:190px; height:190px; position:absolute; right:-55px; top:25px; border-radius:50%; border:1px solid #aac1961a; box-shadow:0 0 0 22px #aac19608,0 0 0 44px #aac19604; }
.explore-orbit:after { content:'✦'; position:absolute; left:12px; top:25px; color:#c2cead; font-size:16px; }
.explore .eyebrow { color:#a4bfa1; font-size:7px; letter-spacing:2.2px; }
.explore h2 { font-size:25px; color:#f2e9cb; font-weight:400; line-height:1.5; margin:14px 0 10px; }
.explore h2 span { color:#b6cdb5; }
.explore p { color:#a4baad; font-size:10px; line-height:1.9; max-width:230px; }
.explore-track { color:#b7cfc0; font-size:9px; gap:7px; margin:22px 0; }
.explore-icon { width:26px; height:26px; background:#c0d5aa15; color:#c5d8ae; }
.explore-track .track-line { background:#8fb39d40; }
.explore .text-btn { color:#d8ddc5; font-size:10px; }
.explore .tag { background:#b9d5b816; color:#c2d9ba; border-color:#aacaa12b; font-size:9px; }
.ticket { background:var(--ticket-bg); border:1px solid var(--ticket-border); border-radius:12px; gap:12px; transition:transform .22s,box-shadow .22s; }
.ticket.blue-ticket { background:var(--surface); border-color:var(--line); }
.ticket-value { color:var(--gold-ink); font-family:Georgia,serif; font-size:34px; }
.ticket-info { border-color:var(--ticket-border); padding-left:12px; }
.ticket-info h3 { font-size:11px; font-weight:500; color:var(--ink); }
.ticket-info p { font-size:9px; color:var(--muted); }
.ticket .btn { min-height:32px; border-color:var(--ticket-border); background:transparent; color:var(--gold-ink); font-size:10px; }
.ticket .btn:hover { background:var(--surface-hover); }
.reward-row .ticket-footer { border-color:var(--ticket-border); color:var(--muted); font-size:9px; }
.transaction { padding:15px 0; border-color:var(--line); gap:10px; }
.transaction-icon { background:var(--surface); color:var(--teal); border:1px solid var(--line); width:31px; height:33px; border-radius:9px; }
.transaction-detail strong { color:var(--text-soft); font-size:10px; font-weight:400; }
.transaction-detail small { color:var(--muted); font-size:8px; }
.transaction-value { font-size:12px; color:var(--teal); }
.transaction-value small { color:var(--muted); font-size:8px; }
.rewards-grid { gap:20px; }
.reward-card { background:var(--card); border-color:var(--line); padding:20px; position:relative; transition:border-color .2s,box-shadow .2s; }
@media(hover:hover){.reward-card:hover { border-color:#bca46655; box-shadow:0 18px 30px #00000012; }}
.reward-art { height:185px; background:radial-gradient(ellipse at 40% 30%,#d4c09238,transparent 70%),#2e3c33; border-radius:12px; margin-bottom:22px; perspective:600px; }
.reward-art.blue-art { background:radial-gradient(ellipse at 40% 30%,#8aa6aa38,transparent 70%),#243a40; }
.reward-art:before,.reward-art:after { border-color:#ddc48f1c; }
.mini-pass { width:67%; min-width:145px; height:115px; border-radius:8px; padding:14px 17px; background:linear-gradient(120deg,#dbcaa1,#bfa06c); color:#3e5139; display:flex; flex-direction:column; justify-content:space-between; position:relative; z-index:1; box-shadow:10px 18px 28px #00000030,inset 0 0 0 1px #fff0bf77; transform:rotate(-12deg) rotateY(-7deg); transition:transform .45s; }
.mini-pass:after { content:''; position:absolute; inset:5px; border:1px solid #fff1c45e; border-radius:4px; pointer-events:none; }
.mini-pass>span { font-size:6px; letter-spacing:1.3px; }
.mini-pass>strong { font-family:Georgia,serif; font-size:36px; font-weight:400; line-height:1; }
.mini-pass strong small { font-size:13px; }
.blue-art .mini-pass { background:linear-gradient(120deg,#bfd1cc,#85a9a3); color:#244948; }
.reward-art .art-value { font-size:5px; font-family:inherit; bottom:8px; right:9px; color:#d3dece66; letter-spacing:2px; }
.reward-art-icon { position:absolute; right:19%; top:50%; transform:translateY(-50%) rotate(-12deg); z-index:2; }
.reward-art-icon .icon { width:31px; height:31px; color:#54704b; }
.blue-art .reward-art-icon .icon { color:#3b6362; }
@media(hover:hover){.reward-card:hover .mini-pass { transform:translateY(-4px) rotate(-7deg) rotateY(0); }}
.reward-price strong { font-weight:400; }
.reward-price small { color:var(--muted); }
.rule-banner { background:var(--gold-bg); color:var(--text-soft); border:1px solid #b49e7920; font-size:10px; line-height:1.9; }
.rule-banner .icon { color:var(--gold); }
.tabs { padding:4px; width:fit-content; background:var(--surface); border:1px solid var(--line); border-radius:11px; gap:4px; }
.tabs button { color:var(--muted); font-size:11px; min-height:35px; }
.tabs button.active { color:var(--gold-ink); background:var(--card); border-color:#c6ae7633; box-shadow:0 2px 5px #00000010; }
.stat { background:var(--card); border-color:var(--line); border-radius:15px; padding:20px; }
.stat-title { color:var(--muted); font-size:11px; }
.stat-title .icon { color:var(--gold); }
.stat-number { font-family:'Segoe UI',Arial,sans-serif; font-weight:300; font-size:31px; color:var(--ink); }
.stat-number small,.stat-foot { color:var(--muted); }
.stat-foot { font-size:9px; }
.admin-grid { gap:20px; }
.auth-demo-note { color:var(--text-soft); background:var(--surface); border:1px solid var(--line); font-size:10px; }
.chart-col .bar { background:linear-gradient(0deg,#4d7c6d,#8ac6a7); border-radius:5px 5px 0 0; box-shadow:0 0 15px #72b79812; }
.chart-col:nth-last-child(2) .bar { background:linear-gradient(0deg,#9c8558,#dec58b); }
.chart-col .bar-value,.chart-col .bar-day,.chart-note { color:var(--muted); }
.dept-summary .progress-track>span { background:linear-gradient(90deg,#527e6e,#9dccb3); }
th { color:var(--muted); background:var(--field); }
th,td { border-color:var(--line); padding:14px 12px; }
td { color:var(--text-soft); }
tbody tr:hover { background:var(--surface); }
.role-select { background:var(--surface); color:var(--text-soft); border-color:var(--line); }
.field label { color:var(--text-soft); }
.field input,.field select,.field textarea { background:var(--field); border-color:var(--line); color:var(--ink); }
.field input::placeholder,.field textarea::placeholder { color:var(--muted); opacity:.8; }
.field small { color:var(--muted); }
.calc-box { background:var(--teal-light); border-color:var(--line); }
.calc-box strong { color:var(--teal); }
.search-box { background:var(--field); color:var(--ink); border-color:var(--line); }
.search-box input { color:var(--ink); }
.rule-list { color:var(--muted); line-height:1.9; font-size:11px; }
.rule-list strong { color:var(--text-soft); font-weight:500; }
.rule-list p { border-color:var(--line); }
.audit-item p,.audit-item small,.review-detail dt { color:var(--muted); }
.empty { color:var(--muted); }
.empty h3 { color:var(--text-soft); }
.empty .icon { color:var(--gold); }
.footer { color:var(--muted); font-size:8px; padding-top:25px; opacity:.8; }
.footer span:last-child { font-size:7px; letter-spacing:1.8px; }
dialog { background:var(--modal-bg); color:var(--ink); border:1px solid #c8b48536; border-radius:20px; box-shadow:0 30px 100px #00000066; overflow-x:hidden; }
dialog::backdrop { background:#061217a6; backdrop-filter:blur(8px); }
.modal-head { padding:23px 25px 0; }
.modal-head h2 { font-size:16px; font-weight:500; }
.modal-close { background:var(--surface-hover); color:var(--text-soft); width:32px; height:32px; }
.modal-body { position:relative; z-index:1; }
.receipt { background:var(--surface); border-color:#b9a37348; padding:19px; }
.celebration { padding-top:0; }
.celebration h2 { color:var(--ink); font-size:26px; }
.celebration p { color:var(--muted); line-height:1.9; font-size:11px; }
.delivery-stage { position:relative; height:218px; display:grid; place-items:center; margin:0 auto 4px; }
.delivery-orbit { position:absolute; width:165px; height:165px; border:1px solid #d6bb7d26; border-radius:50%; box-shadow:0 0 0 23px #d6bb7d06,0 0 0 48px #d6bb7d03; }
.envelope { width:172px; height:114px; margin:58px auto 0; background:#bca16c; border-color:#f2dba76b; box-shadow:0 15px 40px #00000026; perspective:700px; }
.envelope:before { display:none; }
.envelope:after { z-index:2; background:linear-gradient(33deg,#dcc592 49.5%,transparent 50%) left/50% 100%,linear-gradient(-33deg,#cbb17d 49.5%,transparent 50%) right/50% 100%; background-repeat:no-repeat; }
.envelope-flap { position:absolute; z-index:0; top:-1px; left:0; width:100%; height:67px; clip-path:polygon(0 0,100% 0,50% 100%); background:#e8d6ac; transform-origin:top; transform:rotateX(175deg); }
.envelope-card { z-index:1; inset:8px 17px; background:#f7edce; border:1px solid #fff5d5; height:108px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; animation:none; transform:translateY(-88px); color:#77633b; box-shadow:0 0 15px #7b612b10; }
.envelope-card small { font-size:5px; letter-spacing:1.2px; }
.envelope-card strong { font-size:32px; font-family:Georgia,serif; font-weight:400; line-height:1.5; }
.envelope-card strong span { font-size:12px; margin-left:3px; }
.seal { left:69px; top:40px; z-index:4; background:linear-gradient(120deg,#a28550,#c8ac76); border:2px solid #e0c999; color:#f5e6be; box-shadow:0 3px 8px #89714033; }
.celebration-canvas { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:5; }
.stamp-large { animation:none; background:var(--teal-light); border-color:var(--teal); color:var(--teal); box-shadow:inset 0 0 0 7px var(--modal-bg),inset 0 0 0 8px #79ac8f4d; }
#toast { background:var(--button-bg); color:var(--button-ink); border:1px solid #d8bd8b44; box-shadow:0 8px 35px #00000030; }
[data-theme='day'] .stamp-circle { color:#917036; background:radial-gradient(circle at 30% 20%,#f6ecd4,#eeeadf); }
[data-theme='day'] .stamp-circle.teal { color:#417c65; background:radial-gradient(circle at 30% 20%,#f0f7e9,#d9e9de); }
[data-theme='day'] .stamp-circle.gray { color:#8f9d94; background:#edece5; }
[data-theme='day'] .passport { box-shadow:0 14px 30px #80754f18; }
@media(min-width:1600px) { .sidebar { width:232px; padding-left:24px; padding-right:24px; }.main { margin-left:232px; }.content { padding-top:38px; }.passport { min-height:325px; }.passport-body { margin:39px 0 27px; }.points-big { font-size:64px; margin-top:16px; } }
@media(max-width:1200px) { .sidebar { width:188px; padding-left:12px; padding-right:12px; }.main { margin-left:188px; }.brand { gap:8px; }.brand-name { font-size:20px; }.brand-en { font-size:6px; }.brand img { width:31px; }.nav-caption { font-size:7px; letter-spacing:1.2px; }.nav button { padding-left:12px; }.content { padding:28px; }.topbar { padding:0 28px; }.hero-grid,.grid-main { grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr); gap:18px; }.passport { padding:25px; }.passport-title { font-size:24px; }.passport-emblem { margin-right:3px; }.panel { padding:22px; }.header-subtitle { display:none; }.point-card { padding:24px; }.page-head h1 { font-size:28px; } }
@media(max-width:970px) { .sidebar { width:176px; }.main { margin-left:176px; }.content { padding:25px 22px; }.topbar { padding:0 22px; }.hero-grid { grid-template-columns:1.25fr 1fr; gap:16px; }.passport { padding:23px; min-height:305px; }.passport-title { font-size:22px; letter-spacing:2px; }.passport-emblem { display:none; }.passport-body { margin:34px 0 32px; }.passport-foot { font-size:8px; }.point-card { padding:23px; }.points-big { font-size:51px; }.grid-main { grid-template-columns:1fr; gap:20px; }.grid-main>.stack:last-child { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; gap:20px; }.collection-strip { font-size:8px; gap:8px; }.collection-strip>span { gap:5px; }.collection-strip .icon { width:12px; }.page-head h1 { font-size:26px; }.page-actions .btn { padding:8px 12px; }.visual-label { display:none; }.visual-controls { gap:2px; padding-right:10px; }.visual-toggle { padding:4px 7px; }.admin-grid { grid-template-columns:1fr; }.mini-pass { width:65%; } }
@media(max-width:680px) {
  .prototype-bar { height:36px; padding:0 12px; }.proto-label { font-size:7px; letter-spacing:.5px; gap:6px; }.mode-toggle button { padding:3px 7px; font-size:9px; }.reset { font-size:8px; }.prototype-actions { gap:7px; }
  .sidebar { display:none; }.main { margin-left:0; }.topbar { height:64px; padding:0 18px; }.mobile-brand { font-family:'SimSun',serif; font-size:19px; letter-spacing:2px; color:var(--ink); }.mobile-brand img { width:27px; height:27px; }.topbar-right { gap:8px; }.topbar-right>.avatar,.topbar-right>.header-member { display:none; }.topbar-right .bell-wrap { width:30px; height:30px; }.visual-controls { border:0; margin:0; padding:0; gap:1px; }.visual-toggle { min-width:30px; padding:4px 5px; }.visual-label { display:none; }.visual-toggle>span:first-child { font-size:21px; }.breadcrumbs { display:none; }
  .content { padding:26px 18px 98px; }.page-head { display:block; margin-bottom:22px; position:relative; }.page-head h1 { font-size:27px; line-height:1.6; letter-spacing:0; }.page-head h1>span { display:block; font-size:31px; line-height:1.3; margin:0 0 10px; }.page-head .eyebrow { font-size:6px; letter-spacing:2.5px; margin-bottom:12px; }.page-head p { font-size:10px; line-height:1.8; max-width:none; }.page-head .page-actions { margin-top:13px; }.page-actions .btn { font-size:10px; min-height:34px; padding:7px 11px; }.page-actions .btn .icon { display:inline-block; width:14px; height:14px; }
  body[data-page='home'] .page-head .page-actions { position:absolute; right:0; top:1px; margin:0; }.page-head .page-actions:empty { display:none; }body[data-page='home'] .page-actions .btn { font-size:9px; padding:4px 8px; min-height:27px; }body[data-page='home'] .page-actions .icon { display:none; }
  .hero-grid { grid-template-columns:1fr; gap:16px; margin:0; }.passport { min-height:251px; border-radius:17px; padding:22px 23px 19px; }.passport-head .eyebrow { font-size:6px; letter-spacing:2px; }.passport-title { font-size:23px; margin-top:10px; letter-spacing:2px; }.edition-label { font-size:5px; letter-spacing:1.4px; }.edition-label b { font-size:26px; }.passport-body { margin:22px 0 20px; gap:12px; }.member-label { font-size:7px; }.passport-name { font-size:26px; }.passport-name>span { font-size:6px; letter-spacing:1px; margin-left:3px; }.passport-identity { font-size:8px; }.passport-emblem { display:grid; width:66px; height:66px; margin-right:1px; }.passport-emblem small { font-size:4px; letter-spacing:.8px; bottom:12px; }.passport-emblem .icon { width:26px; height:26px; }.passport-foot { font-size:8px; padding-top:12px; }.passport-foot .icon { width:17px; }.passport-watermark { font-size:191px; right:0; }.foil-orbit { width:210px; height:210px; right:-50px; top:10px; }.passport:before { width:250px; height:250px; right:-80px; }
  .point-card { padding:22px; border-radius:17px; }.point-label { font-size:11px; }.point-label small { font-size:6px; }.points-big { font-size:56px; margin-top:8px; }.pending { font-size:9px; margin-bottom:18px; }.point-milestone .small { font-size:10px; }.point-card .btn { min-height:42px; font-size:11px; }.point-card .progress-caption { font-size:9px; margin-bottom:18px; }
  .collection-strip { padding:18px 1px; margin-bottom:18px; gap:6px; font-size:8px; justify-content:space-between; }.collection-strip>span { gap:4px; }.collection-strip>span:last-child { display:none; }.collection-strip .icon { width:12px; }
  .grid-main { gap:18px; }.grid-main>.stack:last-child { grid-template-columns:1fr; gap:18px; }.stack { gap:18px; }.panel { padding:21px 18px; border-radius:17px; }.section-kicker { font-size:6px; margin-bottom:8px; }.panel-head { gap:8px; margin-bottom:23px; }.panel-head h2 { font-size:15px; }.panel-head .subtext { font-size:9px; margin-top:6px; }.panel-head .tag { font-size:8px; padding:3px 6px; }.panel-head .text-btn { font-size:10px; }.stamp-panel .panel-head .tag { position:absolute; top:19px; right:18px; }.stamp-panel .panel-head { padding-top:0; }
  .stamp-grid { gap:8px; padding-top:3px; }.stamp-circle { width:57px; height:57px; margin-bottom:14px; }.stamp-circle .icon { width:22px; height:22px; }.stamp-circle:before { inset:4px; }.stamp-number { bottom:4px; font-size:4px; }.stamp-orbit { inset:-4px; }.stamp-tile strong { font-size:9px; letter-spacing:0; }.stamp-tile small { font-size:7px; }.journey-note { font-size:8px; gap:5px; margin-top:20px; padding-top:15px; }.journey-note button { font-size:9px; }.journey-note .icon { width:12px; }.journey-note button .icon { width:13px; }
  .reward-row { grid-template-columns:1fr; gap:11px; }.reward-row .ticket { flex-wrap:nowrap; padding:16px 13px; gap:11px; }.reward-row .ticket-info { min-width:0; }.reward-row .ticket:last-child { display:flex; }.reward-row .ticket-footer { width:auto; border:0; padding:0; flex-direction:column; gap:8px; font-size:8px; flex-shrink:0; }.ticket-info h3 { font-size:10px; }.ticket-info p { font-size:8px; }.ticket-value { font-size:29px; min-width:29px; }.ticket-value small { font-size:10px; }.ticket .btn { font-size:9px; min-height:29px; padding:5px 8px; }
  .explore { padding:24px; min-height:0; }.explore h2 { font-size:25px; margin-top:15px; }.explore p { font-size:10px; max-width:225px; }.explore-track { margin:21px 0; font-size:9px; }.explore-orbit { right:-35px; width:200px; height:200px; }.transaction-detail strong { font-size:11px; }.transaction-detail small { font-size:8px; }.transaction-value { font-size:12px; }
  .rewards-grid { grid-template-columns:1fr; gap:18px; }.reward-card { padding:20px; border-radius:17px; }.reward-art { height:185px; }.reward-price { margin-top:22px; }.reward-price strong { font-size:25px; }.reward-card h2 { font-size:17px; }.rule-banner { font-size:10px; padding:12px; }.tabs { max-width:100%; gap:0; padding:3px; }.tabs button { font-size:10px; padding:6px 10px; min-height:33px; }
  .stats-grid { gap:10px; }.stat { padding:17px; }.stat-title { font-size:9px; }.stat-title .icon { width:13px; }.stat-number { font-size:29px; }.stat-foot { font-size:8px; }.admin-grid { gap:18px; }.role-select { max-width:133px; font-size:9px; padding:7px; }.auth-demo-note { font-size:9px; padding:12px; }.form-grid { gap:18px; }.field label { font-size:11px; }.field input,.field select,.field textarea { font-size:16px; }.field small { font-size:9px; }.field select { font-size:13px; }.form-grid+.form-error+.row { flex-wrap:wrap; gap:12px; }.table-wrap { margin:0 -6px; }th,td { padding:13px 9px; font-size:10px; }
  .bottom-nav { left:12px; right:12px; bottom:12px; border:1px solid #b2baa628; border-radius:18px; padding:12px 7px calc(12px + env(safe-area-inset-bottom)); box-shadow:0 10px 35px #00000038; background:var(--top-bg); backdrop-filter:blur(18px); gap:2px; }.bottom-nav button { min-width:48px; font-size:8px; gap:5px; color:var(--muted); position:relative; }.bottom-nav button .icon { width:19px; height:19px; }.bottom-nav button.active { color:var(--gold-ink); }.bottom-nav button.active:after { content:''; position:absolute; top:-5px; width:16px; height:2px; border-radius:2px; background:var(--gold); }.bottom-nav .nav-count { position:absolute; top:0; right:10px; margin:0; font-size:7px; }
  .footer { display:block; line-height:1.9; font-size:7px; padding:24px 0 6px; }.footer span:last-child { display:block; margin-top:10px; font-size:6px; }.modal-head { padding:20px 20px 0; }.modal-body { padding:20px; }.modal-head h2 { font-size:15px; }.modal-actions .btn { min-height:42px; }dialog { max-height:88dvh; border-radius:18px; }#toast { left:50%; bottom:95px; font-size:11px; }.collection-strip+.grid-main { margin-top:0; }
}
@media(max-width:370px) { .content { padding-left:14px; padding-right:14px; }.topbar { padding:0 14px; }.mobile-brand { font-size:17px; }.passport-title { font-size:21px; }.passport-emblem { width:58px; height:58px; }.passport-identity { font-size:7px; }.stamp-circle { width:52px; height:52px; }.stamp-grid { gap:5px; }.point-card { padding:20px; }.role-select { max-width:115px; }body[data-page='home'] .page-head .page-actions { top:35px; }.page-head h1 { font-size:25px; }.page-head h1>span { font-size:29px; }.proto-label { letter-spacing:0; font-size:6px; }.mode-toggle button { padding:3px 5px; } }
@media(prefers-reduced-motion:reduce) { *,*:before,*:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }.card-shine { display:none; }.envelope-flap { transform:rotateX(175deg)!important; }.envelope-card { transform:translateY(-88px)!important; }.seal { opacity:0; } }
[data-motion='reduced'] *,[data-motion='reduced'] *:before,[data-motion='reduced'] *:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
[data-motion='reduced'] .card-shine { display:none; }
[data-motion='reduced'] .envelope-flap { transform:rotateX(175deg)!important; }
[data-motion='reduced'] .envelope-card { transform:translateY(-88px)!important; }
[data-motion='reduced'] .seal { opacity:0; }


/* Six collectible hexagonal medals. State is shown with text as well as color. */
.medal-panel { position:relative; overflow:hidden; background:radial-gradient(ellipse at 50% 0%,#48636c23,transparent 65%),var(--card); }
.medal-panel>.panel-head { margin-bottom:18px; align-items:flex-start; }
.medal-panel>.panel-head h2 { font-size:18px; }
.medal-heading-copy { max-width:70%; }
.medal-panel .section-kicker { font-size:7px; letter-spacing:3px; }
.medal-panel .tag { margin-top:4px; }
.medal-controls { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:22px; }
.medal-modes { display:flex; gap:3px; padding:3px; background:var(--field); border:1px solid var(--line); border-radius:8px; }
.medal-modes button { border:0; background:transparent; padding:6px 9px; min-height:28px; font-size:9px; border-radius:6px; color:var(--muted); }
.medal-modes button.active { color:var(--gold-ink); background:var(--surface-hover); box-shadow:0 1px 4px #00000015; }
.medal-edit { font-size:10px; color:var(--muted); }
.medal-edit .icon { width:13px; height:13px; }
.medal-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px 12px; }
.medal-tile { position:relative; padding:12px 9px 16px; border:1px solid var(--line); border-radius:15px; background:linear-gradient(140deg,#ffffff03,#ffffff00); color:var(--ink); text-align:center; overflow:hidden; transition:background .25s,border-color .25s,transform .25s; }
.medal-tile:before { content:''; position:absolute; width:120px; height:120px; left:50%; top:0; transform:translateX(-50%); border-radius:50%; background:radial-gradient(circle,var(--medal-accent),transparent 65%); opacity:0; pointer-events:none; transition:opacity .5s; }
.medal-tile.is-lit:before { opacity:.07; }
.medal-number { position:absolute; left:10px; top:8px; color:var(--muted); font-size:7px; letter-spacing:1px; opacity:.65; }
.medal-art { position:relative; display:block; width:100%; max-width:154px; aspect-ratio:1; margin:0 auto; isolation:isolate; }
.medal-art img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; pointer-events:none; user-select:none; }
.medal-art .medal-muted { filter:grayscale(1) saturate(0) brightness(.94) contrast(.85); opacity:.72; }
.medal-art .medal-color { opacity:0; filter:drop-shadow(0 6px 9px #00000025); }
.is-lit .medal-color { opacity:1; }
.is-lit .medal-muted { opacity:0; }
.medal-art:after { content:''; position:absolute; inset:12%; pointer-events:none; background:linear-gradient(115deg,transparent 25%,#ffffff99 46%,#ffffff00 60%); transform:translateX(-160%); clip-path:polygon(50% 0,94% 25%,94% 75%,50% 100%,6% 75%,6% 25%); opacity:0; }
.medal-tile.is-lit:hover .medal-art:after { animation:medal-shine .75s ease-out; }
.medal-state { display:inline-flex; align-items:center; gap:4px; margin:1px auto 10px; padding:3px 8px; font-size:8px; letter-spacing:.5px; line-height:1.2; border-radius:20px; background:var(--surface); border:1px solid var(--line); color:var(--muted); }
.medal-state .icon { width:9px; height:9px; }
.is-lit .medal-state { color:#ffdfa4; background:linear-gradient(100deg,#b9662330,#cf783522); border-color:#d6933d40; }
.medal-tile>strong { display:block; font-size:12px; letter-spacing:1px; font-weight:500; line-height:1.6; overflow-wrap:anywhere; }
.medal-tile>small { display:block; color:var(--muted); font-size:8px; line-height:1.7; margin-top:5px; min-height:14px; overflow-wrap:anywhere; }
.medal-tile:not(.is-lit)>strong { color:var(--text-soft); }
.medal-tile:hover { background:var(--surface); border-color:#c1b48a44; transform:translateY(-3px); }
.medal-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:17px; margin-top:18px; border-top:1px solid var(--line); }
.medal-footer>span { color:var(--muted); font-size:9px; display:flex; gap:6px; align-items:center; }
.medal-footer>span .icon { width:12px; height:12px; }
.medal-footer .text-btn { font-size:10px; color:var(--gold-ink); }
.medal-preview-caption { margin-top:10px; color:var(--gold-ink); font-size:9px; }
/* The dedicated collection page keeps the six medals together at a useful scale. */
.medal-hero-summary { display:flex; align-items:center; justify-content:space-between; gap:20px; border:1px solid var(--line); background:linear-gradient(120deg,var(--surface),var(--card)); border-radius:18px; padding:23px 26px; margin-bottom:22px; }
.medal-hero-summary h2 { font-size:19px; font-weight:400; font-family:'SimSun',serif; letter-spacing:2px; }
.medal-hero-summary p { font-size:10px; color:var(--muted); margin-top:7px; }
.medal-collection-count { font-size:39px; color:var(--gold-ink); font-family:Georgia,serif; line-height:1; white-space:nowrap; }
.medal-collection-count small { font-size:12px; color:var(--muted); }
.medal-gallery .medal-panel { padding:28px; }
.medal-gallery .medal-grid { gap:20px; }
.medal-gallery .medal-tile { padding:18px 15px 20px; }
.medal-gallery .medal-art { max-width:190px; }
.medal-gallery .medal-tile>strong { font-size:15px; }
.medal-gallery .medal-tile>small { font-size:10px; margin-top:8px; }
.medal-gallery .medal-state { font-size:9px; margin-bottom:10px; }
.medal-rule-list { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.medal-rule-list p { border:1px solid var(--line); background:var(--surface); padding:16px; border-radius:10px; font-size:11px; color:var(--muted); line-height:1.8; }
.medal-rule-list strong { display:block; color:var(--text-soft); font-size:12px; margin-bottom:6px; }
/* Unlock sequence: same silhouette, silver -> color -> light sweep. */
.medal-detail { text-align:center; }
.medal-reveal-stage { position:relative; height:255px; display:grid; place-items:center; overflow:hidden; margin:-8px -15px 10px; }
.medal-reveal-stage .medal-art { width:220px; max-width:220px; z-index:2; transform-origin:50% 65%; }
.medal-reveal-stage .medal-halo { position:absolute; width:210px; height:210px; border-radius:50%; background:radial-gradient(circle,var(--medal-accent),transparent 68%); opacity:0; filter:blur(5px); }
.medal-reveal-stage.is-lit .medal-halo { opacity:.2; }
.medal-reveal-stage .medal-ring { position:absolute; width:160px; height:160px; border:1px solid var(--medal-accent); border-radius:50%; opacity:0; }
.medal-star { position:absolute; font-size:16px; color:var(--medal-accent); opacity:0; left:var(--star-x); top:var(--star-y); z-index:3; }
.medal-reveal-stage.is-lit .medal-star { opacity:.65; }
.medal-detail h3 { font-size:25px; font-family:'SimSun',serif; font-weight:400; letter-spacing:3px; margin-bottom:7px; }
.medal-detail .medal-subtitle { font-size:12px; color:var(--muted); line-height:1.8; }
.medal-dialog-state { display:inline-flex; gap:6px; align-items:center; margin:8px auto 12px; border:1px solid var(--line); background:var(--surface); color:var(--muted); padding:5px 12px; font-size:10px; border-radius:20px; }
.medal-dialog-state.is-lit { color:var(--gold-ink); border-color:#cdb27a44; background:var(--gold-bg); }
.medal-dialog-state .icon { width:12px; height:12px; }
.medal-rule { text-align:left; background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:14px 16px; margin-top:18px; }
.medal-rule strong { display:block; font-size:10px; font-weight:500; color:var(--text-soft); margin-bottom:5px; }
.medal-rule p { font-size:11px; color:var(--muted); line-height:1.8; }
.medal-preview-note { margin-top:12px; color:var(--muted); font-size:9px; text-align:center; line-height:1.8; }
.medal-dialog-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:20px; }
.medal-detail .medal-art .medal-color,.medal-detail .medal-art .medal-muted { transition:opacity .65s ease-in-out; }
.medal-reveal-stage.revealing .medal-art { animation:medal-awaken 1.15s cubic-bezier(.2,.7,.2,1) both; }
.medal-reveal-stage.revealing .medal-art:after { animation:medal-shine .8s .3s ease-out; }
.medal-reveal-stage.revealing .medal-halo { animation:medal-glow 1.3s ease-out both; }
.medal-reveal-stage.revealing .medal-ring { animation:medal-ring 1s .1s ease-out both; }
.medal-reveal-stage.revealing .medal-star { animation:medal-spark .9s var(--star-delay) both; }
.medal-editor-list { display:grid; gap:14px; }
.medal-editor-row { display:grid; grid-template-columns:52px minmax(0,1fr); gap:12px; padding:12px; background:var(--surface); border:1px solid var(--line); border-radius:12px; align-items:start; }
.medal-editor-row img { width:52px; height:52px; object-fit:contain; margin-top:21px; }
.medal-editor-fields { display:grid; gap:9px; }
.medal-editor-fields .field { gap:4px; }
.medal-editor-fields label { font-size:10px; }
.medal-editor-fields input { padding:8px 10px; font-size:12px; }
[data-theme='day'] .is-lit .medal-state { color:#a35419; background:#fce8c9; border-color:#d6933d4d; }
[data-theme='day'] .medal-art .medal-muted { filter:grayscale(1) saturate(0) brightness(.9) contrast(.85); opacity:.78; }
[data-theme='day'] .is-lit .medal-muted { opacity:0; }
[data-theme='day'] .medal-tile { background:#ffffff60; }
@keyframes medal-awaken { 0%{transform:scale(.86) rotate(-7deg)} 40%{transform:scale(1.08) rotate(2deg)} 75%{transform:scale(.99) rotate(-1deg)} 100%{transform:scale(1) rotate(0)} }
@keyframes medal-shine { 0%{transform:translateX(-130%);opacity:0} 30%{opacity:.65} 100%{transform:translateX(130%);opacity:0} }
@keyframes medal-glow { 0%{opacity:0;transform:scale(.65)} 45%{opacity:.55;transform:scale(1.15)} 100%{opacity:.2;transform:scale(1)} }
@keyframes medal-ring { 0%{opacity:.7;transform:scale(.7)} 100%{opacity:0;transform:scale(1.65)} }
@keyframes medal-spark { 0%{opacity:0;transform:translateY(12px) scale(.2) rotate(-30deg)} 40%{opacity:1} 100%{opacity:.65;transform:translateY(0) scale(1) rotate(0)} }
@media(max-width:1100px) { .medal-tile { padding:12px 5px 15px; }.medal-tile>strong { font-size:11px; }.medal-tile>small { font-size:8px; }.medal-grid { gap:12px 8px; }.medal-panel>.panel-head h2 { font-size:16px; }.medal-modes button { padding:6px 7px; } }
@media(max-width:680px) {
 .medal-panel { padding:21px 14px; }.medal-panel>.panel-head { padding:0 4px; gap:8px; }.medal-heading-copy { max-width:75%; }.medal-panel>.panel-head h2 { font-size:16px; }.medal-panel>.panel-head .subtext { font-size:9px; line-height:1.8; }.medal-panel .section-kicker { font-size:6px; letter-spacing:2.3px; }.medal-panel>.panel-head .tag { position:static; font-size:8px; padding:3px 6px; }
 .medal-controls { gap:9px; margin-bottom:17px; padding:0 3px; }.medal-modes { padding:2px; gap:1px; }.medal-modes button { padding:6px 7px; font-size:8px; min-height:28px; }.medal-edit { font-size:9px; }.medal-edit .icon { width:11px; }
 .medal-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 7px; }.medal-tile { border-radius:11px; padding:12px 3px 13px; }.medal-art { max-width:120px; }.medal-number { left:6px; top:5px; font-size:6px; }.medal-tile>strong { font-size:10px; letter-spacing:.3px; }.medal-tile>small { font-size:7px; padding:0 3px; line-height:1.7; min-height:24px; }.medal-state { font-size:7px; padding:3px 6px; margin:3px auto 7px; gap:3px; }.medal-state .icon { width:8px; height:8px; }
 .medal-footer { padding:15px 3px 0; margin-top:15px; gap:8px; }.medal-footer>span { font-size:8px; gap:4px; }.medal-footer .text-btn { font-size:9px; }.medal-footer .text-btn .icon { width:14px; }.medal-preview-caption { font-size:8px; }
 .medal-hero-summary { padding:20px; gap:12px; margin-bottom:18px; }.medal-hero-summary h2 { font-size:17px; }.medal-hero-summary p { font-size:9px; line-height:1.8; }.medal-collection-count { font-size:34px; }.medal-collection-count small { font-size:10px; }
 .medal-gallery .medal-panel { padding:21px 14px; }.medal-gallery .medal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }.medal-gallery .medal-tile { padding:14px 8px 17px; }.medal-gallery .medal-art { max-width:155px; }.medal-gallery .medal-tile>strong { font-size:12px; }.medal-gallery .medal-tile>small { font-size:8px; min-height:0; }.medal-gallery .medal-state { font-size:8px; }.medal-rule-list { grid-template-columns:1fr; gap:10px; }
 .medal-reveal-stage { height:224px; margin-top:-8px; }.medal-reveal-stage .medal-art { width:195px; max-width:195px; }.medal-reveal-stage .medal-halo { width:185px; height:185px; }.medal-detail h3 { font-size:23px; }.medal-detail .medal-subtitle { font-size:11px; }.medal-dialog-state { margin:5px auto 10px; font-size:9px; }.medal-rule { margin-top:14px; padding:13px; }.medal-rule p { font-size:10px; }.medal-dialog-actions { margin-top:17px; }.medal-dialog-actions .btn { font-size:11px; padding:9px; min-height:42px; }.medal-editor-fields input { font-size:16px; }.medal-editor-row { padding:10px; grid-template-columns:42px minmax(0,1fr); gap:9px; }.medal-editor-row img { width:42px; height:42px; }
}
@media(prefers-reduced-motion:reduce) { .medal-tile { transform:none!important; }.medal-reveal-stage .medal-art { transform:none!important; } }
[data-motion='reduced'] .medal-tile,[data-motion='reduced'] .medal-reveal-stage .medal-art { transform:none!important; }

/* Amethyst membership collection — dimensional artwork, calm readable surfaces. */
:root{--paper:#100d1c;--card:#1b162a;--ink:#f5f1ff;--muted:#a9a0bb;--line:#c9b5ff19;--gold:#bd9aef;--gold-light:#38274c;--gold-ink:#d6b6ff;--gold-bg:#38274c;--teal:#b7a1ed;--teal-light:#30253e;--surface:#282037;--surface-hover:#352943;--panel-top:#231b34;--nav-bg:#0c0a14;--text-soft:#c5bbd7;--field:#171222;--ticket-bg:#2a2038;--ticket-border:#bfa1ef33;--top-bg:#100d1ce8;--modal-bg:#211a30;--button-bg:#c3a1f7;--button-ink:#26163e;--background-glow:#602ea82b;--shadow:0 18px 50px #00000018;--radius:22px}
:root[data-theme='day']{--paper:#f6f3fc;--card:#fff;--ink:#2e2440;--muted:#82748f;--line:#704e9a1a;--gold:#8152b7;--gold-light:#efe4fc;--gold-ink:#7743b0;--gold-bg:#f0e5ff;--teal:#8055ae;--teal-light:#eee5f8;--surface:#f0eaf8;--surface-hover:#e8def4;--panel-top:#fff;--nav-bg:#100b1c;--text-soft:#655777;--field:#f8f5fc;--ticket-bg:#f5effb;--ticket-border:#a986cb33;--top-bg:#f6f3fce8;--modal-bg:#fff;--button-bg:#7541ba;--button-ink:#fff;--background-glow:#e7d8fa77;--shadow:0 14px 40px #734c9910}
body{background:radial-gradient(ellipse at 83% 0%,var(--background-glow),transparent 53%),var(--paper)}
::selection{background:#a476da55}
.status-dot{background:#bca0ed;box-shadow:0 0 8px #bca0ed44}.prototype-bar{color:#a69ab7}.proto-extra{color:#85778f}
.sidebar{background:linear-gradient(180deg,#130e20,#0d0b15);border-color:#d8c1ff0d}.brand-name{color:#f4eafa}.brand-en,.nav-caption{color:#91809f}.brand img,.mobile-brand img{filter:none;object-fit:contain}
.nav button{color:#a89ab9}.nav button.active{background:linear-gradient(90deg,#a276d72b,#9067b90b);border-color:#c09bfa20;color:#e9d7ff}.nav button.active:before{background:#c099f2}.side-note{color:#9a8ba6}.side-profile .avatar{background:#38234e;color:#e7c9ff}.side-profile{border-color:#b8a2cd12}
.avatar{background:#3c2a50;color:#dfbdfb}.topbar{border-bottom-color:var(--line)}.content{max-width:1500px}.page-head h1{font-family:'Segoe UI','Microsoft YaHei',sans-serif;font-weight:600;letter-spacing:1px}.page-head h1>span{font-family:inherit;font-weight:500;color:var(--gold-ink);margin-left:5px}.page-head .eyebrow{letter-spacing:2.3px;font-size:8px}.page-head p{font-size:12px}.section-kicker{color:var(--gold);font-size:8px;letter-spacing:2px}
.btn{border-radius:11px}.btn.primary{background:linear-gradient(115deg,#d8b7ff,#ba8cec);color:#29163e}.btn.primary:hover{box-shadow:0 6px 22px #9a58dc30}.progress-track>span{background:linear-gradient(90deg,#8a53cc,#d1a1f8);box-shadow:0 0 12px #a067d844}
.royal-hero-grid{grid-template-columns:minmax(0,1.85fr) minmax(270px,1fr);gap:22px;align-items:stretch}
.royal-card{position:relative;min-height:345px;border:1px solid #ba8aee65;border-radius:23px;overflow:hidden;background:linear-gradient(118deg,#25153e 0%,#352052 47%,#66358c 100%);box-shadow:0 18px 60px #3b145a28,inset 0 1px 0 #ecd4ff38;color:#f8efff;isolation:isolate}
.royal-card:before{content:'';position:absolute;inset:8px;border:1px solid #dec0fa22;border-radius:16px;z-index:-1;pointer-events:none}.royal-card:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at var(--shine-x,80%) var(--shine-y,15%),#f2cdff2b,transparent 50%)}
.royal-card-glow{position:absolute;right:-80px;top:-110px;width:460px;height:460px;background:radial-gradient(circle,#b27deb55,transparent 66%);pointer-events:none;z-index:-1}.royal-card-copy{position:relative;z-index:2;padding:30px 31px 26px;width:61%}.royal-eyebrow{font-size:8px;letter-spacing:3px;color:#ceadeb;margin-bottom:17px}.royal-tier{display:inline-flex;gap:6px;align-items:center;padding:5px 9px;border:1px solid #cfabf03b;background:#bc8eee12;border-radius:20px;font-size:10px;color:#e1c4f6}.royal-tier .icon{width:12px;height:12px}
.royal-card h2{font-size:31px;line-height:1.5;letter-spacing:1px;font-weight:500;margin:15px 0 8px;color:#fff3ff}.royal-card h2 span{color:#dfbcf7}.royal-card-copy p{font-size:11px;color:#cab3dc;margin:0 0 22px;white-space:nowrap}.royal-card-button{border:1px solid #ecceff5c;border-radius:9px;padding:10px 14px;font-size:11px;min-height:40px;color:#43265f;background:linear-gradient(110deg,#f5ddff,#dec0f4);display:inline-flex;align-items:center;gap:20px;box-shadow:0 5px 18px #1400231c}.royal-card-button:hover{background:#f5e5ff}.royal-card-button .icon{width:17px;height:17px}
.royal-artwork{position:absolute;right:-11px;top:9px;width:47%;height:270px;z-index:1;pointer-events:none}.royal-artwork img{width:100%;height:100%;object-fit:contain;position:relative;z-index:2;filter:drop-shadow(0 18px 20px #10052050);animation:royal-arrive 1.2s cubic-bezier(.2,.7,.2,1) both}.royal-pedestal{position:absolute;left:19%;right:12%;height:23px;bottom:21px;background:radial-gradient(ellipse,#e7bfff62,transparent 67%);filter:blur(6px)}
.royal-star{position:absolute;font-size:25px;color:#efdcff;text-shadow:0 0 16px #ddaaff;z-index:3}.star-one{top:29px;left:26px;animation:royal-star-in 1s .3s both}.star-two{right:20px;bottom:43px;font-size:16px;animation:royal-star-in 1s .5s both}
.royal-ring{position:absolute;right:-30px;top:44px;width:360px;height:170px;border:1px solid #cd9aff22;border-radius:50%;transform:rotate(-28deg);pointer-events:none}.royal-ring-two{right:-50px;top:56px;transform:rotate(32deg);border-color:#f3d1ff13}
.royal-card-bottom{position:relative;z-index:3;display:flex;align-items:center;gap:20px;margin:0 28px;padding:16px 0 17px;border-top:1px solid #dbb6f92b}.royal-member{display:flex;align-items:center;gap:9px}.royal-member .avatar{width:32px;height:32px;background:linear-gradient(135deg,#e2bdff,#9a5dd6);border:1px solid #e8c8ff55;color:#45245e;font-size:13px}.royal-member strong{display:block;font-size:12px;font-weight:500}.royal-member small{display:block;font-size:8px;color:#c4a9d8;margin-top:4px}.royal-card-stat{padding-left:20px;border-left:1px solid #dbb6f925}.royal-card-stat>span{display:block;font-size:8px;color:#cbb1df;margin-bottom:3px}.royal-card-stat>strong{font-size:14px;font-weight:500}.royal-card-stat small{font-weight:400;font-size:8px;color:#cbb1df}.royal-demo-button{margin-left:auto;display:flex;gap:5px;align-items:center;border:0;background:transparent;color:#e0c5f3;font-size:9px;min-height:38px;padding:3px}.royal-demo-button .icon{width:13px;height:13px}
.royal-home-grid .point-card,.royal-shortcuts,:is(.royal-home-grid>.panel,.royal-hero-grid>.royal-medal-peek){--ink:#30243f;--muted:#8a7a9c;--text-soft:#6e5b7f;--line:#79569a1a;--surface:#f2ecf8;--surface-hover:#e9dff3;--gold:#8f5ac4;--gold-ink:#8854bb;--gold-bg:#f0e5fb;--teal:#825ca7;--teal-light:#f1e8fa;--field:#f8f5fc;color:var(--ink);background:#fff;border-color:#e1d3ef}
.royal-home-grid .point-card{padding:29px 28px 25px;background:linear-gradient(145deg,#f5eaff,#fff 47%,#fdfbff);display:flex;flex-direction:column;min-height:345px;box-shadow:0 15px 40px #00000015}.royal-home-grid .point-label{font-size:12px;color:#796189}.royal-home-grid .point-label small{letter-spacing:2px;font-size:7px;color:#ae9dbb}.royal-home-grid .points-big{color:#3e2559;font-size:62px;font-weight:500;margin:18px 0 10px}.royal-home-grid .points-big small{color:#9b72b7}.royal-home-grid .point-label .point-spark{background:#ead9fa;border-color:#dcc3f1;color:#8c57b3}.royal-home-grid .pending{font-size:10px;color:#937c9f;margin-bottom:22px}.royal-home-grid .point-milestone{margin-top:auto}.royal-home-grid .point-card .progress-caption{font-size:10px;margin-bottom:18px;color:#9d8aa8}.royal-home-grid .point-card .btn{background:linear-gradient(110deg,#8a4ed2,#aa71e1);color:white;border:0;justify-content:space-between;min-height:43px;font-size:12px}
.royal-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-radius:17px;margin:20px 0 23px;border:1px solid #e1d3ef;box-shadow:0 8px 30px #0000000b;padding:18px 6px}.royal-shortcuts button{display:flex;align-items:center;gap:13px;padding:5px 23px;border:0;border-right:1px solid #eadff3;background:transparent;text-align:left;color:#463354;min-height:48px}.royal-shortcuts button:last-child{border-right:0}.royal-shortcut-icon{display:grid;place-items:center;background:linear-gradient(140deg,#f2e4ff,#eee8f6);border-radius:13px;width:43px;height:43px;flex-shrink:0;color:#9c64ca;box-shadow:inset 0 1px 1px #fff}.royal-shortcut-icon .icon{width:21px;height:21px;stroke-width:1.5}.royal-shortcuts strong{font-size:12px;font-weight:500;display:block}.royal-shortcuts strong b{font-size:16px;font-weight:600;margin-left:7px;color:#8e52c4}.royal-shortcuts strong small{display:inline;margin-left:3px;font-size:9px}.royal-shortcuts button>span>small{display:block;font-size:10px;color:#a28fae;margin-top:5px}.royal-shortcuts button>.icon{width:14px;margin-left:auto;color:#a38cb8;flex-shrink:0}.royal-shortcuts button:hover{background:#faf6ff;border-radius:10px}
.royal-home-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:22px;margin-bottom:23px}:is(.royal-home-grid>.panel,.royal-hero-grid>.royal-medal-peek){padding:25px 25px 20px;border-radius:21px}:is(.royal-home-grid,.royal-medal-peek) .panel-head{margin-bottom:15px;align-items:center}:is(.royal-home-grid,.royal-medal-peek) .panel-head h2{font-size:17px;font-weight:600}:is(.royal-home-grid,.royal-medal-peek) .panel-head .subtext{font-size:11px;color:#9a85a9}:is(.royal-home-grid,.royal-medal-peek) .text-btn{color:#9564bd;font-size:10px}.royal-small-diamond{width:91px;height:81px;object-fit:contain;margin:-12px -5px -9px 0;filter:drop-shadow(0 5px 10px #a677c51c)}
.royal-perks-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.royal-perk{display:flex;flex-direction:column;align-items:flex-start;border:1px solid #eadff3;border-radius:14px;padding:18px;background:linear-gradient(140deg,#faf5ff,#f6f1fa);color:#4a365b;text-align:left}.royal-perk:hover{border-color:#c69de4;background:#f3e9fb}.royal-perk-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:linear-gradient(130deg,#e4c7fa,#f1e4fb);color:#9352c3;box-shadow:inset 0 1px 1px #fff;margin-bottom:14px}.royal-perk-icon .icon{width:20px}.royal-perk strong{font-size:13px;font-weight:500;letter-spacing:.3px}.royal-perk small{font-size:9px;color:#a08bad;margin-top:6px}.royal-perk-link{display:flex;gap:14px;align-items:center;margin-top:18px;color:#9b6bc1;font-size:10px}.royal-perk-link .icon{width:15px;height:15px}.royal-all-privileges{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:16px;padding:5px;width:100%;min-height:31px;color:#a081b4;font-size:10px;background:transparent;border:0}.royal-all-privileges .icon{width:12px}
.royal-medal-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:20px}.royal-mini-medal{border:0;background:transparent;min-width:0;text-align:center;color:#624b73;padding:0}.royal-mini-medal .medal-art{max-width:126px;transition:transform .25s}.royal-mini-medal:hover .medal-art{transform:translateY(-5px)}.royal-mini-medal strong{font-size:11px;font-weight:500;display:block;margin-top:5px;overflow-wrap:anywhere}.royal-mini-medal small{font-size:9px;color:#b09cbc;display:block;margin-top:6px}.royal-collection-foot{border-top:1px solid #efe5f5;margin-top:23px;padding-top:19px;display:flex;justify-content:space-between;align-items:center;gap:10px}.royal-collection-foot>span{color:#aa95b7;font-size:9px}.royal-recent-panel{padding:24px 27px}.royal-recent-panel .panel-head{margin-bottom:4px}.royal-recent-panel .transaction{padding:16px 0}.royal-recent-panel .transaction:last-child{padding-bottom:0}.royal-recent-panel .transaction-icon{background:#9d68d51c;color:#b586df}.royal-recent-panel .panel-head h2{font-size:17px}.royal-recent-panel .transaction strong{font-size:12px}.royal-recent-panel .transaction small{font-size:10px}
.medal-panel{background:radial-gradient(ellipse at 50% 0%,#8657a523,transparent 70%),var(--card)}.medal-hero-summary{background:linear-gradient(115deg,#8154ac29,#c594ee12);border-color:#aa7cde2b}.medal-tile:hover{border-color:#bb8feb55}.is-lit .medal-state{background:#9d68cf22;border-color:#be8eeb33;color:#d7b2f8}[data-theme='day'] .is-lit .medal-state{background:#f0e5ff;border-color:#d9bee9;color:#8952b5}.medal-gallery .medal-tile{background:linear-gradient(150deg,#b88be90a,transparent)}
.reward-art{background:radial-gradient(ellipse at 70% 15%,#c98cf34a,transparent 68%),linear-gradient(140deg,#322040,#5a3477)}.reward-art.blue-art{background:radial-gradient(ellipse at 70% 15%,#b4a2ff4a,transparent 68%),linear-gradient(140deg,#252040,#463877)}.mini-pass{background:linear-gradient(125deg,#ead8fa,#bb8ddd);color:#533666;border-color:#f6e8ff80}.blue-art .mini-pass{background:linear-gradient(125deg,#e1dafb,#a59bdb);color:#494166}.art-value{color:#d6b8eb}.reward-art-icon{color:#d6b8eb}.explore{background:radial-gradient(ellipse at 100% 0%,#a578ce45,transparent 80%),#30203f;border-color:#bf8deb2b}.progress-caption{line-height:1.7}.tab,.tabs button.active{border-color:#b58cd833}
dialog{border-color:#b892e83b}dialog::backdrop{background:radial-gradient(ellipse at 50% 35%,#39205080,#080610c9);backdrop-filter:blur(9px)}
dialog.royal-dialog{width:444px;max-width:calc(100vw - 26px);padding:0;border:0;background:transparent;box-shadow:none;overflow-x:hidden;overflow-y:auto;max-height:94dvh;color:#382748}
.royal-dialog .modal-head{position:absolute;top:137px;left:0;right:0;padding:0 28px;z-index:5;justify-content:flex-end}.royal-dialog .modal-head h2{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.royal-dialog .modal-close{width:28px;height:28px;background:#dbc5ef70;color:#9475a6;border:1px solid #b797ce22}.royal-dialog .modal-close:hover{background:#dbc5ef}
.royal-dialog .modal-body{padding:119px 12px 12px;overflow:visible}.royal-dialog-art{position:absolute;top:0;left:50%;transform:translateX(-50%);width:260px;height:233px;pointer-events:none;z-index:3}.royal-dialog-art img{width:100%;height:100%;object-fit:contain;position:relative;z-index:3;filter:drop-shadow(0 12px 16px #6c3ba64a);animation:royal-arrive .8s cubic-bezier(.15,.7,.25,1) both}.royal-burst{position:absolute;inset:5% -13% -8%;background:repeating-conic-gradient(from 10deg,#c38fea16 0deg 9deg,transparent 9deg 24deg);mask-image:radial-gradient(ellipse,#000 15%,transparent 69%);transform:rotate(-12deg);opacity:.7}.royal-celebrate .royal-burst{animation:royal-rays 1.6s ease-out both}.royal-dialog-spark{position:absolute;z-index:4;color:#edceff;text-shadow:0 0 13px #dd99ff}.spark-a{top:35px;left:1px;font-size:24px}.spark-b{top:73px;right:0;font-size:18px}.spark-c{top:156px;left:11px;font-size:12px}.royal-celebrate .royal-dialog-spark{animation:royal-star-in 1s .25s both}
.royal-dialog-content{position:relative;padding:96px 27px 24px;background:linear-gradient(180deg,#ead2fc 0,#f7efff 80px,#fff 180px);border:1px solid #fff9;border-radius:23px;box-shadow:0 20px 45px #0c041a33;text-align:center}.royal-dialog-kicker{font-size:7px;letter-spacing:1.5px;color:#a78ab9}.royal-dialog-content h3{font-size:22px;color:#3f2d4d;margin:12px -5px 9px;font-weight:600;letter-spacing:.2px}.royal-dialog-content>p{font-size:11px;color:#ad97b7;line-height:1.8;margin:0}.royal-divider{display:flex;align-items:center;gap:14px;color:#a782c7;font-size:10px;margin:22px 0}.royal-divider:before,.royal-divider:after{content:'';height:1px;background:linear-gradient(90deg,transparent,#ddc9ee);flex:1}.royal-divider:after{transform:rotate(180deg)}
.royal-dialog-perks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:0 -5px 26px}.royal-dialog-perks>div{display:flex;flex-direction:column;align-items:center}.royal-dialog-perks>div>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:linear-gradient(140deg,#f8f2ff,#e9d5fa);border:1px solid #e9dafa;box-shadow:inset 0 1px 3px #fff;color:#a269d0;margin-bottom:9px}.royal-dialog-perks .icon{width:20px;height:20px;stroke-width:1.7}.royal-dialog-perks strong{font-size:10px;color:#715b81;font-weight:500}.royal-dialog-perks small{font-size:8px;color:#b4a2bd;margin-top:5px}
.royal-dialog-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:10px}.royal-dialog-actions .btn{background:#f0ebf5;color:#8b7897;border:0;min-height:44px;font-size:12px;justify-content:center;padding:10px}.royal-dialog-actions .btn.primary{background:linear-gradient(110deg,#7945b4,#a56ed3);color:#fff}.royal-dialog-actions .icon{width:15px}.royal-dialog-content .royal-demo-note{font-size:9px;line-height:1.6;color:#baa7c5;margin:18px 0 0}.royal-replay{border:0;background:transparent;color:#9365b9;font-size:10px;min-height:34px;margin-top:8px}
@keyframes royal-arrive{from{opacity:0;transform:translateY(25px) scale(.8) rotate(-7deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}
@keyframes royal-star-in{0%{opacity:0;transform:scale(.3) rotate(-40deg)}60%{opacity:1;transform:scale(1.2) rotate(10deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes royal-rays{0%{opacity:0;transform:scale(.55) rotate(-28deg)}50%{opacity:1}100%{opacity:.7;transform:scale(1) rotate(-12deg)}}
@media(min-width:1600px){.royal-card{min-height:365px}.royal-card-copy{padding:33px}.royal-card h2{font-size:35px}.royal-artwork{height:290px}.royal-card-bottom{margin:0 32px}}
@media(max-width:1200px){.royal-hero-grid{grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:18px}.royal-card-copy{padding:25px 23px 25px;width:64%}.royal-card h2{font-size:27px}.royal-eyebrow{letter-spacing:2px}.royal-artwork{right:-22px;top:35px;width:49%;height:230px}.royal-card-bottom{margin:0 22px;gap:14px}.royal-card-stat{padding-left:14px}.royal-shortcuts button{padding:5px 15px;gap:10px}.royal-shortcut-icon{width:37px;height:37px}.royal-home-grid{gap:18px}:is(.royal-home-grid>.panel,.royal-hero-grid>.royal-medal-peek){padding:22px 20px 18px}:is(.royal-home-grid,.royal-medal-peek) .panel-head h2{font-size:15px}.royal-collection-foot>span{font-size:8px}}
@media(min-width:681px) and (max-width:1000px){.royal-hero-grid{grid-template-columns:1fr}.royal-card{min-height:330px}.royal-artwork{width:46%;height:290px;top:-5px;right:3%}.royal-card-copy{width:65%}.royal-home-grid .point-card{min-height:230px;display:grid;grid-template-columns:1fr 1.2fr;column-gap:22px;align-items:center}.royal-home-grid .point-card .point-label,.royal-home-grid .point-card .points-big,.royal-home-grid .point-card .pending{grid-column:1}.royal-home-grid .point-card .point-label{grid-row:1}.royal-home-grid .point-card .points-big{grid-row:2;margin:12px 0}.royal-home-grid .point-card .pending{grid-row:3;margin:0}.royal-home-grid .point-milestone{grid-column:2;grid-row:1 / span 2}.royal-home-grid .point-card>.btn{grid-column:2;grid-row:3}.royal-home-grid{grid-template-columns:1fr}.royal-mini-medal .medal-art{max-width:145px}.royal-shortcuts{padding:14px 0}.royal-shortcuts button{gap:7px;padding:4px 10px}.royal-shortcut-icon{width:32px;height:32px}.royal-shortcuts button>span>small{font-size:8px}.royal-shortcuts strong{font-size:10px}.royal-shortcuts button>.icon{display:none}}
@media(max-width:680px){.content{padding:23px 18px 105px}.topbar{padding:0 18px}.mobile-brand{color:#e5c9fa}.main{margin-left:0}.page-head{margin-bottom:21px}.page-head h1,.page-head h1>span{font-size:28px;display:inline;line-height:1.5;letter-spacing:1px}.page-head h1>span{margin-left:4px}.page-head p{font-size:10px;max-width:290px;line-height:1.9}.page-head .eyebrow{font-size:7px;letter-spacing:2px;margin-bottom:6px}body[data-page='home'] .page-head .page-actions{position:static;margin-top:0}.page-head .page-actions .btn{min-height:30px;font-size:9px;padding:5px 9px}body[data-page='home'] .page-head{display:block}body[data-page='home'] .page-head .page-actions{position:absolute;right:0;top:0}body[data-page='home'] .page-head .page-actions .icon{width:12px;height:12px}
.royal-hero-grid{grid-template-columns:1fr;gap:17px}.royal-card{min-height:333px;border-radius:20px}.royal-card-copy{padding:24px 22px 20px;width:69%}.royal-eyebrow{font-size:6px;letter-spacing:2px;margin-bottom:14px}.royal-tier{font-size:8px;padding:4px 8px}.royal-card h2{font-size:25px;line-height:1.5;margin-top:14px;margin-bottom:7px}.royal-card-copy p{font-size:9px;margin-bottom:18px}.royal-card-button{font-size:10px;padding:9px 11px;gap:13px;min-height:37px}.royal-artwork{right:-24px;top:39px;width:49%;height:218px}.star-one{font-size:17px;top:38px;left:18px}.star-two{right:31px;bottom:45px;font-size:12px}.royal-pedestal{bottom:36px}.royal-card-bottom{margin:0 20px;padding:14px 0;gap:13px}.royal-member .avatar{width:29px;height:29px}.royal-member strong{font-size:10px}.royal-member small{font-size:6px}.royal-card-stat{padding-left:13px}.royal-card-stat>span{font-size:7px}.royal-card-stat>strong{font-size:12px}.royal-demo-button{font-size:8px;gap:4px;white-space:nowrap}.royal-demo-button .icon{width:11px;height:11px}
.royal-home-grid .point-card{padding:22px 23px;min-height:286px;border-radius:20px}.royal-home-grid .points-big{font-size:52px;margin:12px 0 9px}.royal-home-grid .pending{margin-bottom:17px}.royal-home-grid .point-label{font-size:12px}.royal-home-grid .point-label small{display:inline;font-size:6px;margin-left:7px}.royal-home-grid .point-card .progress-caption{margin-bottom:15px;font-size:9px}.royal-home-grid .point-card .btn{min-height:41px;font-size:11px}
.royal-shortcuts{margin:17px 0 20px;border-radius:16px;padding:17px 5px;gap:0}.royal-shortcuts button{flex-direction:column;text-align:center;gap:9px;padding:0 4px;min-width:0;min-height:80px}.royal-shortcut-icon{width:33px;height:33px;border-radius:10px}.royal-shortcut-icon .icon{width:18px;height:18px}.royal-shortcuts strong{font-size:10px;white-space:nowrap}.royal-shortcuts strong b{font-size:12px;margin-left:4px}.royal-shortcuts strong small{font-size:7px}.royal-shortcuts button>span>small{font-size:7px;line-height:1.5;margin-top:5px}.royal-shortcuts button>.icon{display:none}.royal-home-grid{grid-template-columns:1fr;gap:18px;margin-bottom:18px}:is(.royal-home-grid>.panel,.royal-hero-grid>.royal-medal-peek){padding:22px 20px 17px;border-radius:20px}:is(.royal-home-grid,.royal-medal-peek) .panel-head h2{font-size:16px}:is(.royal-home-grid,.royal-medal-peek) .panel-head .subtext{font-size:10px}.royal-perk{padding:16px}.royal-perk small{font-size:8px}.royal-small-diamond{width:80px;height:76px}.royal-medal-row{gap:5px}.royal-mini-medal .medal-art{max-width:109px}.royal-mini-medal strong{font-size:10px}.royal-mini-medal small{font-size:8px}.royal-collection-foot{margin-top:20px;padding-top:16px}.royal-collection-foot>span{font-size:8px}.royal-collection-foot .text-btn{font-size:9px}.royal-recent-panel{padding:22px 20px}.royal-recent-panel .transaction strong{font-size:10px}.royal-recent-panel .transaction small{font-size:8px}.royal-recent-panel .transaction-icon{width:31px;height:31px}.royal-recent-panel .panel-head h2{font-size:16px}
.bottom-nav{background:#17101feb;border-color:#c799f930;border-radius:19px}.bottom-nav button{color:#9c89ae}.bottom-nav button.active{color:#dbb4ff}.bottom-nav button.active:after{background:#bd89ee}.bottom-nav button .icon{stroke-width:1.7}[data-theme='day'] .mobile-brand{color:#583775}[data-theme='day'] .bottom-nav{background:#fff9ffed}[data-theme='day'] .bottom-nav button{color:#a38cb5}[data-theme='day'] .bottom-nav button.active{color:#874db5}
dialog.royal-dialog{max-width:calc(100vw - 28px);max-height:94dvh}.royal-dialog .modal-body{padding:110px 6px 8px}.royal-dialog-content{padding:87px 20px 20px;border-radius:20px}.royal-dialog-art{width:230px;height:216px}.royal-dialog .modal-head{top:124px;padding:0 20px}.royal-dialog-content h3{font-size:20px;margin-top:11px}.royal-dialog-content>p{font-size:10px}.royal-dialog-kicker{font-size:6px;letter-spacing:1.3px}.royal-dialog-perks{gap:4px;margin-bottom:24px}.royal-dialog-perks strong{font-size:9px}.royal-dialog-perks small{font-size:7px}.royal-dialog-perks>div>span{width:37px;height:37px}.royal-dialog-actions .btn{font-size:10px;min-height:43px;padding:10px 7px}.royal-dialog-content .royal-demo-note{font-size:8px}.royal-divider{margin:20px 0;font-size:9px}
}
@media(max-width:370px){.content{padding-left:14px;padding-right:14px}.royal-card-copy{padding-left:19px}.royal-card h2{font-size:23px}.royal-artwork{right:-28px;width:50%;top:40px}.royal-card-bottom{margin:0 18px;gap:10px}.royal-card-stat{padding-left:10px}.royal-demo-button{font-size:7px}:is(.royal-home-grid>.panel,.royal-hero-grid>.royal-medal-peek){padding-left:17px;padding-right:17px}.royal-collection-foot>span{font-size:7px}}
@media(max-width:680px){.royal-artwork{right:0;top:49px;width:43%;height:200px}.star-one{left:9px;top:26px}.star-two{right:9px;bottom:26px}.royal-pedestal{bottom:29px}}
@media(max-width:370px){.royal-artwork{right:0;top:50px;width:42%}}

/* The crystal stays readable while light moves across separate facets. */
.royal-artwork.has-crystal{display:grid;place-items:center;perspective:850px}
.crystal-stage{position:relative;width:min(100%,270px);aspect-ratio:1;isolation:isolate}
.crystal-aura{position:absolute;inset:4% -9% 0;background:radial-gradient(ellipse at 48% 46%,#c7a0ff59,transparent 61%),radial-gradient(ellipse at 72% 62%,#7dd9ff24,transparent 52%);filter:blur(12px);animation:crystal-breathe 7.5s ease-in-out infinite}
.crystal-float{position:absolute;inset:0;transform-origin:50% 56%;animation:crystal-sway 8.6s ease-in-out infinite}
.royal-artwork .crystal-float img{display:block;width:100%;height:100%;object-fit:contain;animation:none;filter:drop-shadow(0 15px 15px #16052680) drop-shadow(0 0 6px #c49dff25)}
.crystal-refraction{position:absolute;inset:0;z-index:3;clip-path:polygon(50% 11%,75% 16%,98% 37%,50% 91%,2% 37%,25% 16%);background:linear-gradient(113deg,transparent 25%,#b5c8ff00 39%,#c9c1ff69 44%,#fff2dcb3 46%,#a7e9ff52 49%,#efb7ff33 53%,transparent 62%);background-size:340% 100%;mix-blend-mode:screen;opacity:.35;animation:crystal-sweep 10.8s ease-in-out infinite}
.crystal-facet{position:absolute;inset:0;z-index:4;background:linear-gradient(150deg,#ffffffb8,#c0eaff24 55%,transparent);mix-blend-mode:screen;opacity:0;animation:crystal-facet-light 7.8s ease-in-out infinite}
.facet-left{clip-path:polygon(25% 16%,12% 37%,35% 36%);animation-delay:-1.6s}
.facet-table{clip-path:polygon(25% 16%,50% 11%,63% 22%,35% 24%);animation-delay:-4.8s}
.facet-right{clip-path:polygon(77% 18%,98% 37%,67% 38%);animation-delay:-6.1s;background:linear-gradient(25deg,#b8efff8c,#ffdfed80,transparent)}
.crystal-fire{--fire-size:15px;position:absolute;z-index:5;width:var(--fire-size);height:var(--fire-size);border-radius:50%;background:radial-gradient(circle,#fff 0 8%,#fff4da8c 12%,#d1bdff22 34%,transparent 70%);opacity:0;transform:translate(-50%,-50%) scale(.45);animation:crystal-firelight 6.8s ease-in-out infinite}
.crystal-fire:before,.crystal-fire:after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:linear-gradient(90deg,transparent,#eff9ff,transparent)}
.crystal-fire:before{width:145%;height:1px}.crystal-fire:after{width:1px;height:145%;background:linear-gradient(0deg,transparent,#fff5e8,transparent)}
.fire-one{left:25%;top:18%;--fire-size:23px;animation-delay:-.8s}.fire-two{left:78%;top:19%;--fire-size:18px;animation-delay:-3.3s}.fire-three{left:96%;top:38%;--fire-size:20px;animation-delay:-5s}.fire-four{left:49%;top:88%;--fire-size:15px;animation-delay:-2s}.fire-five{left:8%;top:42%;--fire-size:12px;animation-delay:-6s}
.crystal-caustic{position:absolute;z-index:-1;left:14%;right:14%;bottom:-2%;height:15%;border-radius:50%;background:radial-gradient(ellipse,#e5c7ff5c,#a78bff30 33%,transparent 70%);filter:blur(3px);animation:crystal-caustic-light 8.6s ease-in-out infinite}
.crystal-caustic:after{content:'';position:absolute;inset:26% -10%;border-radius:50%;background:conic-gradient(from 35deg,transparent,#bdcdff88,transparent 27%,#e5b3ff80,transparent 65%,#ffe4ba63,transparent);filter:blur(5px);animation:crystal-caustic-turn 24s linear infinite}
.crystal-dust{position:absolute;z-index:-1;width:3px;height:3px;border-radius:50%;background:#ead6ff;box-shadow:0 0 7px #d8b6ff;opacity:0;animation:crystal-dust-rise 9s ease-in-out infinite}.dust-one{left:3%;top:59%;animation-delay:-1s}.dust-two{right:5%;top:66%;animation-delay:-4s;background:#b9e6ff}.dust-three{left:68%;top:25%;animation-delay:-7s;background:#ffe4c1}
@keyframes crystal-sway{0%,100%{transform:translate3d(0,3px,0) rotateY(-7deg) rotateZ(-1deg)}50%{transform:translate3d(0,-7px,0) rotateY(7deg) rotateZ(1deg)}}
@keyframes crystal-breathe{0%,100%{opacity:.58;transform:scale(.96)}50%{opacity:.92;transform:scale(1.08)}}
@keyframes crystal-sweep{0%,20%{background-position:140% 50%;opacity:0}35%{opacity:.4}68%{background-position:-40% 50%;opacity:.28}80%,100%{background-position:-40% 50%;opacity:0}}
@keyframes crystal-facet-light{0%,32%,77%,100%{opacity:0}49%{opacity:.3}59%{opacity:.08}}
@keyframes crystal-firelight{0%,28%,78%,100%{opacity:0;transform:translate(-50%,-50%) scale(.45) rotate(-10deg)}48%{opacity:.95;transform:translate(-50%,-50%) scale(1.18) rotate(13deg)}60%{opacity:.25;transform:translate(-50%,-50%) scale(.78) rotate(20deg)}}
@keyframes crystal-caustic-light{0%,100%{opacity:.8;transform:scaleX(.88)}50%{opacity:.45;transform:scaleX(1.1)}}
@keyframes crystal-caustic-turn{to{transform:rotate(360deg)}}
@keyframes crystal-dust-rise{0%{opacity:0;transform:translateY(7px) scale(.5)}35%{opacity:.65}75%{opacity:.15}100%{opacity:0;transform:translateY(-27px) scale(.8)}}
[data-motion='reduced'] .crystal-stage *,[data-motion='reduced'] .crystal-stage :after,[data-motion='reduced'] .crystal-stage :before{animation:none!important}
[data-motion='reduced'] :is(.crystal-refraction,.crystal-facet,.crystal-fire,.crystal-dust){display:none}
@media(prefers-reduced-motion:reduce){.crystal-stage *,.crystal-stage :after,.crystal-stage :before{animation:none!important}.crystal-refraction,.crystal-facet,.crystal-fire,.crystal-dust{display:none}}
.royal-shortcuts button>span>small,.royal-perk small,.royal-mini-medal small,.royal-collection-foot>span{color:#887196}
.royal-dialog-content>p,.royal-dialog-perks small,.royal-dialog-content .royal-demo-note{color:#877094}
.mode-toggle button.active{background:#352344;color:#eddaff;border-color:#bd95df33}

.brand img{width:40px;height:40px;flex-shrink:0;background:transparent;border-radius:0}.mobile-brand img{width:32px;height:32px;flex-shrink:0;background:transparent;border-radius:0}

/* Telegram usernames may be longer than the original demo nickname. */
.royal-dialog-content>p,.royal-member strong,.royal-tier{overflow-wrap:anywhere}
.royal-member>div{min-width:0}
/* All rewards share the same account-bound, permanent six-star qualification. */
.redemption-gate{position:relative;isolation:isolate;overflow:hidden;padding:28px 30px;margin:23px 0 26px;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);border-radius:24px;background:radial-gradient(ellipse at 90% 0,#c599ed1c,transparent 64%),var(--card);color:var(--ink)}
.redemption-gate:after{content:'';position:absolute;inset:5px;z-index:-1;border:1px solid #b596cb15;border-radius:19px;pointer-events:none}.redemption-gate-kicker{font-size:8px;letter-spacing:2px;color:var(--muted)}.redemption-gate-emblem{display:grid;place-items:center;width:43px;height:43px;border:1px solid #c09bd74d;border-radius:13px;background:linear-gradient(145deg,#d6b3f326,#aa82cd0c);color:var(--ink);margin:18px 0 13px}.redemption-gate-emblem .icon{width:22px;height:22px}.redemption-gate h2{font-size:23px;line-height:1.5;font-weight:500;letter-spacing:.6px}.redemption-gate p{font-size:12px;line-height:1.9;margin-top:10px;color:var(--muted)}.redemption-gate p strong{color:var(--ink);font-weight:500}.redemption-stars{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;max-width:650px;margin:20px 0 24px}.redemption-stars>div{text-align:center;min-width:0}.redemption-stars img{width:100%;max-width:64px;aspect-ratio:1;object-fit:contain;filter:grayscale(1);opacity:.45}.redemption-stars .is-lit img{filter:drop-shadow(0 0 8px #d6aeef55);opacity:1}.redemption-stars span{display:block;font-size:9px;line-height:1.6;color:var(--muted);margin-top:4px}.redemption-stars .is-lit span{color:var(--ink)}.redemption-gate-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:18px;border-top:1px solid var(--line)}.redemption-gate-foot>span{font-size:12px;line-height:1.8;color:var(--ink)}.redemption-gate-foot small{font-size:10px;color:var(--muted)}.redemption-next{display:block;font-size:10px;color:var(--muted);margin-top:14px}.redemption-unlocked{display:flex;align-items:center;gap:9px;padding:15px 18px;border:1px solid #bfa16b44;border-radius:14px;background:#bfa16b0d;color:var(--ink);font-size:12px;margin:20px 0}.redemption-unlocked .icon{color:#c8a467}.redemption-gate-dialog .modal-body{padding-top:0}.redemption-gate.is-compact{border:0;margin:0;padding:6px 0;background:none}.redemption-gate.is-compact:after{display:none}.is-compact .redemption-stars{gap:5px}.is-compact .redemption-stars span{font-size:8px}.is-compact h2{font-size:21px}
@media(max-width:680px){.redemption-gate{padding:22px 17px;border-radius:20px}.redemption-gate-kicker{font-size:6px;letter-spacing:1.4px}.redemption-gate h2,.is-compact h2{font-size:19px}.redemption-gate p{font-size:11px}.redemption-stars{gap:4px;margin:20px 0}.redemption-stars span{font-size:8px}.redemption-gate-foot{align-items:stretch;flex-direction:column;gap:13px}.redemption-gate-foot>.btn{width:100%;justify-content:center;min-height:44px}}

/* The collection is a fixed constellation: readable targets, ornamental motion only. */
.cosmic-gallery{position:relative;isolation:isolate;overflow:hidden;border-radius:25px;border:1px solid #9b91ec35;background:radial-gradient(ellipse at 30% 48%,#44318845,transparent 53%),radial-gradient(ellipse at 70% 10%,#252a5e60,transparent 55%),linear-gradient(150deg,#0d102c,#131337 50%,#11122d);color:#f3efff;box-shadow:0 20px 65px #06051238;padding:33px 34px 19px}
.cosmic-gallery:before{content:'';position:absolute;inset:32% -30% 12%;z-index:-1;pointer-events:none;transform:rotate(-18deg);background:linear-gradient(180deg,transparent,#8653ee09 35%,#a97aff12 50%,#446ff50c 60%,transparent);filter:blur(12px)}
.cosmic-stars{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.cosmic-stars i{position:absolute;left:var(--sx);top:var(--sy);width:var(--ss);height:var(--ss);background:#e0deff;border-radius:50%;opacity:.6;box-shadow:0 0 6px #b3aeff;animation:cosmic-twinkle 4s var(--sd) ease-in-out infinite alternate}
.cosmic-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;position:relative}.cosmic-kicker{font-size:8px;letter-spacing:3px;color:#b5acdb;margin-bottom:12px}.cosmic-heading h1{font-size:38px;line-height:1.3;font-weight:650;letter-spacing:4px;color:#eee3ff;text-shadow:0 0 28px #ad80ff52;margin:0}.cosmic-heading h1>span{font-weight:300;color:#b8a4fb;margin-left:12px;font-size:31px}.cosmic-heading p{color:#a6a1c7;font-size:12px;letter-spacing:1px;margin-top:11px}.cosmic-edition{font-size:10px;letter-spacing:3px;text-align:right;color:#bcb6dd;line-height:2.1}.cosmic-edition b{font-size:7px;font-weight:400;color:#7f80a5;letter-spacing:2px}
.cosmic-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:28px;padding-top:21px;border-top:1px solid #b9a6ff1b}.cosmic-controls .medal-modes{background:#080c2380;border-color:#bba4ff26;border-radius:10px;gap:4px;padding:4px}.cosmic-controls .medal-modes button{color:#a8a4ca;font-size:10px;min-height:34px;padding:7px 16px}.cosmic-controls .medal-modes button.active{background:linear-gradient(130deg,#66509a,#434277);color:#f8f1ff;box-shadow:inset 0 1px #dbc5ff3b}.cosmic-edit{border:0;display:flex;align-items:center;gap:6px;background:transparent;color:#b9b0d9;font-size:11px;min-height:44px;padding:7px}.cosmic-edit .icon{width:14px;height:14px}.cosmic-preview-caption{display:flex;align-items:center;gap:7px;font-size:10px;line-height:1.6;color:#b0aad2;margin:14px 0 0}.cosmic-preview-caption .icon{width:13px;height:13px;color:#c2a7ff}
.cosmic-layout{display:grid;grid-template-columns:minmax(0,1fr) 258px;align-items:center;gap:24px}.cosmic-universe{min-width:0;position:relative}.cosmic-board{position:relative;width:100%;max-width:610px;aspect-ratio:1.14;margin:5px auto 0;isolation:isolate}.cosmic-nebula{position:absolute;inset:9% -3% 3%;border-radius:50%;background:radial-gradient(ellipse at 50% 56%,#9b55ff2a,transparent 54%),radial-gradient(ellipse at 35% 72%,#324ee34d,transparent 47%);filter:blur(13px);z-index:-1}.cosmic-orbits{position:absolute;inset:9% 3% 7%;pointer-events:none}.cosmic-orbit{position:absolute;border:1px solid #ae8dff62;border-radius:50%;inset:0;box-shadow:0 0 18px #8469ff25,inset 0 0 19px #7273ff16}.orbit-outer{inset:4% -1% 0;border-width:2px;border-top-color:#ecd3ff9e;border-bottom-color:#76b9ff90;box-shadow:0 2px 2px #bdb8ff6b,0 9px 25px #5265ff43,inset 0 -2px 4px #ab9bff75;transform:rotate(-9deg)}.orbit-mid{inset:10% 5% 6%;border-top-color:#a481ff85;border-left-color:#7670ff35;border-right-color:#cebdff5c;transform:rotate(9deg)}.orbit-inner{inset:30% 22% 25%;border-color:#9d7fff7a;box-shadow:0 0 0 5px #9e77ff09,inset 0 0 25px #8368ff28,0 0 22px #a177ff27}.orbit-cross{inset:34% -2% 25%;transform:rotate(-26deg);border-color:#a3b5ff1f;border-top-color:#c5b3ff4f}.cosmic-orbit-diamond{position:absolute;font-size:18px;color:#d6c7ff;text-shadow:0 0 13px #bf97ff;font-style:normal}.diamond-one{left:1%;top:43%}.diamond-two{right:4%;bottom:22%;color:#a9d9ff;font-size:12px}
.cosmic-core{position:absolute;left:50%;top:49%;width:32%;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;pointer-events:none;text-align:center}.cosmic-core-halo{position:absolute;inset:-10% -22%;border-radius:50%;background:radial-gradient(ellipse,#8b6afb42,transparent 67%);filter:blur(10px)}.cosmic-core img{width:74%;max-width:142px;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 0 19px #6f9bff51);animation:cosmic-float 6s ease-in-out infinite;position:relative}.cosmic-core>span:not(.cosmic-core-halo){font-size:8px;color:#e0d4fc;letter-spacing:3px;margin-top:-3px}.cosmic-core small{font-size:9px;color:#a19acb;letter-spacing:1.5px;margin-top:8px}
.cosmic-medal{position:absolute;left:var(--mx);top:var(--my);transform:translate(-50%,-50%);width:25%;max-width:138px;min-width:0;padding:0 3px;border:0;background:none;border-radius:16px;color:#dbd8ef;text-align:center;z-index:2}.cosmic-medal-glass{display:block;position:relative;width:84%;max-width:106px;aspect-ratio:1;margin:0 auto 7px;border-radius:50%;background:radial-gradient(circle at 30% 15%,#ffffff1a,transparent 35%),radial-gradient(circle at 50% 75%,#6572a52b,#22294621);border:1px solid #a8b6e43b;box-shadow:inset 0 0 12px #bdc7ff15,0 8px 17px #00031c35;transition:transform .3s,box-shadow .3s,border-color .3s}.cosmic-medal.is-lit .cosmic-medal-glass{border-color:color-mix(in srgb,var(--medal-accent) 55%,transparent);background:radial-gradient(circle at 30% 10%,#ffffff2b,transparent 35%),radial-gradient(circle at 50% 85%,color-mix(in srgb,var(--medal-accent) 18%,transparent),#20234f2b);box-shadow:inset 0 0 15px #d9baff21,0 0 15px color-mix(in srgb,var(--medal-accent) 17%,transparent),0 9px 20px #03051755}.cosmic-medal-glass:after{content:'';position:absolute;inset:3px;border-radius:50%;border-top:1px solid #fff5;border-bottom:1px solid #938bf54f;pointer-events:none}.cosmic-medal .medal-art{width:106%;max-width:none;left:-3%;top:-4%;filter:drop-shadow(0 4px 4px #05062340)}.cosmic-medal .medal-muted{opacity:.85}.cosmic-medal.is-lit .medal-muted{opacity:0}.cosmic-medal>strong{display:block;font-size:12px;font-weight:500;letter-spacing:1px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cosmic-medal-status{display:flex;justify-content:center;align-items:center;gap:4px;font-size:8px;letter-spacing:.4px;color:#9397b7;margin-top:3px}.cosmic-medal-status .icon{width:9px;height:9px}.cosmic-medal.is-lit .cosmic-medal-status{color:#ceb3f7}.cosmic-medal:hover .cosmic-medal-glass,.cosmic-medal:focus-visible .cosmic-medal-glass{transform:translateY(-4px) scale(1.04);border-color:#e5d8ff;box-shadow:0 0 22px #b496ff44,inset 0 0 12px #c8baff24}.cosmic-gallery button:focus-visible{outline:2px solid #cfc0ff;outline-offset:4px}.cosmic-stage-caption{display:flex;justify-content:center;align-items:center;gap:11px;font-size:9px;color:#9995c2;letter-spacing:1px;margin:26px 0 27px}.cosmic-stage-caption>span{width:30px;height:1px;background:linear-gradient(90deg,transparent,#a798d17a)}.cosmic-stage-caption>span:last-child{transform:rotate(180deg)}
.cosmic-journey{position:relative;border:1px solid #b8a0ef28;border-radius:18px;padding:25px 22px;background:linear-gradient(135deg,#ada0ec0b,#b89bf603);box-shadow:inset 0 1px #d9c6ff06;margin:14px 0 24px;min-width:0}.cosmic-journey-label{font-size:12px;letter-spacing:1px;color:#cbc3e7}.cosmic-count{font-family:Georgia,serif;font-size:61px;line-height:1;margin:19px 0 16px;color:#edddff;text-shadow:0 0 22px #bc81fd35;display:flex;align-items:center;gap:11px}.cosmic-count>span{font-size:19px;color:#9890bc;line-height:1.5}.cosmic-count small{display:block;font-family:'Segoe UI','Microsoft YaHei',sans-serif;font-size:9px;letter-spacing:1px}.cosmic-progress{display:flex;gap:5px}.cosmic-progress>span{flex:1;height:4px;background:#bda4eb18;border-radius:5px}.cosmic-progress>span.complete{background:linear-gradient(90deg,#8d7ce9,#ceb0ff);box-shadow:0 0 8px #af8bfa30}.cosmic-journey-copy{font-size:15px;line-height:1.9;letter-spacing:1px;color:#ddd3ef;margin:23px 0 20px}.cosmic-journey-notes{display:grid;gap:16px;padding-bottom:23px;margin-bottom:23px;border-bottom:1px solid #b8a0ef1c}.cosmic-journey-notes>div{display:flex;align-items:flex-start;gap:9px}.cosmic-journey-notes .icon{width:15px;height:15px;margin-top:2px;color:#b298e4;flex-shrink:0}.cosmic-journey-notes strong{display:block;font-weight:400;color:#bdb4d6;font-size:10px;margin-bottom:4px}.cosmic-journey-notes small{display:block;font-size:8px;line-height:1.8;color:#918baa}.cosmic-actions{display:grid;gap:10px}.cosmic-button{min-height:44px;padding:10px;border-radius:11px;border:1px solid #bda0fa50;background:#7864b31c;color:#e4d6ff;font-size:12px;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:inset 0 1px #e3d4ff13;transition:filter .2s,transform .2s}.cosmic-button .icon{width:15px;height:15px}.cosmic-button.secondary .icon:last-child{width:12px;margin-left:auto}.cosmic-button.secondary{justify-content:flex-start;padding-left:14px}.cosmic-button.primary{background:linear-gradient(115deg,#8772d9,#aa83db 48%,#638bd6);border-color:#d9c1ff77;box-shadow:inset 0 1px 1px #ffe9ff4d,0 5px 19px #8f5dd330;color:white}.cosmic-button:hover{filter:brightness(1.12);transform:translateY(-1px)}.cosmic-action-note{font-size:8px;text-align:center;color:#a59bbb;margin-top:11px;line-height:1.7}.cosmic-bottom-note{position:relative;display:flex;align-items:center;gap:7px;border-top:1px solid #b9a6ff1b;padding-top:17px;color:#9690b4;font-size:9px;line-height:1.8}.cosmic-bottom-note>.icon{width:11px;height:11px;flex-shrink:0}.cosmic-bottom-note>span{margin-left:auto;color:#837d9f;font-size:8px}
/* The reveal panel contains the only burst: a short, replayable silver-to-color sequence. */
dialog.cosmic-dialog{width:460px;max-width:calc(100vw - 28px);max-height:92dvh;background:radial-gradient(ellipse at 50% 15%,#413062,#15172e 55%);border:1px solid #ab8ed452;border-radius:24px;color:#e7def6;box-shadow:0 25px 110px #030515aa;--muted:#aaa1bd;--text-soft:#dcd0ec;--surface:#c6a5f009;--line:#ba9ae628;--gold-ink:#d7b7ff;--gold-bg:#b184e71a}
.cosmic-dialog .modal-head{border-bottom-color:#c2a8ee16;padding:19px 23px}.cosmic-dialog .modal-head h2{font-size:12px;color:#bbb0d1;font-weight:400;letter-spacing:1px}.cosmic-dialog .modal-close{color:#bcafce;background:#b998e215}.cosmic-dialog .modal-body{padding:0 26px 24px}.cosmic-dialog .medal-reveal-stage{height:268px;margin:0 -26px 10px;isolation:isolate;background:radial-gradient(ellipse at 50% 60%,#a96bff17,transparent 65%)}.cosmic-dialog .medal-reveal-stage:before{content:'';position:absolute;width:65%;height:25%;bottom:18px;border-radius:50%;border:1px solid #b391fb5e;box-shadow:0 4px 12px #8171e83b,inset 0 0 18px #8b70f51c;transform:rotate(-8deg)}.cosmic-dialog .medal-reveal-stage:after{content:'';position:absolute;width:48%;height:18%;bottom:27px;border-radius:50%;border:1px solid #8c84de56;transform:rotate(-8deg)}.cosmic-dialog .medal-reveal-stage .medal-art{width:225px;max-width:58%;z-index:2}.cosmic-dialog .medal-halo{width:240px;height:240px}.cosmic-dialog .medal-detail h3{font-family:inherit;font-size:25px;font-weight:500;letter-spacing:2px;color:#f0e3ff}.cosmic-dialog .medal-subtitle{color:#b6a7c8;font-size:11px}.cosmic-dialog .medal-dialog-state{border-color:#ac9bce33;background:#a591c112;color:#b2a5c6;font-size:9px;margin-top:13px}.cosmic-dialog .medal-dialog-state.is-lit{color:#dcbaff;border-color:#c092ed50;background:#b788de1c}.cosmic-dialog .medal-rule{margin-top:12px;border-radius:12px;background:#0e102640}.cosmic-dialog .medal-rule strong{display:flex;justify-content:space-between;gap:10px;color:#d2c4df}.cosmic-dialog .medal-rule strong>span{color:#b79dcb;font-size:9px}.cosmic-dialog .medal-rule p{color:#a99db9}.cosmic-dialog .medal-dialog-actions .btn{border-color:#a993c642;background:#bba2dd0c;color:#cebfdf}.cosmic-dialog .medal-dialog-actions .primary{background:linear-gradient(115deg,#8a6ad2,#ac7fd5,#6c87cd);color:#fff;border-color:#d6adff67}.cosmic-dialog .medal-preview-note{font-size:8px;color:#9587aa;margin-top:16px}.cosmic-reveal-beam{position:absolute;inset:0;background:conic-gradient(from 168deg at 50% 84%,transparent 0deg,#9f8bff00 150deg,#d9b4ff2b 180deg,#9f8bff00 210deg,transparent 360deg);opacity:0;transform-origin:50% 84%;pointer-events:none}.cosmic-reveal-ripple{position:absolute;width:180px;height:180px;border:1px solid #d8b4ff;border-radius:50%;opacity:0;pointer-events:none}.revealing .cosmic-reveal-beam{animation:cosmic-beam 1.4s ease-out both}.revealing .cosmic-reveal-ripple{animation:cosmic-ripple 1.2s .25s ease-out both}.cosmic-dialog .revealing .medal-art{animation:cosmic-awaken 1.4s cubic-bezier(.2,.7,.2,1) both}.cosmic-dialog .revealing .medal-star{animation:cosmic-spark 1.4s var(--star-delay) both}
.cosmic-growth-intro{display:flex;align-items:center;gap:20px;padding:3px 0 23px}.cosmic-growth-intro>span{font-size:40px;color:var(--gold-ink);font-family:Georgia,serif;white-space:nowrap}.cosmic-growth-intro>span small{font-size:17px;color:var(--muted)}.cosmic-growth-intro strong{font-size:13px;font-weight:500}.cosmic-growth-intro p{font-size:10px;color:var(--muted);margin-top:6px;line-height:1.7}.cosmic-growth-list{display:grid;gap:10px}.cosmic-growth-row{display:grid;grid-template-columns:57px minmax(0,1fr) 14px;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface);color:var(--text-soft)}.cosmic-growth-row .medal-art{width:57px}.cosmic-growth-row>span>strong{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:12px;font-weight:500}.cosmic-growth-row strong small{font-size:8px;font-weight:400;color:var(--muted);white-space:nowrap}.cosmic-growth-row.is-lit strong small{color:var(--gold-ink)}.cosmic-growth-row>span>span{display:block;font-size:10px;color:var(--muted);line-height:1.7;margin-top:5px}.cosmic-growth-row>.icon{width:14px;height:14px;color:var(--muted)}
@keyframes cosmic-twinkle{from{opacity:.3}to{opacity:.85}}@keyframes cosmic-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes cosmic-beam{0%{opacity:0;transform:scaleX(.2)}35%{opacity:1}100%{opacity:0;transform:scaleX(1.3)}}@keyframes cosmic-ripple{0%{opacity:.7;transform:scale(.4)}100%{opacity:0;transform:scale(2)}}@keyframes cosmic-awaken{0%{transform:scale(.8) translateY(10px);filter:brightness(.7)}28%{transform:scale(.94) translateY(3px);filter:brightness(1.5)}52%{transform:scale(1.08) translateY(-6px);filter:brightness(1.1)}100%{transform:scale(1) translateY(0);filter:brightness(1)}}@keyframes cosmic-spark{0%{opacity:0;transform:translateY(25px) scale(.2)}45%{opacity:1;transform:translateY(-8px) scale(1.3)}100%{opacity:.65;transform:translateY(0) scale(1)}}
@media(min-width:1101px) and (max-width:1280px){.cosmic-gallery{padding:28px 25px 19px}.cosmic-layout{grid-template-columns:minmax(0,1fr) 220px;gap:14px}.cosmic-journey{padding:22px 18px}.cosmic-board{aspect-ratio:1}.cosmic-journey-copy{font-size:13px}}
@media(max-width:1100px){.cosmic-layout{grid-template-columns:minmax(0,1fr)}.cosmic-board{max-width:590px}.cosmic-journey{display:grid;grid-template-columns:1fr 1fr;column-gap:30px;padding:22px;margin-top:5px}.cosmic-journey-label{grid-column:1}.cosmic-count{grid-column:1;margin:14px 0;font-size:49px}.cosmic-progress{grid-column:1}.cosmic-journey-copy,.cosmic-journey-notes{display:none}.cosmic-actions{grid-column:2;grid-row:1 / 4;align-content:center}.cosmic-action-note{grid-column:2;margin-top:8px}.cosmic-bottom-note>span{display:none}}
@media(max-width:680px){body[data-page='passport'] .content{padding:14px 12px 100px}.cosmic-gallery{border-radius:20px;padding:25px 15px 17px}.cosmic-heading{justify-content:center;text-align:center}.cosmic-heading h1{font-size:31px;letter-spacing:3px}.cosmic-heading h1>span{font-size:26px;margin-left:7px}.cosmic-kicker{font-size:6px;letter-spacing:2.2px;margin-bottom:10px}.cosmic-heading p{font-size:10px;letter-spacing:.5px;margin-top:8px}.cosmic-edition{display:none}.cosmic-controls{margin-top:23px;padding-top:16px;gap:5px}.cosmic-controls .medal-modes{gap:0;padding:3px;border-radius:8px}.cosmic-controls .medal-modes button{font-size:9px;padding:5px 8px;min-height:34px}.cosmic-edit{font-size:9px;gap:4px;padding:3px;min-height:40px}.cosmic-edit .icon{width:12px;height:12px}.cosmic-preview-caption{font-size:8px;margin-top:11px;gap:5px;justify-content:center}.cosmic-preview-caption .icon{width:11px;height:11px}.cosmic-layout{gap:0}.cosmic-board{aspect-ratio:.83;margin-top:12px}.cosmic-orbits{inset:10% 0 8%}.cosmic-medal{width:28%;max-width:110px}.cosmic-medal-glass{width:86%;margin-bottom:6px}.cosmic-medal>strong{font-size:11px;letter-spacing:.4px}.cosmic-medal-status{font-size:8px;margin-top:2px}.cosmic-core{width:36%;top:49%}.cosmic-core img{width:85%}.cosmic-core>span:not(.cosmic-core-halo){font-size:6px;letter-spacing:2px;margin-top:0}.cosmic-core small{font-size:8px;letter-spacing:1px;margin-top:8px}.orbit-inner{inset:32% 22% 29%}.cosmic-stage-caption{margin:21px 0 22px;font-size:8px;letter-spacing:.3px;gap:7px}.cosmic-stage-caption>span{width:24px}.cosmic-journey{border-radius:13px;grid-template-columns:1fr;padding:17px 16px;margin:0 0 17px;gap:0}.cosmic-journey-label{font-size:10px}.cosmic-count{font-size:33px;margin:0;grid-column:2;grid-row:1 / 3;justify-self:end;gap:7px;align-items:center}.cosmic-count>span{font-size:13px}.cosmic-count small{font-size:7px}.cosmic-progress{grid-column:1;margin-top:10px;width:115px;gap:4px}.cosmic-progress>span{height:3px}.cosmic-actions{grid-column:1 / 3;grid-row:3;grid-template-columns:1fr 1.2fr;gap:9px;margin-top:19px}.cosmic-button{font-size:10px;border-radius:9px;min-height:44px;padding:8px;gap:5px}.cosmic-button .icon{width:13px;height:13px}.cosmic-button.secondary{padding-left:10px;justify-content:center}.cosmic-button.secondary .icon:last-child{display:none}.cosmic-action-note{grid-column:1 / 3;font-size:8px;margin-top:11px}.cosmic-bottom-note{font-size:8px;padding-top:14px;gap:5px}.cosmic-bottom-note .icon{width:10px;height:10px}.cosmic-dialog .modal-body{padding:0 20px 21px}.cosmic-dialog .modal-head{padding:16px 18px}.cosmic-dialog .medal-reveal-stage{height:235px;margin:0 -20px 8px}.cosmic-dialog .medal-reveal-stage .medal-art{width:195px;max-width:60%}.cosmic-dialog .medal-detail h3{font-size:23px}.cosmic-dialog .medal-dialog-actions{gap:8px}.cosmic-dialog .medal-dialog-actions .btn{font-size:10px;min-height:44px}.cosmic-growth-intro{gap:13px}.cosmic-growth-intro strong{font-size:12px}.cosmic-growth-row{grid-template-columns:45px minmax(0,1fr) 12px;gap:9px;padding:9px}.cosmic-growth-row .medal-art{width:45px}.cosmic-growth-row>span>strong{font-size:11px}.cosmic-growth-row>span>span{font-size:9px}}
@media(max-width:370px){.cosmic-gallery{padding-left:11px;padding-right:11px}.cosmic-controls .medal-modes button{padding:5px 6px}.cosmic-edit{font-size:8px}.cosmic-medal>strong{font-size:10px}.cosmic-heading h1{font-size:29px}.cosmic-bottom-note{font-size:7px}}
@media(prefers-reduced-motion:reduce){.cosmic-stars i,.cosmic-core img,.cosmic-dialog .revealing *{animation:none!important}.cosmic-medal-glass,.cosmic-button{transition:none!important}}
[data-motion='reduced'] .cosmic-stars i,[data-motion='reduced'] .cosmic-core img,[data-motion='reduced'] .cosmic-dialog .revealing *{animation:none!important}[data-motion='reduced'] .cosmic-medal-glass,[data-motion='reduced'] .cosmic-button{transition:none!important}

.cosmic-journey-label{min-width:0;overflow-wrap:anywhere}

/* STARFALL — reusable member-activity motion preset. UI actions never wait for it. */
.activity-button:not(.cosmic-medal){position:relative}.activity-button{isolation:isolate;transition:background .5s,border-color .5s,box-shadow .65s,color .4s,filter .4s!important}.activity-button .button-gleam{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none;z-index:4;opacity:.85}.button-gleam:before{content:'';position:absolute;inset:-70% -100%;background:linear-gradient(115deg,transparent 38%,#e9cfff00 42%,#f4e5ff90 49%,#b5dcff66 52%,transparent 60%);transform:translateX(-60%);opacity:0}.activity-button:hover>.button-gleam:before,.activity-button:focus-visible>.button-gleam:before{animation:activity-gleam 1.7s cubic-bezier(.18,.6,.25,1) both}.activity-button:active{filter:brightness(1.13)}
.activity-button.btn.primary,.activity-button.cosmic-button.primary,.activity-button.royal-card-button{box-shadow:inset 0 1px #fff3,0 5px 20px #aa76e322}.activity-button.btn.primary:hover,.activity-button.cosmic-button.primary:hover,.activity-button.royal-card-button:hover{box-shadow:inset 0 1px #fff6,0 0 0 1px #cfadff5c,0 7px 29px #a479e65c}.cosmic-medal.activity-button>.button-gleam,.royal-mini-medal.activity-button>.button-gleam{inset:0 6% 26%;border-radius:50%;mask-image:radial-gradient(ellipse,#000 35%,transparent 70%)}.royal-perk.activity-button>.button-gleam{opacity:.55}.nav .activity-button>.button-gleam,.bottom-nav .activity-button>.button-gleam{opacity:.28}
.cosmic-medal-glass,.royal-mini-medal .medal-art{transition:transform .8s cubic-bezier(.2,.7,.2,1),box-shadow 1s,border-color .7s!important}.cosmic-medal:hover .cosmic-medal-glass{transform:translateY(-6px) scale(1.07)}.royal-card-button .icon,.cosmic-button .icon,.btn.primary .icon{transition:transform .65s cubic-bezier(.2,.7,.2,1)}.activity-button:hover>.icon:last-child{transform:translateX(3px)}
.activity-fx-layer{pointer-events:none!important;overflow:hidden;z-index:90;contain:layout paint style}.activity-fx-layer.viewport-fx{position:fixed;inset:0;z-index:1000}.activity-fx-layer.dialog-fx{position:absolute;left:0;top:0;width:100%}.activity-burst{position:absolute;width:0;height:0;pointer-events:none}.activity-wave{position:absolute;width:40px;height:40px;left:-20px;top:-20px;border-radius:50%;border:1px solid #e6cbff;box-shadow:0 0 12px #ca8bff65,inset 0 0 15px #b2abff2b;animation:activity-wave 1.55s ease-out both}.activity-wave.wave-echo{animation-delay:.14s;border-color:#b3d8ff66;width:30px;height:30px;left:-15px;top:-15px}.activity-spark{position:absolute;left:0;top:0;width:4px;height:4px;border-radius:50%;background:var(--spark-color);color:var(--spark-color);box-shadow:0 0 9px var(--spark-color);font-size:12px;line-height:0;animation:activity-spark 1.65s var(--delay) cubic-bezier(.12,.6,.2,1) both}.activity-spark:nth-child(3n){background:transparent;box-shadow:none}
.spectacle-scene{position:absolute;inset:-8%;pointer-events:none;z-index:1;isolation:isolate}.spectacle-bloom{position:absolute;inset:3%;border-radius:50%;background:radial-gradient(ellipse,#ddafff68,#a475fc28 36%,transparent 68%);filter:blur(8px);animation:spectacle-bloom 4s ease-out both}.spectacle-rays{position:absolute;inset:-9%;background:repeating-conic-gradient(from 15deg,#c5a4ff00 0deg 10deg,#d2acff2b 11deg 17deg,#b8d4ff00 21deg 34deg);mask-image:radial-gradient(ellipse,#000 5%,transparent 66%);animation:spectacle-rays 4.1s cubic-bezier(.15,.6,.2,1) both}.spectacle-orbit{position:absolute;inset:22%;border:1px solid #d2abffac;box-shadow:0 0 13px #d1a7ff62,inset 0 0 8px #cba2ff24;border-radius:50%;animation:spectacle-orbit 3.5s .2s ease-out both}.spectacle-orbit.orbit-echo{inset:29%;border-color:#b8d9ffa1;animation-delay:.75s}.spectacle-mote{position:absolute;left:var(--mx);top:var(--my);font-size:19px;font-style:normal;color:#eacfff;text-shadow:0 0 13px #cb9aff;line-height:1;animation:spectacle-mote 3.5s var(--md) cubic-bezier(.2,.6,.2,1) both}.spectacle-mote:nth-child(3n){font-size:27px;color:#b8d8ff}.spectacle-mote:nth-child(4n){font-size:13px;color:#ffdaf0}.premium-confetti{z-index:8!important;pointer-events:none!important}.modal-head{position:relative;z-index:12}.royal-dialog .modal-head{z-index:12}.spectacle-reward{inset:-10% 3%}.spectacle-medal{inset:-16% 1%}.spectacle-medal .spectacle-mote{font-size:17px}.spectacle-benefit .spectacle-bloom{opacity:.65}
/* Longer sequences: entrance, anticipation, a soft peak, then a lingering glow. */
.activity-button:disabled>.button-gleam{display:none}.celebration .envelope{background:linear-gradient(135deg,#8a61b8,#694b96);border-color:#d5b4f485;box-shadow:0 16px 40px #6a3fa13d,inset 0 1px #efd8ff3d}.celebration .envelope:after{background:linear-gradient(33deg,#b293d3 49.5%,transparent 50%) left/50% 100%,linear-gradient(-33deg,#9573bd 49.5%,transparent 50%) right/50% 100%;background-repeat:no-repeat}.celebration .envelope-flap{background:linear-gradient(160deg,#ead6ff,#b793d8)}.celebration .envelope-card{background:linear-gradient(145deg,#fff5ff,#e8dafa);border-color:#f9ecff;color:#79519b;box-shadow:0 0 22px #d3a9ff25}.celebration .seal{background:linear-gradient(135deg,#e6c4ff,#aa76d7);border-color:#e8c9fc;color:#63318a;box-shadow:0 3px 10px #5d2b8745}.celebration .delivery-orbit{border-color:#b894e34d;box-shadow:0 0 0 23px #c399f209,0 0 0 48px #bca1ff06}.celebration h2{font-family:'Segoe UI','Microsoft YaHei',sans-serif;font-size:22px;font-weight:500;line-height:1.7;letter-spacing:.5px}
.royal-dialog-art img{animation:premium-art-arrive 2.7s cubic-bezier(.16,.65,.2,1) both!important}.royal-celebrate .royal-burst{animation:royal-rays 3.8s ease-out both}.royal-celebrate .royal-dialog-spark{animation:premium-star 3.4s .35s both}.royal-dialog:not(:has(.royal-celebrate)) .royal-dialog-spark{animation:premium-star 2.8s .4s both}.royal-artwork img{animation-duration:1.9s}.royal-artwork .royal-star{animation-duration:1.8s}.royal-dialog-content{box-shadow:0 20px 45px #0c041a33,0 0 44px #bb8ce624}.royal-dialog-perks>div>span{box-shadow:inset 0 1px 3px #fff,0 4px 13px #b186d51c}
.cosmic-dialog .medal-detail .medal-art .medal-color,.cosmic-dialog .medal-detail .medal-art .medal-muted{transition:opacity 1.25s .15s ease-in-out}.cosmic-dialog .medal-reveal-stage.revealing .medal-art{animation:premium-medal-awaken 3.15s cubic-bezier(.18,.65,.2,1) both}.cosmic-dialog .revealing .medal-art:after{animation:medal-shine 1.65s .8s ease-in-out}.cosmic-dialog .revealing .medal-halo{animation:premium-medal-glow 3.4s ease-out both}.cosmic-dialog .revealing .medal-ring{animation:medal-ring 2.5s .6s ease-out both}.cosmic-dialog .revealing .medal-star{animation:premium-star 3s var(--star-delay) both}.cosmic-dialog .revealing .cosmic-reveal-beam{animation:cosmic-beam 3.1s ease-out both}.cosmic-dialog .revealing .cosmic-reveal-ripple{animation:cosmic-ripple 2.9s .5s ease-out both}.cosmic-dialog .medal-reveal-stage:not(.revealing) .medal-art{animation:premium-medal-enter 1.25s cubic-bezier(.2,.7,.2,1) both}
.primary.activity-button>.button-gleam:before,.royal-card-button>.button-gleam:before{animation:activity-idle 6.8s 1s ease-in-out infinite}.activity-button:hover>.button-gleam:before,.activity-button:focus-visible>.button-gleam:before{animation:activity-gleam 1.7s cubic-bezier(.18,.6,.25,1) both}
@keyframes activity-idle{0%,63%{transform:translateX(-60%);opacity:0}72%{opacity:.25}88%,100%{transform:translateX(60%);opacity:0}}
@keyframes activity-gleam{0%{transform:translateX(-60%);opacity:0}18%{opacity:.2}48%{opacity:.7}100%{transform:translateX(60%);opacity:0}}
@keyframes activity-wave{0%{transform:scale(.35);opacity:0}15%{opacity:.8}100%{transform:scale(3.7);opacity:0}}
@keyframes activity-spark{0%{transform:translate(0,0) scale(.3);opacity:0}12%{opacity:.95}65%{opacity:.55}100%{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
@keyframes spectacle-bloom{0%{transform:scale(.4);opacity:0}35%{transform:scale(1.02);opacity:.9}65%{transform:scale(1.12);opacity:.55}100%{transform:scale(1.3);opacity:0}}
@keyframes spectacle-rays{0%{transform:rotate(-25deg) scale(.65);opacity:0}35%{opacity:.9}75%{opacity:.55}100%{transform:rotate(35deg) scale(1.16);opacity:0}}
@keyframes spectacle-orbit{0%{transform:scale(.5) rotateX(30deg);opacity:0}20%{opacity:.8}100%{transform:scale(2.1) rotateX(55deg);opacity:0}}
@keyframes spectacle-mote{0%{transform:translateY(var(--travel)) scale(.2) rotate(-30deg);opacity:0}28%{opacity:.95}65%{opacity:.7}100%{transform:translateY(calc(var(--travel) * -1)) scale(.5) rotate(20deg);opacity:0}}
@keyframes premium-art-arrive{0%{opacity:0;transform:translateY(32px) scale(.68) rotate(-10deg)}35%{opacity:1;transform:translateY(-6px) scale(1.05) rotate(2deg)}65%{transform:translateY(2px) scale(.99) rotate(-1deg)}100%{opacity:1;transform:translateY(0) scale(1) rotate(0)}}
@keyframes premium-medal-awaken{0%{transform:scale(.86) translateY(10px);filter:brightness(.8)}25%{transform:scale(.95);filter:brightness(1.2)}48%{transform:scale(1.08) translateY(-5px);filter:brightness(1.18)}75%{transform:scale(1.01) translateY(-2px);filter:brightness(1.05)}100%{transform:scale(1);filter:brightness(1)}}
@keyframes premium-medal-glow{0%{opacity:0;transform:scale(.55)}42%{opacity:.45;transform:scale(1.18)}72%{opacity:.3}100%{opacity:.2;transform:scale(1)}}
@keyframes premium-medal-enter{from{opacity:.4;transform:translateY(10px) scale(.91)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes premium-star{0%{opacity:0;transform:scale(.2) translateY(18px)}30%{opacity:1;transform:scale(1.25) translateY(-4px)}65%{opacity:.8}100%{opacity:.65;transform:scale(1) translateY(0)}}
@media(max-width:680px){.spectacle-rays{inset:0}.spectacle-scene{inset:-4%}.spectacle-medal{inset:-8% 0}.spectacle-mote{font-size:16px}.activity-wave{box-shadow:0 0 8px #ca8bff55}.premium-confetti{opacity:.85}}
@media(prefers-reduced-motion:reduce){.activity-fx-layer,.spectacle-scene,.button-gleam,.premium-confetti{display:none!important}.royal-dialog-art img,.royal-celebrate .royal-burst,.royal-dialog .royal-dialog-spark,.cosmic-dialog .medal-reveal-stage .medal-art,.cosmic-dialog .revealing *{animation:none!important}.activity-button,.cosmic-medal-glass,.royal-mini-medal .medal-art,.cosmic-dialog .medal-art img{transition:none!important}}
[data-motion='reduced'] .activity-fx-layer,[data-motion='reduced'] .spectacle-scene,[data-motion='reduced'] .button-gleam,[data-motion='reduced'] .premium-confetti{display:none!important}[data-motion='reduced'] .royal-dialog-art img,[data-motion='reduced'] .royal-celebrate .royal-burst,[data-motion='reduced'] .royal-dialog .royal-dialog-spark,[data-motion='reduced'] .cosmic-dialog .medal-reveal-stage .medal-art,[data-motion='reduced'] .cosmic-dialog .revealing *{animation:none!important}[data-motion='reduced'] .activity-button,[data-motion='reduced'] .cosmic-medal-glass,[data-motion='reduced'] .royal-mini-medal .medal-art,[data-motion='reduced'] .cosmic-dialog .medal-art img{transition:none!important}

/* Shengfeng community: quiet reading surfaces inside the purple member world. */
.plaza-page{--plaza-accent:#b59aff;--plaza-line:#a68fc422;--plaza-card:linear-gradient(145deg,#201b30,#191724);--plaza-soft:#a59bb8;--plaza-text:#eee9f6}
.plaza-hero{position:relative;isolation:isolate;overflow:hidden;border:1px solid #b394ec38;border-radius:24px;background:radial-gradient(ellipse at 82% 65%,#7843b65e,transparent 55%),linear-gradient(115deg,#221b3b,#30204e 60%,#201a37);padding:33px 36px;min-height:236px;margin-bottom:25px;color:#f7f0ff}
.plaza-hero:after{content:'';position:absolute;width:440px;height:440px;right:-100px;top:-120px;border:1px solid #c8adff16;border-radius:50%;z-index:-1;box-shadow:0 0 0 45px #c8adff06,0 0 0 100px #c8adff04}
.plaza-hero-copy{position:relative;z-index:2;max-width:70%}.plaza-eyebrow,.plaza-side-kicker{font-size:9px;letter-spacing:2.7px;color:#c1a6ec}.plaza-hero h1{font-size:34px;letter-spacing:3px;font-weight:600;margin:15px 0 10px}.plaza-hero h1>span{display:block;font-size:18px;font-weight:400;letter-spacing:1px;margin-top:9px;color:#d8c8ed}.plaza-hero p{color:#bba9d3;font-size:12px;line-height:1.9;margin:0}.plaza-hero-tags{display:flex;gap:21px;margin-top:22px;font-size:10px;color:#d1bee8}.plaza-hero-tags>span{display:flex;align-items:center;gap:6px}.plaza-hero-tags .icon{width:14px;height:14px}
.plaza-hero-art{position:absolute;right:4%;top:18px;width:260px;height:210px;pointer-events:none}.plaza-orbit{position:absolute;inset:12px 0;border:1px solid #d1a8fb33;border-radius:50%;transform:rotate(-30deg) scaleY(.65)}.orbit-two{inset:0 35px;transform:rotate(40deg) scaleY(.85);border-color:#d1a8fb1a}.plaza-float-card{position:absolute;left:38px;top:35px;width:137px;height:117px;border-radius:25px;transform:rotate(-12deg);background:linear-gradient(140deg,#e9c9ff,#b17dea 45%,#593e99);border:1px solid #f1d8ffcc;box-shadow:inset 3px 3px 14px #ffffff70,inset -5px -6px 12px #50307770,0 17px 35px #17052d80;padding:20px;color:#f6ddff}.plaza-float-card>.icon{width:41px;height:41px;filter:drop-shadow(0 3px 3px #5a2d9b)}.plaza-float-card i{display:block;width:66px;height:5px;border-radius:5px;background:#efdcff90;margin:8px 0}.plaza-float-card i:last-child{width:44px}.plaza-float-heart{position:absolute;right:28px;bottom:20px;width:72px;height:68px;display:grid;place-items:center;border-radius:22px;background:linear-gradient(140deg,#ecccf9,#a176c3);border:1px solid #f4e0ff9e;transform:rotate(12deg);box-shadow:inset 3px 4px 9px #fff6,0 12px 25px #17052d66;color:#fff1fc}.plaza-float-heart>.icon{width:37px;height:37px;fill:#f9d1ef55}.plaza-spark{position:absolute;color:#ead5ff;text-shadow:0 0 20px #d08eff}.spark-one{top:20px;right:36px;font-size:30px}.spark-two{bottom:20px;left:20px;font-size:20px}
.plaza-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}.plaza-feed-column{min-width:0}.plaza-compose-strip,.plaza-post,.plaza-me,.plaza-guide,.plaza-empty{background:var(--plaza-card,var(--card));border:1px solid var(--plaza-line,var(--line));border-radius:19px}.plaza-compose-strip{padding:18px;display:flex;align-items:center;gap:12px}.plaza-avatar{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:14px;font-size:16px;color:#f3e9ff;background:linear-gradient(140deg,#8f67ba,#4e3c70);box-shadow:inset 0 1px 1px #ffffff30}.avatar-1{background:linear-gradient(145deg,#689594,#385956);color:#e3f3e9}.avatar-2{background:linear-gradient(145deg,#c28f9b,#7a526b);color:#ffe3ed}.plaza-compose-prompt{border:0;background:none;text-align:left;color:var(--plaza-text);flex:1;font-size:13px;min-width:0;padding:0}.plaza-compose-prompt small{display:block;font-size:10px;color:var(--plaza-soft);margin-top:7px}.plaza-compose-strip .btn{flex-shrink:0;font-size:11px;min-height:40px;padding:10px 14px}.plaza-toolbar{display:flex;align-items:center;justify-content:space-between;margin:28px 0 15px;border-bottom:1px solid var(--plaza-line)}.plaza-tabs{display:flex;gap:28px}.plaza-tabs button{position:relative;background:none;border:0;color:var(--plaza-soft);font-size:15px;padding:0 0 15px}.plaza-tabs button.active{color:var(--plaza-text);font-weight:600}.plaza-tabs button.active:after{content:'';position:absolute;left:0;bottom:-1px;width:25px;height:3px;border-radius:3px;background:#b799f4}.plaza-tabs b{font-size:9px;border-radius:5px;background:#a482d42e;color:#ccabff;padding:2px 5px;margin-left:6px}.plaza-sort{color:var(--plaza-soft);font-size:10px;padding-bottom:15px}.plaza-topic-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.plaza-topic-tabs button{background:transparent;color:var(--plaza-soft);border:1px solid transparent;border-radius:25px;font-size:10px;padding:7px 12px}.plaza-topic-tabs button.active{background:#a281d922;color:var(--plaza-accent);border-color:#a281d930}.plaza-feed{display:grid;gap:18px}
.plaza-post{padding:23px;min-width:0}.plaza-author{display:flex;align-items:center;gap:11px;min-width:0}.plaza-author>div{flex:1;min-width:0}.plaza-author strong{display:block;color:var(--ink);font-size:13px;font-weight:500}.plaza-author strong small{color:#b699df;font-size:9px;margin-left:8px}.plaza-author>div>span{display:block;font-size:9px;color:var(--muted);margin-top:5px}.plaza-topic{font-size:9px;color:#c0a2e6;border:1px solid #a990c122;border-radius:6px;padding:4px 7px;white-space:nowrap}.plaza-post-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.95;margin:19px 0;color:var(--text-soft)}.plaza-images{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0}.plaza-images.count-1{grid-template-columns:1fr}.plaza-images.count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.plaza-photo{padding:0;border:1px solid #ffffff09;border-radius:12px;background:#241d35;overflow:hidden;aspect-ratio:1}.count-1 .plaza-photo{aspect-ratio:1.95;max-height:320px}.plaza-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s ease}.plaza-photo:hover img{transform:scale(1.025)}.plaza-post-bottom{display:flex;align-items:center;gap:22px;padding-top:16px;border-top:1px solid var(--plaza-line,var(--line));margin-top:20px;min-height:35px}.plaza-social{display:flex;align-items:center;gap:7px;padding:2px 0;background:none;border:0;color:var(--muted);font-size:11px;min-height:27px}.plaza-social .icon{width:18px;height:18px}.plaza-social.is-liked{color:#dd9acb}.plaza-social.is-liked .icon{fill:#cf6eb833}.plaza-free{font-size:9px;color:var(--muted);margin-left:auto}.plaza-post-bottom>.text-btn{font-size:10px}.plaza-status{display:flex;gap:8px;color:#d7b881;background:#b4955e10;border-radius:9px;padding:10px 12px;font-size:11px;margin-top:15px}.plaza-status .icon{width:16px;height:16px}.plaza-status small{display:block;margin-top:5px;overflow-wrap:anywhere}.status-rejected,.status-hidden{color:#e6a3af;background:#d8919d0f}.plaza-side{display:grid;gap:18px}.plaza-me,.plaza-guide{padding:23px}.plaza-side-kicker{font-size:8px;letter-spacing:2px;color:var(--plaza-soft)}.plaza-me-person{display:flex;align-items:center;gap:12px;margin:22px 0}.plaza-me h2{font-size:16px;font-weight:500;margin:0 0 5px}.plaza-me-person p{font-size:10px;color:var(--plaza-soft);margin:0}.plaza-balance{padding:17px;border:1px solid #b29bc22a;border-radius:12px;background:linear-gradient(120deg,#b58ad417,#a58ad407)}.plaza-balance>span{display:block;color:var(--plaza-soft);font-size:10px}.plaza-balance strong{display:block;font-size:32px;color:var(--plaza-text);margin-top:7px;font-weight:500}.plaza-balance small{font-size:9px;color:var(--plaza-soft);margin-left:9px;letter-spacing:1px}.plaza-mini-stats{display:flex;justify-content:space-between;margin:22px 0;text-align:center}.plaza-mini-stats b{display:block;font-size:18px;font-weight:400;margin-bottom:7px;color:var(--plaza-text)}.plaza-mini-stats span{font-size:9px;color:var(--plaza-soft)}.plaza-me>.btn{font-size:11px}.plaza-guide h2{font-size:15px;font-weight:500;margin:16px 0 22px}.plaza-guide ol{list-style:none;display:grid;gap:24px;padding:0;margin:0 0 24px}.plaza-guide li{display:flex;gap:12px}.plaza-guide li>b{font:italic 18px Georgia,serif;color:#ac8ccf}.plaza-guide li>span{font-size:10px;line-height:1.85;color:var(--plaza-soft)}.plaza-guide li strong{display:block;font-size:11px;font-weight:500;color:var(--plaza-text);margin-bottom:4px}.plaza-guide .text-btn{font-size:11px}.plaza-local-note{font-size:10px;line-height:1.85;color:var(--plaza-soft);text-align:center;padding:0 12px}.plaza-empty{padding:45px 20px;text-align:center}.plaza-empty>.icon{width:36px;height:36px;color:#b69ad7;margin-bottom:14px}.plaza-empty h3{font-size:15px}.plaza-empty p{font-size:12px;color:var(--muted);margin:10px 0 20px}
.plaza-admin-feed{max-width:800px;display:grid;gap:18px}.plaza-dialog{max-width:650px;width:calc(100% - 28px)}.plaza-compose-intro{display:flex;align-items:center;gap:10px;margin-bottom:24px}.plaza-compose-intro>div{flex:1}.plaza-compose-intro strong{font-size:13px;font-weight:500}.plaza-compose-intro span:not(.plaza-avatar){display:block;font-size:10px;color:var(--muted);margin-top:5px}.plaza-compose-intro>b{font-size:11px;font-weight:500;color:#c1a0eb}.plaza-dialog #plaza-text{min-height:155px;line-height:1.8}.plaza-dialog #plaza-count{float:right;color:var(--muted);font-size:10px}.plaza-upload-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:15px}.plaza-upload-row>label{display:flex;align-items:center;gap:7px;cursor:pointer;font-size:11px}.plaza-upload-row>input{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.plaza-upload-row:focus-within>label{outline:2px solid #b39beb;outline-offset:3px}.plaza-upload-row>span{font-size:9px;color:var(--muted)}.plaza-upload-preview{display:flex;gap:10px;margin-top:12px}.plaza-upload-preview>div{position:relative;width:calc((100% - 20px)/3);aspect-ratio:1;max-width:140px}.plaza-upload-preview img{width:100%;height:100%;object-fit:cover;border-radius:10px}.plaza-upload-preview button{position:absolute;right:5px;top:5px;border:0;width:27px;height:27px;border-radius:50%;background:#1b1428da;color:#fff;display:grid;place-items:center}.plaza-upload-preview button .icon{width:14px;height:14px}.plaza-charge-note{font-size:11px;line-height:1.8;padding:13px 15px;margin-top:20px;border:1px solid #b59ad826;border-radius:10px;background:#aa83da0e;color:var(--text-soft)}.plaza-compose-tip{font-size:10px;line-height:1.8;color:var(--muted);margin-top:10px}.plaza-full-image{display:block;max-height:70vh;object-fit:contain;width:100%;background:#211b30;border-radius:12px}.plaza-comment-heading{display:flex;align-items:center;justify-content:space-between;margin:25px 0 15px;padding-top:20px;border-top:1px solid var(--line)}.plaza-comment-heading h3{font-size:13px;font-weight:500}.plaza-comment-heading h3 span{margin-left:7px;color:var(--muted)}.plaza-comment-heading>span{font-size:10px;color:var(--muted)}.plaza-comments{max-height:280px;overflow:auto;margin-bottom:20px}.plaza-comment{display:flex;gap:10px;margin:16px 0;align-items:flex-start}.plaza-comment>.plaza-avatar{width:30px;height:30px;flex-basis:30px;border-radius:10px;font-size:12px}.plaza-comment>div{flex:1;min-width:0}.plaza-comment strong{font-size:11px;font-weight:500}.plaza-comment p{font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0;color:var(--text-soft)}.plaza-comment small{font-size:9px;color:var(--muted)}.plaza-comment-empty{font-size:11px;color:var(--muted);padding:10px 0 20px}.plaza-comment .text-btn{font-size:10px}.plaza-home-entry{display:flex;gap:16px;align-items:center;border:1px solid #ad8ada33;border-radius:17px;padding:20px 24px;background:linear-gradient(110deg,#39244d5c,#56387518);margin:22px 0}.plaza-home-entry>span{width:44px;height:44px;border-radius:14px;background:#9f70cf29;color:#b99adf;display:grid;place-items:center}.plaza-home-entry>div{flex:1}.plaza-home-entry h2{font-size:16px;font-weight:500;margin-bottom:6px}.plaza-home-entry p{font-size:11px;color:var(--muted);margin:0}.plaza-home-entry>.btn{font-size:11px}
:root[data-theme='day'] .plaza-page{--plaza-card:#fff;--plaza-line:#79618e25;--plaza-accent:#77539b;--plaza-soft:#82778e;--plaza-text:#382947}:root[data-theme='day'] .plaza-topic{color:#79509d}:root[data-theme='day'] .plaza-tabs b{color:#77539b}:root[data-theme='day'] .plaza-home-entry{background:linear-gradient(110deg,#e9ddf0,#f6f0f9)}
@keyframes plaza-float{0%,100%{translate:0 0}50%{translate:0 -8px}}:root:not([data-motion='reduced']) .plaza-float-card{animation:plaza-float 6s ease-in-out infinite}:root:not([data-motion='reduced']) .plaza-float-heart{animation:plaza-float 6s 1.5s ease-in-out infinite}
@media(max-width:1150px){.plaza-layout{grid-template-columns:minmax(0,1fr) 245px;gap:18px}.plaza-me,.plaza-guide{padding:19px}.plaza-hero-art{right:0;opacity:.8}.plaza-post{padding:20px}.plaza-hero{padding:30px}}
@media(max-width:970px){.plaza-layout{grid-template-columns:1fr}.plaza-side{grid-template-columns:1fr 1fr}.plaza-local-note{grid-column:1/-1}.plaza-hero-copy{max-width:73%}.plaza-hero-art{right:-25px;transform:scale(.85)}.plaza-hero p{max-width:300px}}
@media(max-width:680px){body[data-mode='member'] .bottom-nav{left:8px;right:8px;padding-left:3px;padding-right:3px;gap:0}body[data-mode='member'] .bottom-nav button{min-width:0;font-size:8px;flex-basis:0}.plaza-hero{padding:24px 22px;min-height:240px;border-radius:20px;margin-bottom:17px}.plaza-hero h1{font-size:29px;margin:16px 0 14px;letter-spacing:2px}.plaza-hero h1>span{font-size:13px;letter-spacing:.4px;margin-top:10px}.plaza-hero-copy{max-width:100%}.plaza-hero p{font-size:10px;max-width:180px}.plaza-eyebrow{font-size:7px;letter-spacing:2px}.plaza-hero-tags{gap:13px;font-size:9px;margin-top:25px}.plaza-hero-tags .icon{width:12px;height:12px}.plaza-hero-art{transform:scale(.52);transform-origin:right top;right:-5px;top:44px;opacity:.75}.plaza-compose-strip{padding:13px 12px;gap:9px;border-radius:15px}.plaza-compose-strip>.plaza-avatar{width:32px;height:32px;flex-basis:32px;border-radius:11px;font-size:13px}.plaza-compose-prompt{font-size:11px}.plaza-compose-prompt small{font-size:8px;margin-top:6px}.plaza-compose-strip .btn{font-size:10px;padding:7px 10px;min-height:36px}.plaza-compose-strip .btn .icon{width:14px;height:14px}.plaza-toolbar{margin-top:23px}.plaza-tabs{gap:24px}.plaza-tabs button{font-size:14px;padding-bottom:13px}.plaza-sort{font-size:9px}.plaza-topic-tabs{gap:3px;margin-bottom:15px}.plaza-topic-tabs button{font-size:9px;padding:7px 10px}.plaza-post{padding:17px 15px;border-radius:16px}.plaza-author{gap:9px}.plaza-author .plaza-avatar{width:34px;height:34px;flex-basis:34px;border-radius:12px;font-size:14px}.plaza-author strong{font-size:12px}.plaza-author>div>span{font-size:8px}.plaza-topic{font-size:8px;padding:4px 5px}.plaza-post-text{font-size:12px;line-height:1.95;margin:16px 0}.plaza-post-bottom{margin-top:15px;padding-top:12px;gap:19px}.plaza-social{font-size:10px;min-height:32px}.plaza-free{font-size:8px}.plaza-images{gap:5px;margin:13px 0}.plaza-photo{border-radius:9px}.count-1 .plaza-photo{aspect-ratio:1.6}.plaza-side{grid-template-columns:1fr;gap:15px}.plaza-me{display:none}.plaza-guide{padding:22px}.plaza-local-note{font-size:9px}.plaza-home-entry{padding:17px 14px;gap:11px}.plaza-home-entry h2{font-size:14px}.plaza-home-entry p{font-size:9px;line-height:1.7}.plaza-home-entry>span{width:35px;height:35px;flex-shrink:0;border-radius:11px}.plaza-home-entry>.btn{padding:8px 9px;font-size:10px;min-height:35px}.plaza-home-entry>.btn .icon{display:none}.plaza-compose-intro{gap:8px}.plaza-compose-intro>b{font-size:10px}.plaza-compose-intro span:not(.plaza-avatar){font-size:8px}.plaza-dialog .field textarea{font-size:14px}.plaza-dialog .modal-body{padding-left:17px;padding-right:17px}.plaza-dialog .modal-head{padding-left:17px;padding-right:17px}.plaza-upload-row{gap:8px}.plaza-upload-row>span{font-size:8px}.plaza-dialog .modal-actions .btn{font-size:11px;padding:9px 12px}.plaza-dialog .plaza-author .plaza-topic{max-width:75px;white-space:normal}.plaza-charge-note{font-size:10px}.plaza-comment-heading{margin-top:20px}.plaza-dialog .plaza-compose-tip{font-size:9px}}
@media(prefers-reduced-motion:reduce){.plaza-float-card,.plaza-float-heart{animation:none!important}.plaza-photo img{transition:none}}
.plaza-voice-editor{margin:20px 0;padding:18px 0;border-block:1px solid var(--line,#a68fc422)}.plaza-voice-heading{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.plaza-voice-heading strong{font-size:14px}.plaza-voice-heading span,.plaza-voice-editor>small,.plaza-voice-status{font-size:11px;color:var(--muted,#a59bb8);line-height:1.7}.plaza-voice-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:10px}.plaza-voice-actions label{cursor:pointer;position:relative}.plaza-voice-actions input[type=file]{position:absolute;width:1px;height:1px;opacity:0}.plaza-voice-editor audio,.plaza-voice-player audio{display:block;width:100%;max-width:420px;height:44px;margin:8px 0}.plaza-voice-player{margin:12px 0 20px}.plaza-voice-player>span{font-size:12px;color:var(--muted,#a59bb8)}

.plaza-inbox article{display:grid;gap:8px;padding:18px 0;border-bottom:1px solid #a79dbb33}.plaza-inbox p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.plaza-inbox small{opacity:.6}.plaza-inbox .btn{justify-self:start}
