/* Lagos Life Sporty Club — monochrome system
   Pure grayscale. Black blocks carry the brand; white paper carries the work.
   Type: Space Grotesk (display) · Inter (UI) · JetBrains Mono (labels, money) · Instrument Serif (italic accents). */
:root{
  --bg:#f0f0ee;--paper:#fafafa;--paper-2:#e6e6e4;
  --ink:#0a0a0a;--ink-2:#262626;--muted:#595959;--faint:#8a8a8a;--line:#d2d2d0;--line-strong:#a3a3a1;
  --black:#0a0a0a;--black-2:#141414;--black-3:#1f1f1f;--on-black:#fafafa;--on-black-muted:#a1a1a1;--black-line:#2c2c2c;
  --danger:#0a0a0a;
  --display:'Space Grotesk',ui-sans-serif,system-ui,sans-serif;
  --sans:'Inter',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --dots:radial-gradient(circle at center,currentColor .9px,transparent 1.2px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;color:#000;opacity:.035;background-image:var(--dots);background-size:4px 4px}
button,input{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{opacity:.5;cursor:progress}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}
::selection{background:var(--ink);color:var(--paper)}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.masthead :focus-visible,.wallet-card :focus-visible,.footer :focus-visible,.admin-header :focus-visible{outline-color:var(--on-black)}
em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
svg{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:square;stroke-linejoin:miter}
.skip-link{position:absolute;left:12px;top:-60px;z-index:20;background:var(--paper);color:var(--ink);padding:10px 14px;font:700 11px var(--mono);letter-spacing:.1em}
.skip-link:focus{top:12px}
.fx-pending [data-reveal]{opacity:0}

/* Shell */
.app-shell{min-height:100vh;position:relative;z-index:1}
.masthead{background:var(--black);color:var(--on-black);position:sticky;top:0;z-index:5}
.masthead-inner{max-width:1320px;min-height:68px;margin:auto;display:flex;align-items:center;gap:48px;padding:0 32px}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand-seal{width:36px;height:36px;background:var(--on-black);color:var(--black);display:grid;place-items:center;font:700 14px var(--display);letter-spacing:-.08em;padding-right:2px;position:relative}
.brand-seal:after{content:"";position:absolute;right:3px;top:3px;width:4px;height:4px;border-radius:50%;background:var(--black)}
.brand-text{display:grid;gap:2px;font:500 9px var(--mono);letter-spacing:.2em;white-space:nowrap;color:var(--on-black-muted)}
.brand-text strong{font:700 13px var(--display);letter-spacing:.04em;color:var(--on-black)}
.primary-nav{display:flex;align-self:stretch;gap:30px}
.primary-nav a{display:grid;align-items:center;color:var(--on-black-muted);font:600 13px var(--sans);white-space:nowrap;position:relative;transition:color .2s}
.primary-nav a:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--on-black);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.primary-nav a:hover,.primary-nav a.active{color:var(--on-black)}
.primary-nav a:hover:after,.primary-nav a.active:after{transform:scaleX(1)}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:18px}
.currency-label{display:flex;align-items:center;gap:8px;border:1px solid var(--black-line);color:var(--on-black);font:500 10px var(--mono);letter-spacing:.14em;padding:8px 11px;white-space:nowrap}
.currency-label i{width:6px;height:6px;border-radius:50%;background:var(--on-black);box-shadow:0 0 0 3px rgba(250,250,250,.14)}
.logout-button{border:0;background:transparent;color:var(--on-black-muted);font:600 12px var(--sans);white-space:nowrap;min-height:44px;transition:color .2s}
.logout-button:hover{color:var(--on-black)}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--on-black);color:var(--black);display:grid;place-items:center;font:700 11px var(--mono)}
.ticker{border-top:1px solid var(--black-line);overflow:hidden;height:30px;display:flex;align-items:center;background:var(--black-2)}
.ticker-track{display:flex;flex:none;white-space:nowrap;will-change:transform}
.ticker-track span{font:500 10px var(--mono);letter-spacing:.2em;color:var(--on-black-muted);padding:0 22px;display:flex;align-items:center;gap:22px}
.ticker-track span:after{content:"";width:5px;height:5px;background:var(--on-black-muted);transform:rotate(45deg)}

