:root{--gold:#f8d88c;--cream:#fff5e8;--muted:#d2b5aa;--red:#a61122;--main-bg:url('/static/assets/main-bg.png');--demo-avatars:url('/static/assets/demo-avatars.png');color-scheme:dark;font-family:'PingFang SC','Microsoft YaHei',system-ui,sans-serif;color:var(--cream);background:#210107}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:var(--gold);text-decoration:none}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}input,select{min-width:0;color:var(--cream);background:#30070d;border:1px solid #b78b60;border-radius:10px;padding:15px 14px;outline:none;width:100%;font-size:19px}input:focus,select:focus{border-color:#ffdf96;box-shadow:0 0 0 3px #e9bd6030}input::placeholder{color:#ba9690;font-size:16px}button:focus-visible,a:focus-visible{outline:3px solid #ffe0a0;outline-offset:4px}.loading{padding:80px 20px;text-align:center;color:var(--gold)}.gold{color:var(--gold)}.primary{display:block;text-align:center;border:1px solid #db3b3e;background:linear-gradient(110deg,#9c101a,#c51d27,#8f0c17);box-shadow:0 8px 30px #0003,inset 0 1px #ffdd8744;color:#fff4e5;font-size:21px;font-weight:700;border-radius:14px;padding:16px;width:100%}.secondary{border:1px solid #ae8257;background:#4b1117;color:var(--gold);border-radius:9px;padding:10px 16px}.quiet{background:none;border:0;color:var(--muted);padding:8px}.brand{height:70px;width:245px;background-image:var(--main-bg);background-size:2172px 724px;background-position:-30px -10px;background-repeat:no-repeat}.brand-wrap{width:150px;height:45px}.brand-wrap .brand{transform:scale(.61);transform-origin:top left}.error{color:#ffb6ae;font-size:14px;line-height:1.7}.notice{background:#ffdd8712;border:1px solid #b38b554a;border-radius:10px;padding:12px 15px;color:#ead1b6;font-size:14px;line-height:1.7}.muted{color:var(--muted)}.demo-banner{padding:9px 18px;background:#563519;color:#ffe5a0;text-align:center;font-size:13px;line-height:1.6}.demo-banner a{text-decoration:underline;margin:0 8px}.mobile{min-height:100svh;background:radial-gradient(ellipse at 80% 0,#980d2270,transparent 48%),radial-gradient(ellipse at 15% 75%,#82031666,transparent 60%),#39050c;position:relative;overflow:hidden}.mobile:before{content:'';position:absolute;left:-15%;top:-180px;width:140%;height:330px;border-bottom:1px solid #e4b56188;border-radius:50%;transform:rotate(-13deg);pointer-events:none}.mobile-shell{position:relative;max-width:480px;margin:auto;padding:25px 22px 40px}.mobile h1{font-size:39px;letter-spacing:3px;text-align:center;margin:28px 0 7px;line-height:1.35}.subtitle{text-align:center;color:var(--gold);font-size:18px;letter-spacing:1px;margin:0 0 26px}.profile{display:flex;gap:12px;align-items:center;margin:15px 0 20px;padding:13px;background:#23030966;border:1px solid #e3b96838;border-radius:13px}.profile .avatar{flex:0 0 45px;height:45px;width:45px;font-size:19px}.profile p{margin:0;line-height:1.6;font-size:14px}.profile .profile-copy{flex:1;min-width:0}.profile .quiet{font-size:12px}.auth-box{margin:18px 0;padding:17px;border-radius:13px;background:#25040980;border:1px solid #d6ac7b4d}.auth-box p{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 14px}.auth-box .primary{font-size:18px;padding:12px}.form-panel{padding:24px 20px;border:1px solid #b78c6b99;border-radius:19px;background:linear-gradient(140deg,#ffffff08,#31020875)}.field{display:block;margin-bottom:23px}.field:last-child{margin-bottom:0}.field>span{display:block;font-size:18px;font-weight:650;margin-bottom:11px}.field>span:before{content:'';display:inline-block;width:4px;height:17px;border-radius:3px;background:linear-gradient(#fff4be,#e9b856);margin-right:10px;vertical-align:-2px}.amount-input{position:relative}.amount-input input{font-size:30px;font-weight:600;padding-right:64px}.amount-input em{position:absolute;right:16px;top:23px;font-size:15px;font-style:normal;color:var(--gold)}.consent{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.8;color:var(--muted);margin:18px 1px}.consent input{appearance:auto;accent-color:#c5974f;width:17px;height:17px;flex:0 0 17px;margin:4px 0}.rules{text-align:center;color:#dac3a9;font-size:13px;line-height:1.9;margin:22px 0 0}.saved{margin:16px 0;border:1px solid #b8a56d;background:#92772d20;border-radius:14px;padding:16px}.saved strong{display:block;color:var(--gold);font-size:20px;margin-bottom:7px}.saved p{font-size:14px;line-height:1.7;margin:0}.form-error{min-height:20px;margin:6px 0 12px;font-size:14px;color:#ffb6ae}.avatar{overflow:hidden;border-radius:50%;background:linear-gradient(145deg,#cbac67,#7f3437);color:#fff5d6;display:flex;align-items:center;justify-content:center;border:2px solid #e9c987;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.demo-avatar{background-image:var(--demo-avatars);background-size:300% 300%}.display-page{height:100vh;width:100vw;overflow:hidden;background:#100003;display:grid;place-items:center}.display-viewport{position:relative;overflow:hidden}.canvas{position:absolute;top:0;left:0;transform-origin:top left;overflow:hidden}.main-canvas{width:2172px;height:724px;background-image:var(--main-bg);background-size:100% 100%}.total-area{position:absolute;left:975px;top:51px;height:112px;width:750px;display:flex;align-items:baseline;gap:24px;white-space:nowrap}.total-number{font-family:'Arial Black','Arial',sans-serif;font-weight:900;font-style:italic;line-height:1.05;font-size:128px;letter-spacing:-5px;background:linear-gradient(#fffcde 8%,#ffda65 36%,#d98f11 52%,#fff1aa 78%,#f7bd35 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:1.2px #ffe6a3;filter:drop-shadow(0 3px 0 #6c290b) drop-shadow(0 0 8px #f3b34450);font-variant-numeric:tabular-nums}.total-unit{font-size:52px;font-weight:800;font-style:italic;letter-spacing:2px;color:#ffe299;text-shadow:0 3px #7d3a11}.reported{position:absolute;left:882px;top:163px;width:424px;height:46px;display:flex;justify-content:center;align-items:center;gap:18px;font-size:31px;font-weight:600;letter-spacing:3px}.reported strong{font:italic 900 45px 'Arial Black',Arial,sans-serif;letter-spacing:2px;color:#ffe091}.barrage-stage{position:absolute;left:48px;right:48px;top:230px;height:435px;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 1.3%,#000 98.7%,transparent)}.report-card{position:absolute;height:78px;display:flex;align-items:center;gap:14px;padding:8px 20px 8px 9px;border:1px solid #c2915970;border-radius:42px;background:linear-gradient(110deg,#50070fd1,#1c0207bd);box-shadow:inset 0 1px #e1ac6433;white-space:nowrap;will-change:transform}.report-card .avatar{width:60px;height:60px;font-size:27px}.person{min-width:0}.nickname{font-size:18px;line-height:24px;color:#e5bd8a;letter-spacing:1px;max-width:350px;overflow:hidden;text-overflow:ellipsis}.report-line{display:flex;align-items:baseline;gap:16px;font-size:23px;line-height:31px;font-weight:550}.report-line strong{font-family:'Arial',sans-serif;font-size:30px;font-weight:500;color:#ffe49a}.report-line small{font-family:inherit;font-weight:400;font-size:18px;margin-left:4px}.waiting{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#b6876b88;font-size:31px;letter-spacing:5px}.display-label{position:absolute;left:24px;bottom:8px;font-size:15px;color:#e2bf8580}.connection{position:fixed;right:16px;bottom:12px;font-size:12px;z-index:10;color:#ffcb8d;background:#160005cc;border-radius:6px;padding:6px 12px;display:none}.connection.visible{display:block}.screen-tools{position:fixed;top:12px;right:14px;display:flex;gap:7px;opacity:0;transition:opacity .2s;z-index:15}.screen-tools:hover,.screen-tools:focus-within{opacity:1}.screen-tools button{background:#250309dd;border:1px solid #a37840;color:#f9dfad;padding:7px 10px;border-radius:6px;font-size:12px}.side-canvas{width:900px;height:1200px;background:radial-gradient(ellipse at 60% -10%,#b2182d99,transparent 45%),radial-gradient(ellipse at 0 90%,#72041e66,transparent 60%),#33040d;padding:35px 38px}.side-canvas:before,.side-canvas:after{content:'';position:absolute;width:130%;height:350px;border-bottom:1px solid #cf9f5070;top:-100px;left:-15%;transform:rotate(-12deg);border-radius:50%;pointer-events:none}.side-canvas:after{top:auto;bottom:-250px;border-top:2px solid #c79955;transform:rotate(-7deg)}.side-canvas .brand{transform:scale(.8);transform-origin:left top;height:60px}.side-heading{text-align:center;margin:6px 0 19px}.side-heading h1{font-size:52px;letter-spacing:5px;margin:0 0 6px}.side-heading p{font-size:26px;color:var(--gold);margin:0}.ranking-title{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #d6a88566;padding:16px 3px 13px;font-size:24px;color:#e0bcb1}.ranking-title strong{font:900 40px Arial,sans-serif;color:#f7d58e}.rank-table{border:1px solid #bc8b654d;border-radius:15px;background:#1c020955;padding:0 16px 5px}.rank-head,.rank-row{display:grid;grid-template-columns:76px 1fr 205px;align-items:center;gap:10px;padding:0 8px}.rank-head{height:46px;color:#d6bdaa;font-size:20px;border-bottom:2px solid #e6c378}.rank-head>:last-child,.rank-amount{text-align:right}.rank-row{height:79px;border-bottom:1px solid #c59d7160}.rank-row:last-child{border:0}.rank-row.top-three{background:#a239402c}.rank-num{font:bold 34px Arial,sans-serif;color:#fff3df}.top-three .rank-num{color:#f5cc72}.rank-person{min-width:0;line-height:1.05}.rank-person b{display:block;font-size:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-person small{display:block;margin-top:7px;font-size:22px;color:#d3b3aa;white-space:nowrap}.rank-amount{font:bold 36px Arial,sans-serif;color:#f8d68c}.rank-empty{color:#9e7664;font-size:22px;font-weight:400}.side-footer{text-align:center;font-size:17px;letter-spacing:1px;color:#cba78e;margin:19px 0 0}.side-canvas .display-label{bottom:8px;font-size:12px}.admin-page{min-height:100vh;padding:30px 22px;background:radial-gradient(ellipse at 80% 0,#8d102366,transparent 55%),#25050c}.admin-wrap{max-width:1150px;margin:auto}.admin-top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:25px}.admin-top h1{font-size:27px;margin:10px 0}.admin-top p{margin:5px 0;color:var(--muted);font-size:14px}.admin-login{max-width:400px;margin:15vh auto;padding:30px;border:1px solid #ba965b66;border-radius:18px;background:#21020980}.admin-login h1{font-size:24px}.admin-login input{margin:20px 0}.admin-stats{display:flex;gap:18px;flex-wrap:wrap;margin:20px 0}.admin-stat{background:#ffffff06;border:1px solid #b991584d;border-radius:13px;padding:20px 26px;min-width:180px}.admin-stat strong{display:block;font-size:32px;color:var(--gold);margin-top:6px}.admin-nav{display:flex;gap:10px;flex-wrap:wrap}.admin-nav a{padding:10px 14px;background:#d7a85c16;border-radius:8px;font-size:14px}.admin-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:20px 0}.admin-actions input{max-width:300px;font-size:15px;padding:12px}.table-scroll{overflow-x:auto;border:1px solid #b489654a;border-radius:12px}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:14px}th,td{text-align:left;padding:14px;border-bottom:1px solid #d1a67a26}th{background:#70131f66;color:var(--gold)}td button{padding:6px 10px;font-size:12px;margin-right:6px}.admin-empty{text-align:center;padding:40px;color:var(--muted)}dialog{max-width:440px;width:calc(100% - 36px);background:#3b0911;border:1px solid #b79662;border-radius:16px;padding:25px;color:var(--cream)}dialog::backdrop{background:#000a}dialog .field{margin:20px 0}dialog .dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}@media(max-width:360px){.mobile-shell{padding:20px 16px}.mobile h1{font-size:34px}.form-panel{padding:20px 16px}}@media(prefers-reduced-motion:reduce){.primary{transition:none}}

html{width:100%;overflow-x:clip}.mobile{overflow-x:clip;overflow-y:auto}.mobile:before{left:-45%}.brand{background:none;display:flex;align-items:center;gap:13px;height:70px;width:245px}.brand-mark{display:block;flex:0 0 60px;width:60px;height:60px;border-radius:50%;background-image:var(--main-bg);background-size:2172px 724px;background-position:-32px -15px}.brand>span{font-size:29px;font-weight:700;letter-spacing:1px;white-space:nowrap;line-height:1.25}.brand small{display:block;font:700 15px Arial,sans-serif;letter-spacing:0;margin-top:6px}.side-canvas>.brand-wrap{height:45px}.side-canvas .brand{height:70px}.side-canvas:before,.side-canvas:after{z-index:0}.side-canvas>*{position:relative;z-index:1}.side-canvas:after{bottom:-315px}.report-card{left:0}.total-area{top:42px}.total-number{font-size:112px}.total-unit{font-size:47px}

.scan-entry{text-align:center;margin:32px 0;padding:24px 12px;background:#ffffff08;border:1px solid #b78c6b70;border-radius:18px}.scan-entry img{width:min(260px,100%);height:auto;background:white;border-radius:6px}.scan-entry h2{font-size:23px;color:var(--gold)}.scan-entry p{font-size:14px;color:var(--muted);line-height:1.7}.submit-notice{font-size:12px;line-height:1.8;color:var(--muted);margin:17px 2px 0}.profile.compact{border:0;background:none;padding:0;margin:22px 0 18px}.profile.compact .avatar{width:38px;height:38px;flex-basis:38px}.side-canvas:after{display:none}

.get-profile{text-align:center;margin-top:38px;padding:30px 20px}.get-profile h2{font-size:24px;margin:20px 0 12px}.get-profile .primary{margin-top:25px}.profile-placeholder{margin:auto;display:grid;place-items:center;width:68px;height:68px;border:1px solid #dfbe7866;border-radius:50%;color:var(--gold);background:#e0b46d11;font-size:31px}

/* Italic glyphs extend beyond their advance width; keep gold fill over the overhang. */
.total-number{display:inline-block;padding-right:.2em;margin-right:-.2em;background-origin:border-box}

:root{--main-screen-bg:url('/static/assets/main-bg-jan1.png')}
.main-canvas{background-image:var(--main-screen-bg)}
.main-heading{position:absolute;left:660px;top:4px;width:890px;height:56px;margin:0;display:flex;align-items:center;justify-content:center;font-size:46px;line-height:1.15;font-weight:750;letter-spacing:2px;white-space:nowrap;background:linear-gradient(#fff8d8 12%,#ffe4a6 42%,#eab54c 78%,#fff1bb);background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 1px 0 #733b10) drop-shadow(0 0 3px #e2a22c3d)}
