:root{--green-950:#03281f;--green-900:#073d2d;--green-800:#0b533c;--jade:#158257;--gold:#d8a62a;--gold-light:#f4cd69;--rice:#f6f1e7;--paper:#fffdf8;--ink:#19372d;--muted:#6e7d75;--danger:#a94336;--shadow:0 24px 70px rgba(3,40,31,.14);font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,Noto Sans SC,sans-serif;color:var(--ink);background:var(--rice);font-synthesis:none}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold-light);outline-offset:3px}.brand{display:flex;align-items:center;gap:12px;color:var(--green-950)}.brand__logo{width:48px;height:48px;display:block;flex:none;object-fit:contain;border-radius:50%;filter:drop-shadow(0 4px 10px rgba(0,0,0,.12))}.brand strong,.brand small{display:block}.brand strong{font-size:14px;letter-spacing:.08em}.brand small{font-size:9px;letter-spacing:.16em;margin-top:3px;opacity:.7}.brand--inverse{color:#fff8df}.eyebrow{color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}.campus-arch{position:fixed;inset:auto -8vw -26vw auto;width:min(60vw,760px);aspect-ratio:1;pointer-events:none;opacity:.1;z-index:0}.campus-arch i{position:absolute;inset:0;border:2px solid var(--gold);border-radius:50% 50% 0 0}.campus-arch i:nth-child(2){inset:12%}.campus-arch i:nth-child(3){inset:24%}.mobile-shell{min-height:100vh;padding:28px 18px 32px;position:relative;overflow:hidden;background:radial-gradient(circle at 8% 3%,rgba(216,166,42,.14),transparent 28%),var(--rice)}.mobile-shell>header,.paper-card,.mobile-shell>footer{position:relative;z-index:1;max-width:560px;margin-left:auto;margin-right:auto}.mobile-shell>header{padding:18px 4px 24px}.mobile-shell h1{font:900 clamp(34px,10vw,54px)/1.1 "Noto Serif SC",serif;letter-spacing:-.04em;margin:10px 0 12px;color:var(--green-950)}.lead{font-size:15px;line-height:1.8;color:#596d64;margin:0}.paper-card{background:#fffdf8f0;border:1px solid rgba(11,83,60,.12);box-shadow:var(--shadow);border-radius:24px;padding:18px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.segmented{display:grid;grid-template-columns:repeat(3,1fr);padding:4px;border-radius:14px;background:#eae8dd;margin-bottom:22px}.segmented button{border:0;background:transparent;padding:11px 6px;border-radius:10px;color:#6e766f;font-size:13px;font-weight:700;cursor:pointer}.segmented button.is-active{background:var(--green-900);color:#fff;box-shadow:0 7px 18px #073d2d38}.form-group{padding:4px 0 10px}.form-group+.form-group{border-top:1px solid #ece8dc;padding-top:18px}.form-group h2{font:700 17px/1.4 "Noto Serif SC",serif;margin:0 0 14px;color:var(--green-900)}.field{display:grid;gap:8px;margin:0 0 15px}.field>span{font-size:13px;font-weight:700;color:#455c52}.field input,.field select,.field textarea{width:100%;border:1px solid #ccd4cd;background:#fff;padding:14px 15px;border-radius:12px;color:var(--ink);transition:.2s border,.2s box-shadow}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--jade);box-shadow:0 0 0 4px #1582571a;outline:0}.field textarea{resize:vertical;line-height:1.6}.check-row{display:flex;gap:11px;align-items:flex-start;margin:14px 0;font-size:13px;line-height:1.6;color:#40564d}.check-row input{width:19px;height:19px;margin-top:1px;accent-color:var(--green-900);flex:none}.check-row small{display:block;color:#7a867f;margin-top:2px}.primary-button,.gold-button,.danger-button{border:0;border-radius:12px;font-weight:800;cursor:pointer;transition:transform .2s,opacity .2s}.primary-button{width:100%;padding:15px 20px;margin-top:9px;background:var(--green-900);color:#fff;box-shadow:0 10px 25px #073d2d3d}.gold-button{padding:13px 18px;background:var(--gold);color:var(--green-950)}.danger-button{padding:12px 16px;background:#f8e4df;color:var(--danger)}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{opacity:.48;cursor:not-allowed}.status{margin-top:14px;padding:12px 14px;border-radius:10px;font-size:13px;line-height:1.6}.status--success{background:#e6f3eb;color:#17633e}.status--error{background:#f9e8e4;color:#923b30}.status--info{background:#fff3d1;color:#71540e}.scan-state{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#5e7068;text-align:center}.scan-state--error strong{font:700 22px "Noto Serif SC",serif;color:var(--danger)}.scan-state--error span{max-width:300px;line-height:1.7}.spinner{width:28px;height:28px;border:3px solid rgba(7,61,45,.18);border-top-color:var(--green-900);border-radius:50%;animation:spin .8s linear infinite}.spinner--gold{border-color:#f4cd6933;border-top-color:var(--gold-light)}.mobile-shell>footer{text-align:center;font-size:11px;color:#89928d;padding:26px 0 0}.mobile-shell>footer a{color:var(--green-800)}.claim-card{padding:24px}.reward-ticket{position:relative;overflow:hidden;border-radius:18px;padding:28px 20px;text-align:center;background:var(--green-900);color:#fff8df}.reward-ticket:before{content:"";position:absolute;inset:8px;border:1px solid rgba(244,205,105,.48);border-radius:14px}.reward-ticket>*{position:relative}.reward-ticket span{font-size:10px;letter-spacing:.24em;color:var(--gold-light)}.reward-ticket strong{display:block;font:700 clamp(18px,5vw,28px)/1.3 ui-monospace,monospace;word-break:break-all;margin:24px 0}.reward-ticket button{border:1px solid var(--gold-light);background:transparent;color:var(--gold-light);border-radius:999px;padding:9px 16px;cursor:pointer}.reward-ticket p{font-size:11px;opacity:.68;margin:18px 0 0}.home,.screen,.console-shell{min-height:100vh;position:relative;overflow:hidden;background:var(--green-950);color:#fff8df}.home{display:flex;flex-direction:column;padding:34px clamp(24px,7vw,100px);background:radial-gradient(circle at 75% 28%,rgba(216,166,42,.22),transparent 26%),linear-gradient(135deg,#03281f,#0b533c)}.home>div:last-child{margin:auto 0;position:relative;z-index:1}.home h1{font:900 clamp(52px,8vw,116px)/1.02 "Noto Serif SC",serif;letter-spacing:-.06em;margin:14px 0 24px;max-width:1050px}.home p:last-of-type{max-width:620px;line-height:1.8;opacity:.7}.home a{display:inline-block;margin-top:22px;color:var(--gold-light);font-weight:800;text-decoration:none;border-bottom:1px solid;padding-bottom:5px}.console-shell{display:grid;grid-template-columns:260px 1fr;background:#edf0ea;color:var(--ink);overflow:visible}.console-shell--center{display:grid;place-items:center;background:radial-gradient(circle at 50% 15%,#0b6347,#03281f 65%);padding:24px}.login-card{width:min(440px,100%);position:relative;z-index:1;background:#073d2de0;border:1px solid rgba(244,205,105,.3);border-radius:24px;padding:34px;color:#fff8df;box-shadow:0 28px 80px #00000042;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.login-card h1{font:800 38px "Noto Serif SC",serif;margin:8px 0 28px}.login-card .field>span{color:#fff8df}.login-card .field input,.login-card .field select{background:#ffffff14;border-color:#ffffff38;color:#fff}.login-card select option{color:#111}.login-card .gold-button{width:100%;margin-top:8px}.console-shell>aside{position:sticky;top:0;height:100vh;padding:28px 20px;background:var(--green-950);color:#fff8df;display:flex;flex-direction:column;z-index:2}.console-shell aside nav{display:grid;gap:6px;margin:40px 0 22px}.console-shell aside nav button{border:0;background:transparent;color:#fff8df94;text-align:left;padding:13px 14px;border-radius:10px;font-weight:700;cursor:pointer}.console-shell aside nav button.is-active{background:#d8a62a29;color:var(--gold-light)}.screen-links{display:grid;gap:9px;margin-top:auto}.screen-links>p{margin:0 0 2px;padding:0 4px;color:#fff8df6b;font-size:10px;font-weight:800;letter-spacing:.18em}.screen-links>a{min-height:66px;display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;color:#fff8df;text-decoration:none;padding:10px;border:1px solid rgba(244,205,105,.18);border-radius:13px;background:#ffffff09;transition:.2s transform,.2s border-color,.2s background}.screen-links>a:hover{transform:translateY(-2px);border-color:#f4cd6994;background:#d8a62a1a}.screen-link__mark{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#d8a62a29;color:var(--gold-light);font:800 15px "Noto Serif SC",serif}.screen-links strong,.screen-links small{display:block}.screen-links strong{font-size:13px}.screen-links small{font-size:10px;color:#fff8df80;margin-top:4px}.screen-links b{font-size:17px;color:var(--gold-light);font-weight:400}.console-main{padding:42px clamp(24px,5vw,70px) 80px;max-width:1400px;width:100%}.console-main>header{position:relative;margin-bottom:28px}.console-main>header h1{font:800 42px "Noto Serif SC",serif;margin:6px 0}.role-switch-trigger{position:absolute;right:0;top:5px;min-width:190px;display:grid;grid-template-columns:1fr auto;gap:1px 12px;text-align:left;border:1px solid #c8d0c9;border-radius:14px;padding:10px 12px;background:#ffffffb8;color:var(--ink);cursor:pointer;box-shadow:0 7px 18px #03281f0d}.role-switch-trigger span{grid-column:1;font-size:10px;color:#758179}.role-switch-trigger strong{grid-column:1;font-size:14px}.role-switch-trigger em{grid-column:2;grid-row:1/3;align-self:center;font-style:normal;font-size:11px;font-weight:800;color:var(--green-800)}.dialog-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px;background:#03281fa3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.role-dialog{width:min(460px,100%);padding:28px;border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:0 30px 90px #0000004d}.role-dialog>header{display:flex;justify-content:space-between;gap:20px}.role-dialog h2{font:800 30px "Noto Serif SC",serif;margin:3px 0 10px}.role-dialog>header>button{width:38px;height:38px;border:1px solid #d9dfda;border-radius:50%;background:#fff;color:#637269;font-size:22px;cursor:pointer}.role-dialog form{margin-top:20px}.role-dialog .gold-button{width:100%}.logout-button{width:100%;margin-top:10px;padding:11px;border:0;background:transparent;color:#7b8881;font-size:12px;cursor:pointer}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.stat-grid article{background:#fff;border:1px solid #dfe4de;border-radius:15px;padding:20px}.stat-grid span{font-size:12px;color:#748179}.stat-grid strong{display:block;font:700 34px Georgia,serif;color:var(--green-900);margin-top:9px}.console-panel{background:#fff;border:1px solid #dfe4de;border-radius:18px;padding:26px;margin-bottom:18px;box-shadow:0 12px 34px #03281f0d}.console-panel h2{font:700 24px "Noto Serif SC",serif;margin:0 0 18px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.runbook{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.runbook li{border-top:2px solid var(--gold);padding-top:15px;display:grid;gap:10px}.runbook strong{font:700 26px Georgia;color:var(--gold)}.runbook span{font-size:13px;line-height:1.7;color:#54665e}.muted{color:#6b7972;line-height:1.75;font-size:14px;max-width:760px}.request-list{display:grid;gap:10px}.request-list article{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:14px;border:1px solid #e3e7e2;padding:13px;border-radius:12px}.avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#e4f0e9;color:var(--green-900);font-weight:800}.request-list strong,.request-list small{display:block}.request-list small{color:#758179;margin-top:4px}.request-actions{display:flex;gap:8px}.request-list button{border:1px solid #b9cbbf;background:#fff;color:var(--green-900);padding:9px 13px;border-radius:9px;font-weight:700;cursor:pointer}.request-list button.is-reject{border-color:#e4c1bb;color:var(--danger);background:#fff9f7}.empty-state{padding:60px;text-align:center;color:#98a19b;border:1px dashed #ccd4ce;border-radius:12px}.pool-state{padding:7px 11px;border-radius:999px;background:#eef1ee;color:#7b8780;font-size:11px;font-weight:800}.pool-state.is-locked{background:#e3f1e8;color:#17633e}.pool-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin:22px 0}.pool-summary article{padding:14px;border:1px solid #e0e5df;border-top:3px solid #cbd5ce;border-radius:12px;background:#f8faf7}.pool-summary span{display:block;color:#78857e;font-size:10px}.pool-summary strong{display:block;margin-top:7px;font:800 26px Georgia,serif;color:var(--green-900)}.pool-meta{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:10px 14px;align-items:center;padding:13px 15px;border:1px solid #e0e5df;border-radius:11px;background:#f7f9f6;font-size:11px}.pool-meta span{color:#7a867f}.pool-meta strong{color:#314a3f}.pool-members{margin-top:13px;border:1px solid #dfe4de;border-radius:13px;overflow:hidden}.pool-members>header{display:flex;justify-content:space-between;padding:13px 15px;background:var(--green-900);color:#fff8df;font-size:12px}.pool-members>header span{color:var(--gold-light)}.pool-members>div{display:grid;grid-template-columns:repeat(4,1fr);max-height:280px;overflow:auto}.pool-members>div>span{display:flex;align-items:center;gap:9px;min-width:0;padding:11px 13px;border-right:1px solid #edf0ec;border-bottom:1px solid #edf0ec;font-size:12px}.pool-members i{color:#b58a20;font:700 10px Georgia;font-style:normal}.pool-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;margin-top:16px}.pool-actions a,.pool-actions button{min-height:42px;padding:0 15px;border:1px solid #bdc9c1;border-radius:10px;background:#fff;color:var(--green-900);font-size:12px;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;cursor:pointer}.pool-actions a{margin-right:auto;background:var(--green-900);border-color:var(--green-900);color:#fff}.pool-actions button.is-danger{border-color:#e4c1bb;color:var(--danger);background:#fff9f7}.pool-empty{display:grid;place-items:center;gap:8px;padding:46px 20px;border:1px dashed #c6d0c8;border-radius:14px;background:#f8faf7;text-align:center}.pool-empty strong{font:700 21px "Noto Serif SC",serif;color:var(--green-900)}.pool-empty span{color:#748179;font-size:12px}.pool-empty .gold-button{margin-top:8px}.confirm-dialog{width:min(480px,100%);padding:28px;border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:0 30px 90px #0000004d}.confirm-dialog h2{font:800 28px "Noto Serif SC",serif;margin:5px 0 12px}.confirm-dialog>p:not(.eyebrow){color:#627169;font-size:14px;line-height:1.75}.confirm-dialog>div{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.confirm-dialog>div>button:first-child{padding:11px 16px;border:1px solid #cdd5cf;border-radius:10px;background:#fff;color:#617168;font-weight:700;cursor:pointer}.pool-actions button:focus-visible,.pool-actions a:focus-visible,.confirm-dialog button:focus-visible{outline:3px solid rgba(216,166,42,.45);outline-offset:2px}.draw-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.draw-actions button{border:1px solid #d9dfda;background:#f8faf7;border-radius:12px;padding:18px;text-align:left;cursor:pointer}.draw-actions span,.draw-actions strong{display:block}.draw-actions strong{font:700 22px Georgia;color:var(--green-900);margin-top:10px}.pending-winner{text-align:center;border-color:#d8a62a99}.pending-winner>p{color:var(--gold);font-weight:800}.pending-winner h2{font-size:44px}.countdown{display:block;font:700 22px ui-monospace;color:var(--danger);margin:-8px 0 20px}.pending-winner>div{display:flex;justify-content:center;gap:10px}.result-table{display:grid}.result-table>div{display:grid;grid-template-columns:120px 1fr 100px;padding:13px 4px;border-top:1px solid #ecefeb;align-items:center}.result-table em{font-style:normal;font-size:12px;text-align:right}.result-confirmed{color:#177047}.result-forfeited{color:#9a4940}.result-pending{color:#a7790d}.export-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:24px}.export-grid a{padding:22px;border:1px solid #cfd8d1;border-radius:12px;color:var(--green-900);text-decoration:none;font-weight:800;background:#f8faf7}.screen{padding:34px clamp(32px,5vw,78px);background:radial-gradient(circle at 50% 40%,#0b6b4b 0,#073d2d 38%,#03281f 80%)}.screen--login{display:grid;place-items:center}.qr-screen{display:grid;grid-template-columns:1fr minmax(320px,38vw);grid-template-rows:auto 1fr auto;gap:26px 7vw}.qr-screen>.brand{grid-column:1/-1}.screen-title{align-self:center;max-width:720px}.screen-title h1{font:900 clamp(54px,6.5vw,98px)/1.08 "Noto Serif SC",serif;letter-spacing:-.05em;margin:12px 0 20px}.screen-title>p:last-child{font-size:20px;line-height:1.8;opacity:.7}.qr-stage{align-self:center;justify-self:center;position:relative;background:#fffdf7;padding:18px;border-radius:24px;border:2px solid var(--gold);box-shadow:0 25px 80px #00000059;min-width:360px;min-height:360px;display:grid;place-items:center}.qr-stage img{display:block;width:min(34vw,520px);height:auto}.live-dot{position:absolute;bottom:-38px;color:var(--gold-light);font-size:11px;letter-spacing:.18em}.screen-stats{grid-column:1/-1;display:flex;gap:46px;border-top:1px solid rgba(244,205,105,.25);padding-top:20px}.screen-stats span{font-size:12px;letter-spacing:.12em;color:#fff8df99}.screen-stats strong{font:700 32px Georgia;color:var(--gold-light);margin-left:12px}.draw-screen{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:18px;text-align:center;padding:24px clamp(24px,3.5vw,58px);background:radial-gradient(circle at 50% 38%,#0d7652,#073d2d 43%,#03281f 82%);overflow:auto}.draw-screen__header{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}.draw-screen__header>span{display:flex;align-items:center;gap:8px;border:1px solid rgba(244,205,105,.24);border-radius:999px;padding:8px 12px;color:#fff8dfa8;font-size:10px;letter-spacing:.1em}.draw-screen__header>span i{width:7px;height:7px;border-radius:50%;background:#66d6a7;box-shadow:0 0 14px #66d6a7}.draw-stage{min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;z-index:1}.draw-stage>.eyebrow{margin:0}.draw-stage>h1{font:900 clamp(46px,6.3vw,94px) "Noto Serif SC",serif;margin:2px 0 14px;color:var(--gold-light);text-shadow:0 5px 30px rgba(0,0,0,.3)}.winner-lock{width:min(980px,82vw);padding:26px 28px 23px;position:relative;border:1px solid rgba(244,205,105,.5);border-radius:48% 48% 18px 18px;background:#03281f9e;box-shadow:inset 0 0 60px #d8a62a1a,0 24px 70px #00000040}.winner-lock span{display:block;color:var(--gold-light);letter-spacing:.22em;font-size:11px}.winner-lock strong{display:block;font:900 clamp(58px,8vw,122px)/1.05 "Noto Serif SC",serif;letter-spacing:.08em;margin:10px 0;color:#fffdf7}.winner-lock small{font-size:13px;letter-spacing:.15em;color:#fff8df9e}.winner-lock.is-rolling strong{animation:flicker .16s steps(2) infinite}.winner-lock.is-confirmed{box-shadow:inset 0 0 80px #f4cd6933,0 0 0 5px #d8a62a14,0 28px 90px #0000004d}.draw-history{min-height:34px;margin:14px 0 0;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.draw-history span{border:1px solid rgba(244,205,105,.25);border-radius:999px;padding:6px 11px;color:#fff8dfb8;font-size:11px}.draw-console{position:relative;z-index:4;display:grid;grid-template-columns:minmax(140px,.75fr) minmax(240px,2.6fr);gap:12px;align-items:stretch;padding:13px;border:1px solid rgba(244,205,105,.28);border-radius:20px;background:#021f18e0;box-shadow:0 18px 54px #00000047;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.draw-console__summary{display:flex;flex-direction:column;justify-content:center;text-align:left;padding:5px 8px;border-right:1px solid rgba(244,205,105,.18)}.draw-console__summary span{color:var(--gold-light);font-size:10px;font-weight:800;letter-spacing:.18em}.draw-console__summary strong{font-size:13px;margin-top:5px;color:#fff8df}.draw-lock-button{min-height:72px;border:1px solid var(--gold-light);border-radius:14px;background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--green-950);font-weight:900;font-size:18px;cursor:pointer}.stage-prize-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stage-prize-actions button{min-height:72px;display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left;padding:10px 13px;border:1px solid rgba(244,205,105,.22);border-radius:14px;background:#ffffff0e;color:#fff8df;cursor:pointer}.stage-prize-actions button:hover:not(:disabled){background:#d8a62a21;border-color:#f4cd698c}.stage-prize-actions span{font-weight:800}.stage-prize-actions strong{grid-row:1/3;grid-column:2;font:800 24px Georgia;color:var(--gold-light)}.stage-prize-actions strong small{font-size:12px}.stage-prize-actions em{font-size:10px;font-style:normal;color:#fff8df7a}.stage-response{grid-column:1/-1;display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding-top:11px;border-top:1px solid rgba(244,205,105,.18);text-align:left}.stage-response>div{display:grid;grid-template-columns:auto auto;justify-content:start;gap:1px 12px}.stage-response>div span{font-size:10px;color:var(--gold-light);letter-spacing:.12em}.stage-response>div strong{font:800 20px "Noto Serif SC",serif}.stage-response>div small{grid-column:1/-1;color:#fff8df80;font-size:10px}.stage-response>button{min-height:48px;padding:0 18px;border-radius:11px;font-weight:900;cursor:pointer}.stage-confirm-button{border:0;background:var(--gold-light);color:var(--green-950)}.stage-redraw-button{border:1px solid rgba(255,182,166,.55);background:#a943362e;color:#ffc2b6}.draw-console>.status{grid-column:1/-1;margin:0}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden}.confetti i{--x:calc((var(--i) * 37) % 100);position:absolute;left:calc(var(--x) * 1%);top:-30px;width:8px;height:18px;background:var(--gold-light);animation:fall calc(2.5s + (var(--i) % 5)*.35s) linear infinite;animation-delay:calc((var(--i) % 9)*-.22s);transform:rotate(calc(var(--i)*23deg))}.confetti i:nth-child(3n){background:#fff}.confetti i:nth-child(4n){background:#3fc085}.draw-console{grid-template-columns:1fr;gap:10px}.stage-steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:0}.stage-steps li{display:flex;align-items:center;gap:8px;min-height:32px;padding:6px 9px;border:1px solid rgba(244,205,105,.12);border-radius:10px;color:#fff8df6b;font-size:10px;text-align:left}.stage-steps i{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#ffffff14;font:700 10px Georgia;font-style:normal}.stage-steps li.is-active{border-color:#f4cd6980;color:#fff8df;background:#d8a62a1a}.stage-steps li.is-active i{background:var(--gold-light);color:var(--green-950)}.stage-flow{display:grid;grid-template-columns:minmax(360px,2fr) minmax(270px,.8fr);gap:9px}.stage-prize-actions button.is-selected{border-color:var(--gold-light);background:#d8a62a2e;box-shadow:inset 0 0 0 1px #f4cd6940}.stage-draw-action,.stage-pool-guide{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(244,205,105,.18);border-radius:14px;background:#ffffff0a;text-align:left}.stage-draw-action>div,.stage-pool-guide>div{display:grid;gap:3px}.stage-draw-action span,.stage-pool-guide span{color:var(--gold-light);font-size:9px;font-weight:800;letter-spacing:.12em}.stage-draw-action strong,.stage-pool-guide strong{font-size:12px;color:#fff8df}.stage-pool-guide small{color:#fff8df73;font-size:9px}.stage-draw-action button,.stage-pool-guide a{min-height:52px;padding:0 18px;border:0;border-radius:11px;background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--green-950);font-weight:900;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}.stage-draw-action button:focus-visible,.stage-prize-actions button:focus-visible,.stage-response button:focus-visible,.stage-pool-guide a:focus-visible{outline:3px solid rgba(244,205,105,.5);outline-offset:2px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes flicker{50%{opacity:.64;transform:translateY(2px)}}@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}@media(max-width:900px){.console-shell{grid-template-columns:1fr}.console-shell>aside{position:relative;height:auto}.console-shell aside nav{grid-template-columns:repeat(2,1fr);margin:24px 0 12px}.screen-links{grid-template-columns:repeat(3,1fr);margin-top:8px}.screen-links>p{grid-column:1/-1}.stat-grid,.runbook,.export-grid{grid-template-columns:1fr 1fr}.pool-summary{grid-template-columns:repeat(3,1fr)}.pool-members>div{grid-template-columns:repeat(2,1fr)}.qr-screen{grid-template-columns:1fr;text-align:center}.qr-screen>.brand,.screen-stats{grid-column:1}.qr-stage img{width:min(54vw,430px)}.draw-console,.stage-flow{grid-template-columns:1fr}.draw-console__summary{border-right:0;border-bottom:1px solid rgba(244,205,105,.18);padding-bottom:10px}.stage-response{grid-column:1}}@media(max-width:560px){.paper-card{border-radius:18px;padding:15px}.segmented button{font-size:12px}.console-main{padding:26px 16px}.stat-grid,.runbook,.draw-actions,.export-grid,.pool-summary{grid-template-columns:1fr}.console-main>header h1{font-size:32px}.role-switch-trigger{position:static;margin-top:14px;width:100%}.panel-heading,.pending-winner>div{align-items:stretch;flex-direction:column}.pool-meta{grid-template-columns:1fr}.pool-members>div{grid-template-columns:1fr}.pool-actions{display:grid}.pool-actions a{margin:0}.confirm-dialog>div{display:grid}.result-table>div{grid-template-columns:90px 1fr}.result-table em{grid-column:2}.request-list article{grid-template-columns:40px 1fr}.request-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.screen-links{grid-template-columns:1fr}.home{padding:28px 24px}.home h1{font-size:43px;line-height:1.12;letter-spacing:-.08em;word-break:break-all;max-width:100%}.home p:last-of-type{font-size:14px}.qr-stage{min-width:280px;min-height:280px}.screen{padding:24px 18px}.screen-title h1{font-size:48px}.screen-title>p:last-child{font-size:16px}.draw-screen{display:block}.draw-screen__header>span{display:none}.draw-stage{margin:28px 0}.winner-lock{width:100%;padding:24px 16px}.stage-steps,.stage-prize-actions,.stage-draw-action,.stage-pool-guide,.stage-response{grid-template-columns:1fr}.stage-draw-action button,.stage-pool-guide a,.stage-response>button{width:100%;justify-content:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition:none!important}}