.page{max-width:1320px;margin:auto;padding:0 32px}
.eyebrow,.section-index{font:500 10px var(--mono);letter-spacing:.18em;color:var(--muted);text-transform:uppercase}
.eyebrow{display:inline-flex;align-items:center;gap:10px}
.eyebrow i{width:22px;height:1px;background:var(--ink)}

/* Intro */
.intro{display:grid;grid-template-columns:1fr 300px;gap:60px;align-items:end;padding:52px 0 40px;border-bottom:1px solid var(--ink)}
.intro h1{font:700 clamp(52px,7vw,104px)/.9 var(--display);letter-spacing:-.055em;margin:18px 0 22px;text-transform:uppercase}
.intro h1 em{text-transform:none;font-size:1.04em;letter-spacing:-.03em;color:var(--ink-2)}
.intro p{font-size:15px;line-height:1.65;color:var(--muted);max-width:540px;margin:0}
.intro-steps{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.intro-steps li{display:grid;grid-template-columns:44px 1fr;align-items:baseline;border-bottom:1px solid var(--line);padding:13px 0;font:600 12px var(--sans);letter-spacing:.02em;text-transform:uppercase}
.intro-steps b{font:400 22px var(--serif);font-style:italic}

/* Play layout */
.play-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr);gap:24px;padding:28px 0 0;align-items:stretch}

/* Ticket — notched, perforated, with a barcode stub */
.ticket-panel{--notch:13px;position:relative;background:var(--paper);border:1px solid var(--ink);box-shadow:8px 8px 0 var(--ink);display:flex;flex-direction:column}
.ticket-mast{height:44px;background:var(--black);color:var(--on-black);display:flex;align-items:center;justify-content:space-between;padding:0 30px;font:500 10px var(--mono);letter-spacing:.2em}
.ticket-mast span:last-child{color:var(--on-black-muted)}
.ticket-body{padding:32px 34px 26px;flex:1}
.ticket-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.ticket-heading h2,.board-head h2,.rules h2{font:700 36px/1.04 var(--display);letter-spacing:-.045em;margin:8px 0 0}
.ticket-mark{width:38px;height:38px;flex:none;stroke-width:1.5;transition:transform .45s var(--ease)}
.ticket-panel:hover .ticket-mark{transform:translate(3px,-3px)}
.ticket-instructions{font-size:14px;color:var(--muted);line-height:1.65;max-width:480px;margin:14px 0 26px}
.field{margin-top:20px}
.field label,.login-card label{display:flex;justify-content:space-between;gap:10px;font:500 10px var(--mono);letter-spacing:.16em;margin-bottom:9px}
.field label span{color:var(--muted)}
.input-wrap{height:56px;display:flex;align-items:center;background:#fff;border:1px solid var(--line-strong);transition:border-color .2s,box-shadow .2s}
.input-wrap:hover{border-color:var(--ink)}
.input-wrap:focus-within{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink),4px 4px 0 var(--ink)}
.input-wrap input{min-width:0;width:100%;height:100%;border:0;outline:0;background:transparent;padding:0 16px;font:500 16px var(--mono)}
.input-wrap input::placeholder{font:400 14px var(--sans);color:var(--faint)}
.code-input input{text-transform:uppercase;letter-spacing:.12em}
.code-input input::placeholder{text-transform:none;letter-spacing:0}
.paste-button{background:var(--ink);color:var(--paper);border:0;height:40px;margin-right:8px;padding:0 16px;font:500 10px var(--mono);letter-spacing:.16em;white-space:nowrap;transition:background .2s,transform .15s}
.paste-button:hover{background:var(--ink-2)}
.paste-button:active{transform:scale(.96)}
.input-prefix{font:500 20px var(--mono);padding-left:16px;color:var(--muted)}
.stake-input input{padding-left:10px}
.ticket-limit{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px dashed var(--line-strong);padding:20px 0 14px;margin-top:10px;gap:15px}
.ticket-limit span{font:500 10px var(--mono);letter-spacing:.14em;color:var(--muted)}
.ticket-limit strong{font:700 17px var(--mono);letter-spacing:-.02em}
.primary-button{position:relative;overflow:hidden;width:100%;min-height:56px;display:flex;justify-content:space-between;align-items:center;background:var(--ink);border:1px solid var(--ink);color:var(--paper);padding:0 20px;font:500 12px var(--mono);letter-spacing:.16em;margin-top:22px;text-align:left;isolation:isolate;transition:color .3s var(--ease),transform .15s}
.primary-button:before{content:"";position:absolute;inset:0;background:var(--paper);transform:translateY(101%);transition:transform .4s var(--ease);z-index:-1}
.primary-button:hover:not(:disabled){color:var(--ink)}
.primary-button:hover:not(:disabled):before{transform:translateY(0)}
.primary-button:active:not(:disabled){transform:scale(.985)}
.button-arrow{width:22px;height:22px;transition:transform .35s var(--ease)}
.primary-button:hover .button-arrow{transform:translate(3px,-3px)}
.message{min-height:20px;font-size:13px;line-height:1.5;margin:12px 0 0;color:var(--ink-2)}
.message:not(:empty):before{content:"→ ";font-family:var(--mono)}
.message.error{color:var(--ink);font-weight:600}
.message.error:not(:empty){border-left:3px solid var(--ink);padding-left:10px}
.message.error:not(:empty):before{content:"! ";}
.ticket-foot{position:relative;min-height:58px;border-top:1px dashed var(--ink);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 34px;font:500 10px var(--mono);letter-spacing:.14em;color:var(--muted)}
.ticket-foot:before,.ticket-foot:after{content:"";position:absolute;top:calc(var(--notch) * -1 - 1px);width:calc(var(--notch) * 2);height:calc(var(--notch) * 2);border-radius:50%;background:var(--bg);border:1px solid var(--ink)}
.ticket-foot:before{left:calc(var(--notch) * -1 - 1px);clip-path:inset(0 0 0 50%)}
.ticket-foot:after{right:calc(var(--notch) * -1 - 1px);clip-path:inset(0 50% 0 0)}
.barcode{width:120px;height:26px;flex:none;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 8px,var(--ink) 8px 11px,transparent 11px 12px,var(--ink) 12px 13px,transparent 13px 16px)}

/* Wallet + side stack */
.side-stack{display:flex;flex-direction:column;gap:20px;perspective:1100px}
.wallet-card{--gx:70%;--gy:20%;background:var(--black);color:var(--on-black);padding:24px;min-height:236px;display:flex;flex-direction:column;position:relative;overflow:hidden;transform-style:preserve-3d;will-change:transform;border:1px solid var(--black)}
.wallet-card:before{content:"";position:absolute;inset:0;color:#fff;opacity:.16;background-image:var(--dots);background-size:5px 5px;-webkit-mask-image:radial-gradient(120% 90% at 100% 0%,#000 0%,transparent 62%);mask-image:radial-gradient(120% 90% at 100% 0%,#000 0%,transparent 62%);pointer-events:none}
.wallet-card:after{content:"₦";position:absolute;right:-14px;bottom:-62px;font:700 220px/1 var(--display);color:transparent;-webkit-text-stroke:1px var(--black-line);opacity:.7;pointer-events:none;z-index:0}
.wallet-glare{position:absolute;inset:0;pointer-events:none;background:radial-gradient(420px circle at var(--gx) var(--gy),rgba(255,255,255,.14),transparent 45%);opacity:0;transition:opacity .3s;z-index:1}
.wallet-card:hover .wallet-glare{opacity:1}
.wallet-top,.wallet-bottom,.wallet-caption,.wallet-balance{position:relative;z-index:2}
.wallet-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font:500 10px var(--mono);letter-spacing:.18em;color:var(--on-black)}
.wallet-chip{width:34px;height:26px;border:1px solid #6b6b6b;border-radius:4px;background:linear-gradient(90deg,transparent 45%,#6b6b6b 45% 55%,transparent 55%),linear-gradient(0deg,transparent 45%,#6b6b6b 45% 55%,transparent 55%),#262626}
.wallet-caption{font:500 10px var(--mono);letter-spacing:.16em;color:var(--on-black-muted);margin-top:auto}
.wallet-balance{font:700 clamp(32px,3.2vw,48px)/1.1 var(--mono);letter-spacing:-.06em;margin:8px 0 18px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.wallet-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--black-line);padding-top:13px;font:500 10px var(--mono);letter-spacing:.1em;color:var(--on-black-muted)}
.wallet-bottom span:first-child{color:var(--on-black);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wallet-bottom span:last-child{white-space:nowrap}
.what-next{background:var(--paper);border:1px solid var(--line);padding:24px 26px;flex:1}
.what-next h3{font:600 26px/1.1 var(--display);letter-spacing:-.04em;margin:14px 0 12px}
.what-next p{font-size:14px;line-height:1.6;color:var(--muted);margin:0}
.what-next-rule{list-style:none;margin:22px 0 0;padding:14px 0 0;border-top:1px solid var(--ink);display:grid;grid-template-columns:repeat(3,1fr);gap:8px;font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.04em}
.what-next-rule li{display:grid;gap:4px}
.what-next-rule b{font:500 10px var(--mono);color:var(--muted);letter-spacing:.1em}

/* Board */
.board{background:var(--paper);border:1px solid var(--line);margin:36px 0 0;padding:28px 30px 16px;scroll-margin-top:110px}
.board-head{display:flex;justify-content:space-between;align-items:end;gap:20px}
.board-head h2{font-size:34px}
.refresh-button{display:inline-flex;align-items:center;gap:8px;min-height:44px;border:1px solid var(--line-strong);background:transparent;font:500 10px var(--mono);letter-spacing:.14em;padding:0 14px;transition:border-color .2s,background .2s,color .2s}
.refresh-button:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.refresh-button svg{width:15px;height:15px;transition:transform .5s var(--ease)}
.refresh-button:hover svg{transform:rotate(180deg)}
.ticket-filters,.auth-tabs{position:relative;display:flex;gap:28px;border-bottom:1px solid var(--line);margin-top:24px;overflow-x:auto;scrollbar-width:none}
.ticket-filters::-webkit-scrollbar{display:none}
.filter{border:0;background:transparent;padding:0 0 13px;min-height:40px;font:500 11px var(--mono);letter-spacing:.14em;color:var(--faint);white-space:nowrap;transition:color .2s}
.filter:hover,.filter.active{color:var(--ink)}
.filter-ink{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--ink);pointer-events:none}
.ticket-list{min-height:180px}
.empty-state{text-align:center;padding:40px 10px;color:var(--muted)}
.empty-symbol{display:block;width:44px;height:44px;margin:0 auto 14px;border:1px dashed var(--line-strong);border-radius:50%;position:relative}
.empty-symbol:after{content:"";position:absolute;inset:14px;border-radius:50%;background:var(--ink)}
.empty-state strong{font:500 11px var(--mono);letter-spacing:.16em;color:var(--ink)}
.empty-state p{font-size:14px;margin:8px 0}
.ticket{display:grid;grid-template-columns:1fr auto;gap:18px;padding:22px 0;border-bottom:1px solid var(--line);transition:background .2s}
.ticket:last-child{border-bottom:0}
.ticket-main{display:flex;align-items:center;gap:14px}
.ticket-code{font:700 24px var(--mono);letter-spacing:-.02em}
.ticket-meta{font:500 11px var(--mono);color:var(--muted);margin-top:6px;letter-spacing:.04em}
.ticket-details{font-size:14px;color:var(--ink-2);line-height:1.6;margin-top:10px;max-width:640px}
.ticket-details b{font-family:var(--mono)}
.ticket-details button{margin-top:12px;min-height:44px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font:500 11px var(--mono);letter-spacing:.12em;padding:0 16px;transition:background .2s,color .2s,transform .15s}
.ticket-details button:hover{background:transparent;color:var(--ink)}
.ticket-details button:active{transform:scale(.97)}
.status{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ink);padding:6px 9px;font:500 10px var(--mono);letter-spacing:.12em;white-space:nowrap}
.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.status.OPEN:before{animation:pulse 1.6s ease-in-out infinite}
.status.REVIEW{border-style:dashed}
.status.REVIEW:before{background:transparent;border:1px solid currentColor}
.status.READY{background:var(--paper-2)}
.status.WON{background:var(--ink);color:var(--paper)}
.status.LOST,.status.REJECTED{color:var(--muted);border-color:var(--line-strong);text-decoration:line-through}
.status.VOID{border-style:dotted;color:var(--muted)}
.ticket-amount{text-align:right;font:700 17px var(--mono);letter-spacing:-.02em;margin-top:12px}

/* Rules + footer */
.rules{border-top:1px solid var(--ink);display:grid;grid-template-columns:260px 1fr;gap:36px;margin:56px 0 64px;padding-top:26px;scroll-margin-top:110px}
.rules h2{font-size:32px}
.rules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.rules-grid>div{border-left:1px solid var(--line);padding-left:18px;transition:border-color .3s}
.rules-grid>div:hover{border-color:var(--ink)}
.rules-grid span{display:block;font:500 10px var(--mono);letter-spacing:.16em;color:var(--muted);margin-bottom:22px}
.rules-grid strong{display:block;font:600 17px var(--display);letter-spacing:-.02em}
.rules-grid p{font-size:14px;line-height:1.55;color:var(--muted);margin:8px 0 0}
.footer{background:var(--black);color:var(--on-black-muted);min-height:64px;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:0 max(32px,calc((100vw - 1256px)/2));font:500 10px var(--mono);letter-spacing:.16em}

/* Auth dialog */
.login-overlay{position:fixed;inset:0;z-index:10;background:rgba(10,10,10,.72);backdrop-filter:blur(6px) grayscale(1);-webkit-backdrop-filter:blur(6px) grayscale(1);display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto}
.login-card{width:min(440px,100%);background:var(--paper);border:1px solid var(--ink);margin:auto;padding:0 30px 26px;box-shadow:10px 10px 0 rgba(0,0,0,.45)}
.login-card-top{background:var(--black);color:var(--on-black);margin:0 -30px 28px;padding:15px 18px;display:flex;justify-content:space-between;gap:10px;font:500 10px var(--mono);letter-spacing:.14em}
.login-card-top span:last-child{color:var(--on-black-muted)}
.login-card h2{font:700 42px/1 var(--display);letter-spacing:-.05em;margin:12px 0}
.login-card p{font-size:14px;line-height:1.6;color:var(--muted)}
.auth-tabs{margin:24px 0 18px}
.login-card label{margin:18px 0 8px}
.login-card input{display:block;width:100%;height:50px;border:1px solid var(--line-strong);background:#fff;padding:0 14px;outline:0;font:500 16px var(--mono);transition:border-color .2s,box-shadow .2s}
.login-card input:focus{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink),4px 4px 0 var(--ink)}
.login-card .primary-button{margin-top:22px}
.auth-note{border-top:1px solid var(--line);padding-top:14px;margin:20px 0 0!important;font-size:12px!important}

/* Operator desk */
.admin-body{background:var(--bg)}
.admin-shell{min-height:100vh;position:relative;z-index:1}
.admin-header{background:var(--black);color:var(--on-black);padding:14px max(26px,calc((100vw - 1200px)/2));display:flex;align-items:center;justify-content:space-between;gap:16px}
.admin-header>span{font:500 10px var(--mono);letter-spacing:.16em;color:var(--on-black-muted)}
.admin-main{max-width:1200px;margin:auto;padding:46px 26px 72px}
.admin-main>.eyebrow{display:inline-flex}
.admin-title{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-top:14px;padding-bottom:26px;border-bottom:1px solid var(--ink)}
.admin-title h1{font:700 clamp(40px,5.4vw,64px)/.95 var(--display);letter-spacing:-.05em;margin:0}
.admin-title p{font-size:14px;color:var(--muted);margin:12px 0 0}
.admin-title-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.text-button{min-height:44px;border:1px solid var(--ink);background:transparent;padding:0 14px;font:500 10px var(--mono);letter-spacing:.14em;white-space:nowrap;transition:background .2s,color .2s}
.text-button:hover{background:var(--ink);color:var(--paper)}
.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:28px 0;border:1px solid var(--ink)}
.admin-stats>div{background:var(--paper);padding:22px 24px;border-left:1px solid var(--ink)}
.admin-stats>div:first-child{border-left:0;background:var(--black);color:var(--on-black)}
.admin-stats>div>span{font:500 10px var(--mono);letter-spacing:.16em;color:var(--muted)}
.admin-stats>div:first-child>span{color:var(--on-black-muted)}
.admin-stats strong{display:block;font:700 30px var(--mono);letter-spacing:-.05em;margin-top:20px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.admin-body .ticket-filters{margin-top:32px}
.admin-body .ticket-list{background:var(--paper);border:1px solid var(--line);border-top:0;min-height:190px;padding:0 24px}
.admin-body .ticket{display:block}
.admin-body .ticket-code{font-size:20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.admin-actions button{min-height:44px;background:var(--ink);border:1px solid var(--ink);color:var(--paper);padding:0 14px;font:500 10px var(--mono);letter-spacing:.1em;transition:background .2s,color .2s,transform .15s}
.admin-actions button:hover{background:var(--ink-2)}
.admin-actions button.outline{background:transparent;color:var(--ink)}
.admin-actions button.outline:hover{background:var(--ink);color:var(--paper)}
.admin-actions button:active{transform:scale(.97)}
.admin-disclaimer{font-size:13px;color:var(--muted);line-height:1.6;margin-top:24px;padding-left:12px;border-left:2px solid var(--ink)}

@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}

@media(max-width:950px){
  .masthead-inner{gap:28px}
  .intro{grid-template-columns:1fr 240px;gap:32px}
  .play-layout{grid-template-columns:1fr 300px}
  .wallet-balance{font-size:32px}
  .rules{grid-template-columns:210px 1fr}
}
@media(max-width:760px){
  .masthead-inner{padding:0 16px;min-height:60px;gap:16px}
  .brand-text{display:none}
  .primary-nav{gap:18px}
  .currency-label{display:none}
  .header-actions{gap:10px}
  .page{padding:0 16px}
  .intro{grid-template-columns:1fr;padding:36px 0 28px;gap:24px}
  .intro h1{font-size:clamp(46px,13vw,78px)}
  .play-layout{grid-template-columns:1fr;gap:22px}
  .side-stack{display:grid;grid-template-columns:1fr 1fr}
  .rules{grid-template-columns:1fr;gap:22px}
  .footer{padding:18px 16px;flex-wrap:wrap;min-height:80px}
}
@media(max-width:560px){
  .primary-nav a:last-child{display:none}
  .primary-nav{gap:14px}
  .masthead-inner{gap:12px}
  .brand-seal{width:32px;height:32px;font-size:12px}
  .intro-steps{display:none}
  .intro p{font-size:14px}
  .ticket-panel{box-shadow:5px 5px 0 var(--ink);--notch:10px}
  .ticket-body{padding:24px 20px 18px}
  .ticket-mast,.ticket-foot{padding-left:20px;padding-right:20px}
  .ticket-heading h2{font-size:30px}
  .ticket-limit strong{font-size:14px}
  .barcode{width:72px}
  .side-stack{grid-template-columns:1fr}
  .wallet-card{min-height:210px}
  .board{padding:22px 18px 10px;margin-top:30px}
  .board-head h2{font-size:28px}
  .ticket-filters{gap:20px}
  .ticket-code{font-size:19px}
  .ticket-amount{font-size:14px}
  .rules-grid{grid-template-columns:1fr;gap:18px}
  .rules-grid span{margin-bottom:10px}
  .login-card{padding:0 20px 22px}
  .login-card-top{margin:0 -20px 22px}
  .login-card h2{font-size:36px}
  .footer span:last-child{display:none}
  .admin-header>span{display:none}
  .admin-title{display:block}
  .admin-title-actions{margin-top:18px}
  .admin-stats{grid-template-columns:1fr}
  .admin-stats>div{border-left:0;border-top:1px solid var(--ink)}
  .admin-stats>div:first-child{border-top:0}
  .admin-main{padding:32px 16px}
  .admin-body .ticket-list{padding:0 16px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .fx-pending [data-reveal]{opacity:1}
}
