:root {
  --tisu-black: #050504;
  --tisu-panel: #0d0e0b;
  --tisu-panel-2: #13140f;
  --tisu-gold: #eeb64f;
  --tisu-gold-light: #ffe3a2;
  --tisu-gold-deep: #9e5d14;
  --tisu-cream: #f7edda;
  --tisu-muted: #9a978b;
  --tisu-line: rgba(236, 181, 77, 0.2);
  --tisu-line-strong: rgba(246, 197, 98, 0.5);
}

.tisu-player-body {
  min-width: 320px;
  min-height: 100svh;
  color: var(--tisu-cream);
  background: var(--tisu-black);
  overflow-x: hidden;
}

.tisu-player-body button,
.tisu-player-body input { font: inherit; }

.tisu-backdrop {
  position: fixed;
  inset: 0;
  z-index: -2;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% -8%, rgba(238, 182, 79, 0.18), transparent 31%),
    radial-gradient(circle at 18% 48%, rgba(119, 81, 25, 0.08), transparent 29%),
    radial-gradient(circle at 82% 70%, rgba(119, 81, 25, 0.07), transparent 28%),
    linear-gradient(145deg, #050504 0%, #0d0e0a 55%, #050504 100%);
}

.tisu-backdrop::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.25;
  background-image:
    repeating-linear-gradient(117deg, transparent 0 18px, rgba(255,255,255,.018) 18px 19px),
    repeating-linear-gradient(27deg, transparent 0 25px, rgba(236,181,77,.012) 25px 26px);
}

.tisu-backdrop i {
  position: absolute;
  width: 430px;
  aspect-ratio: 1;
  border: 1px solid rgba(232, 175, 68, 0.07);
  border-radius: 50%;
}

.tisu-backdrop i::after { content: ""; position: absolute; inset: 22%; border: 1px solid rgba(232,175,68,.06); border-radius: 50%; }
.tisu-backdrop i:nth-child(1) { left: -260px; top: 21%; }
.tisu-backdrop i:nth-child(2) { right: -260px; top: 9%; }
.tisu-backdrop i:nth-child(3) { left: 35%; bottom: -330px; }

.tisu-player-shell {
  width: min(1500px, 100%);
  min-height: 100svh;
  margin: 0 auto;
  padding: max(10px, env(safe-area-inset-top)) 18px max(14px, env(safe-area-inset-bottom));
}

.tisu-header {
  min-height: 68px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 14px;
  padding: 7px 10px 11px;
  border-bottom: 1px solid var(--tisu-line);
}

.tisu-logo-link {
  display: block;
  width: min(235px, 32vw);
  line-height: 0;
}

.tisu-logo-link img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 8px 22px rgba(232, 175, 68, 0.12));
}

.tisu-live {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid rgba(238, 182, 79, 0.15);
  border-radius: 999px;
  color: #8b897f;
  background: rgba(5, 5, 4, 0.72);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.15em;
}

.tisu-live span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #8fc878;
  box-shadow: 0 0 0 5px rgba(143,200,120,.08), 0 0 12px rgba(143,200,120,.4);
}

.tisu-admin-link {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid var(--tisu-line);
  border-radius: 9px;
  color: #a7a397;
  background: rgba(255,255,255,.015);
  text-decoration: none;
  font-size: 9px;
  letter-spacing: .08em;
}

.tisu-admin-link span { color: var(--tisu-gold); }

.tisu-event-page { padding-top: 12px; }

.event-title {
  display: grid;
  justify-items: center;
  padding: 8px 16px 17px;
  text-align: center;
}

.event-chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border: 1px solid var(--tisu-line);
  border-radius: 999px;
  color: var(--tisu-gold);
  background: rgba(236,181,77,.035);
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .2em;
}

.event-title h1 {
  margin: 7px 0 3px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 5vw, 54px);
  font-weight: 500;
  line-height: .98;
  letter-spacing: .035em;
  color: #fff2ca;
  text-shadow: 0 6px 26px rgba(229,164,48,.12);
}

.event-title h1 em {
  color: transparent;
  background: linear-gradient(180deg, #ffe8ac, #d69730 74%, #8f5214);
  -webkit-background-clip: text;
  background-clip: text;
  font-style: normal;
}

.event-title > p { margin: 3px 0 0; color: #858379; font-size: 10px; }

.game-steps {
  display: grid;
  grid-template-columns: auto 48px auto 48px auto;
  align-items: center;
  gap: 7px;
  margin-top: 13px;
}

.game-steps > span { display: grid; grid-template-columns: 21px auto; align-items: center; gap: 6px; color: #62635b; }
.game-steps b { width: 21px; height: 21px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; font-size: 8px; }
.game-steps em { font-size: 7px; font-style: normal; font-weight: 900; letter-spacing: .12em; }
.game-steps i { height: 1px; background: rgba(255,255,255,.07); }
.game-steps span.is-active { color: var(--tisu-gold-light); }
.game-steps span.is-active b { color: #241706; border-color: var(--tisu-gold); background: linear-gradient(135deg, #ffe5a1, #be7820); }
.game-steps span.is-active + i { background: linear-gradient(90deg, var(--tisu-gold), rgba(255,255,255,.07)); }

.tisu-event-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 14px;
}

.tisu-stage {
  position: relative;
  min-height: 720px;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 20px;
  border: 1px solid rgba(238,182,79,.34);
  border-radius: 28px;
  background:
    radial-gradient(ellipse at 50% 54%, rgba(168,113,31,.13), transparent 36%),
    radial-gradient(ellipse at 50% 54%, #161811 0%, #0b0d09 62%, #050604 100%);
  box-shadow: 0 30px 85px rgba(0,0,0,.58), inset 0 0 100px rgba(0,0,0,.5);
  isolation: isolate;
}

.tisu-stage::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(247,208,126,.09);
  border-radius: 21px;
  pointer-events: none;
}

.stage-orbit {
  position: absolute;
  width: min(660px, 75%);
  aspect-ratio: 1;
  border: 1px dashed rgba(238,182,79,.09);
  border-radius: 50%;
  animation: tisu-spin 55s linear infinite;
  z-index: -1;
}

.stage-orbit::before,
.stage-orbit::after { content: ""; position: absolute; border: 1px solid rgba(238,182,79,.06); border-radius: 50%; }
.stage-orbit::before { inset: 12%; }
.stage-orbit::after { inset: 29%; box-shadow: 0 0 70px rgba(231,167,50,.09); }

.stage-stars {
  position: absolute;
  inset: 0;
  opacity: .48;
  pointer-events: none;
  background:
    radial-gradient(circle at 16% 25%, #f8d991 0 1px, transparent 2px),
    radial-gradient(circle at 83% 21%, #f8d991 0 1px, transparent 2px),
    radial-gradient(circle at 12% 77%, #f8d991 0 1px, transparent 2px),
    radial-gradient(circle at 88% 72%, #f8d991 0 1px, transparent 2px),
    radial-gradient(circle at 55% 9%, #f8d991 0 1px, transparent 2px);
}

@keyframes tisu-spin { to { transform: rotate(360deg); } }

.tisu-ticket-gate {
  position: relative;
  z-index: 2;
  width: min(450px, 100%);
  padding: 30px 32px 26px;
  border: 1px solid var(--tisu-line-strong);
  border-radius: 24px;
  background: rgba(8,9,6,.95);
  box-shadow: 0 28px 80px rgba(0,0,0,.72), inset 0 0 46px rgba(226,164,48,.035);
  text-align: center;
}

.gate-brand {
  width: 78px;
  height: 78px;
  margin: 0 auto 16px;
  display: grid;
  place-items: center;
  border: 1px solid var(--tisu-line-strong);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(236,181,77,.2), transparent 67%);
  box-shadow: 0 0 35px rgba(222,158,44,.11);
}

.gate-brand > span { color: var(--tisu-gold); font-size: 11px; }
.gate-brand strong { display: block; color: var(--tisu-gold-light); font-family: Georgia, serif; font-size: 18px; font-weight: 500; line-height: .9; }
.gate-brand em { color: var(--tisu-gold); font-style: normal; }
.tisu-kicker { margin: 0; color: var(--tisu-gold); font-size: 7px; font-weight: 900; letter-spacing: .2em; }
.tisu-ticket-gate h2, .table-copy h2, .tisu-shuffle-table h2 {
  margin: 7px 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
}
.tisu-ticket-gate h2 { font-size: 27px; }
.gate-copy { max-width: 340px; margin: 9px auto 20px; color: var(--tisu-muted); font-size: 11px; line-height: 1.6; }
.tisu-ticket-gate form { display: grid; gap: 10px; }

.tisu-field { display: grid; gap: 7px; text-align: left; }
.tisu-field > span { color: #aaa598; font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.tisu-field input {
  width: 100%;
  height: 49px;
  padding: 0 14px;
  border: 1px solid rgba(235,180,77,.22);
  border-radius: 11px;
  outline: 0;
  color: var(--tisu-cream);
  background: rgba(2,3,2,.76);
  text-align: center;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .13em;
}
.tisu-field input:focus { border-color: var(--tisu-gold); box-shadow: 0 0 0 4px rgba(238,182,79,.08); }
.tisu-field input::placeholder { color: #595b54; }

.tisu-gold-button {
  min-height: 48px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 9px;
  padding: 0 19px;
  border: 0;
  border-radius: 11px;
  color: #211606;
  background: linear-gradient(135deg, #ffe7a7 0%, #e1a13a 62%, #a86116 100%);
  box-shadow: 0 12px 30px rgba(211,143,32,.18), inset 0 1px rgba(255,255,255,.66);
  cursor: pointer;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .09em;
  transition: transform .2s ease, filter .2s ease;
}
.tisu-gold-button:hover { transform: translateY(-1px); filter: brightness(1.06); }
.tisu-gold-button:active { transform: translateY(1px); }
.tisu-ticket-gate .tisu-gold-button { width: 100%; }
.tisu-error { padding: 10px; border: 1px solid rgba(225,100,87,.3); border-radius: 9px; color: #ffb5ad; background: rgba(225,100,87,.07); font-size: 10px; }
.tisu-demo { margin: 16px 0 0; color: #6e7067; font-size: 9px; }
.tisu-demo button, .tisu-link-button { padding: 0; border: 0; color: var(--tisu-gold); background: transparent; cursor: pointer; font-weight: 850; }

.tisu-game-table,
.tisu-shuffle-table {
  position: relative;
  z-index: 2;
  width: min(780px, 100%);
  display: grid;
  justify-items: center;
}

.tisu-player-ribbon {
  width: min(650px, 100%);
  min-height: 49px;
  display: grid;
  grid-template-columns: 34px 1fr 1px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border: 1px solid var(--tisu-line);
  border-radius: 12px;
  background: rgba(4,5,3,.72);
}
.player-avatar { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--tisu-line-strong); border-radius: 50%; color: #281a07; background: linear-gradient(135deg,#ffe3a0,#be7520); font-family: Georgia,serif; font-size: 14px; font-weight: 800; }
.tisu-player-ribbon > span:not(.player-avatar) { min-width: 0; }
.tisu-player-ribbon small { display: block; color: #696b63; font-size: 6px; font-weight: 900; letter-spacing: .15em; }
.tisu-player-ribbon strong { display: block; overflow: hidden; margin-top: 2px; color: #ddd3bc; font-size: 9px; white-space: nowrap; text-overflow: ellipsis; }
.tisu-player-ribbon > i { width: 1px; height: 22px; background: var(--tisu-line); }
.tisu-player-ribbon > b { color: var(--tisu-gold); font-size: 7px; letter-spacing: .12em; }

.table-copy { padding: 13px 0 11px; text-align: center; }
.table-copy h2 { font-size: clamp(23px, 3vw, 32px); }
.table-copy > p:last-child, .tisu-shuffle-table > p:not(.tisu-kicker) { margin: 5px 0 0; color: var(--tisu-muted); font-size: 9px; }

.tisu-card-grid {
  width: min(500px, 76vw);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px;
  perspective: 1100px;
}

.tisu-card {
  appearance: none;
  position: relative;
  aspect-ratio: .69;
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: transparent;
  cursor: pointer;
  transform-style: preserve-3d;
  transition: transform .24s ease, opacity .24s ease, filter .24s ease;
}
.tisu-card:disabled { cursor: default; }
.tisu-card:not(:disabled):hover { transform: translateY(-6px) scale(1.025); }
.tisu-card-inner { position: absolute; inset: 0; display: block; transform-style: preserve-3d; transition: transform .68s cubic-bezier(.2,.75,.25,1.12); }
.tisu-card.is-face-up .tisu-card-inner { transform: rotateY(180deg); }

.tisu-card-back,
.tisu-card-front {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(247,205,113,.68);
  border-radius: 12px;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  box-shadow: 0 13px 26px rgba(0,0,0,.46), inset 0 0 0 4px #15130b, inset 0 0 0 5px rgba(243,197,95,.24);
}

.tisu-card-back {
  grid-template-rows: auto 1fr auto;
  padding: 10px;
  background:
    radial-gradient(circle, rgba(217,154,41,.17), transparent 32%),
    repeating-linear-gradient(45deg, transparent 0 8px, rgba(241,195,93,.04) 8px 9px),
    linear-gradient(145deg,#11130c,#060704);
}

.card-number, .front-number { justify-self: start; color: #8d713b; font-size: 7px; font-weight: 900; letter-spacing: .12em; }
.tisu-card-back > small { color: #8b713d; font-size: 5px; font-weight: 900; letter-spacing: .18em; }
.back-seal { width: 61%; aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(243,198,99,.3); border-radius: 50%; background: radial-gradient(circle,rgba(228,169,52,.11),transparent 68%); }
.back-seal b { color: var(--tisu-gold); font-size: 8px; }
.back-seal strong { display: block; color: var(--tisu-gold-light); font-family: Georgia,serif; font-size: clamp(8px,1.2vw,13px); font-weight: 500; line-height: .9; }
.back-seal em { color: var(--tisu-gold); font-style: normal; }

.tisu-card-front {
  grid-template-rows: auto 1fr auto;
  padding: 9px;
  transform: rotateY(180deg);
  background: linear-gradient(145deg,#181911,#080905);
}

.front-number { color: var(--tisu-gold); font-family: Georgia,serif; font-size: 9px; }
.card-reward-copy { width: 100%; padding: 7px 2px 2px; border-top: 1px solid rgba(238,182,79,.15); text-align: center; }
.card-reward-copy small { display: block; color: #88867c; font-size: 5px; font-weight: 900; letter-spacing: .16em; }
.card-reward-copy strong { display: block; margin-top: 3px; color: var(--tisu-gold-light); font-family: Georgia,serif; font-size: clamp(8px,1.3vw,13px); font-weight: 500; }

.tisu-reward {
  --accent: #d5a24a;
  --glow: rgba(213,162,74,.21);
  position: relative;
  width: 79%;
  max-width: 91px;
  aspect-ratio: .88;
  display: grid;
  grid-template-rows: auto 1fr auto;
  place-items: center;
  padding: 8px 4px 6px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--accent) 54%, transparent);
  border-radius: 12px;
  background: radial-gradient(circle at 50% 43%,var(--glow),transparent 43%),linear-gradient(150deg,rgba(255,255,255,.05),transparent 35%),#0b0d08;
  box-shadow: inset 0 0 23px var(--glow),0 8px 18px rgba(0,0,0,.32);
}
.reward-shine { position: absolute; width: 66%; aspect-ratio: 1; border: 1px solid color-mix(in srgb,var(--accent) 34%,transparent); border-radius: 50%; }
.reward-shine::after { content:""; position:absolute; inset:17%; border:1px solid color-mix(in srgb,var(--accent) 25%,transparent); transform:rotate(45deg); }
.reward-suit { z-index:1; color:var(--accent); font-size:10px; }
.reward-roman { z-index:1; color:#fff0c8; font-family:Georgia,serif; font-size:clamp(15px,2vw,24px); text-shadow:0 0 15px var(--glow); }
.reward-tier { z-index:1; color:var(--accent); font-size:5px; font-weight:950; letter-spacing:.14em; }
.tisu-reward.is-compact { width:38px; height:38px; padding:4px 3px; border-radius:8px; }
.tisu-reward.is-compact .reward-suit { font-size:6px; }
.tisu-reward.is-compact .reward-roman { font-size:10px; }
.tisu-reward.is-compact .reward-tier { display:none; }
.tisu-reward-obsidian { --accent:#8b8981; --glow:rgba(120,120,114,.15); }
.tisu-reward-bronze { --accent:#c9844a; --glow:rgba(201,132,74,.2); }
.tisu-reward-silver { --accent:#bdc8cb; --glow:rgba(189,200,203,.18); }
.tisu-reward-sapphire { --accent:#6597cf; --glow:rgba(81,136,196,.22); }
.tisu-reward-emerald { --accent:#61aa7f; --glow:rgba(68,151,102,.2); }
.tisu-reward-gold { --accent:#edbd52; --glow:rgba(237,189,82,.25); }
.tisu-reward-platinum { --accent:#ded8c5; --glow:rgba(222,216,197,.2); }
.tisu-reward-royal { --accent:#bd82da; --glow:rgba(171,105,207,.22); }
.tisu-reward-legend { --accent:#ffd477; --glow:rgba(255,196,66,.3); }
.tisu-reward-special { --accent:#f5c95e; --glow:rgba(245,201,94,.25); }

.preview-action { display: grid; justify-items: center; gap: 12px; margin-top: 14px; }
.pulse-button { min-width: 245px; animation: button-glow 1.8s ease-in-out infinite; }
@keyframes button-glow { 50% { box-shadow:0 12px 34px rgba(222,153,37,.3),0 0 0 5px rgba(238,182,79,.055); } }
.tisu-link-button { color:#77786e; font-size:8px; letter-spacing:.08em; }

.is-closing .tisu-card-inner { animation: close-card .62s cubic-bezier(.3,.7,.3,1) both; animation-delay: calc(var(--delay) * .35); }
@keyframes close-card { from { transform:rotateY(180deg); } to { transform:rotateY(0); } }

.tisu-shuffle-table { text-align:center; }
.shuffle-zone { position:relative; width:360px; height:270px; margin:8px 0 10px; perspective:900px; }
.tisu-shuffle-deck { position:absolute; inset:0; }
.shuffle-piece {
  position:absolute;
  width:125px;
  height:176px;
  left:118px;
  top:42px;
  display:grid;
  place-items:center;
  border:2px solid rgba(247,205,113,.65);
  border-radius:12px;
  background:radial-gradient(circle,rgba(218,154,40,.17),transparent 34%),repeating-linear-gradient(45deg,transparent 0 8px,rgba(241,195,93,.04) 8px 9px),#090b07;
  box-shadow:0 16px 32px rgba(0,0,0,.5),inset 0 0 0 5px #14130b,inset 0 0 0 6px rgba(243,197,95,.22);
  animation:casino-riffle 1.1s ease-in-out infinite alternate;
  animation-delay:calc(var(--i) * -.08s);
}
.shuffle-piece::before { content:""; position:absolute; inset:18px; border:1px solid rgba(243,198,99,.25); transform:rotate(45deg); }
.shuffle-piece b { color:var(--tisu-gold); font-size:11px; }
.shuffle-piece strong { z-index:1; color:var(--tisu-gold-light); font-family:Georgia,serif; font-size:15px; }
.shuffle-piece:nth-child(odd) { animation-name:casino-riffle-left; }
@keyframes casino-riffle { 0%{transform:translateX(78px) rotate(10deg) translateY(calc(var(--i)*-1px));} 55%{transform:translateX(17px) rotate(2deg) translateY(calc(var(--i)*-2px));} 100%{transform:translateX(-9px) rotate(-1deg);} }
@keyframes casino-riffle-left { 0%{transform:translateX(-78px) rotate(-10deg) translateY(calc(var(--i)*-1px));} 55%{transform:translateX(-17px) rotate(-2deg) translateY(calc(var(--i)*-2px));} 100%{transform:translateX(9px) rotate(1deg);} }
.dealer-hand { position:absolute; z-index:4; width:90px; height:34px; top:110px; border-radius:50%; background:linear-gradient(180deg,rgba(255,226,186,.08),transparent); filter:blur(3px); }
.dealer-hand.left { left:3px; transform:rotate(14deg); }
.dealer-hand.right { right:3px; transform:rotate(-14deg); }
.tisu-shuffle-table h2 { font-size:clamp(26px,4vw,38px); }
.tisu-progress { width:min(300px,76%); height:3px; margin-top:22px; overflow:hidden; border-radius:99px; background:rgba(255,255,255,.05); }
.tisu-progress span { display:block; width:100%; height:100%; background:linear-gradient(90deg,transparent,var(--tisu-gold),transparent); animation:progress-run 1.05s ease-in-out infinite; }
@keyframes progress-run { from{transform:translateX(-100%)} to{transform:translateX(100%)} }

.tisu-card-grid.is-dealing .tisu-card { animation:tisu-deal .56s cubic-bezier(.16,.86,.32,1.12) both; animation-delay:var(--delay); }
@keyframes tisu-deal { 0%{opacity:0;transform:translate(var(--deal-x),var(--deal-y)) scale(.62) rotate(-5deg)} 60%{opacity:1} 100%{opacity:1;transform:translate(0) scale(1) rotate(0)} }
.tisu-card.is-picked { z-index:4; filter:drop-shadow(0 0 19px rgba(242,188,73,.28)); }
.tisu-card.is-picked .tisu-card-front { border-color:var(--tisu-gold-light); box-shadow:0 18px 40px rgba(0,0,0,.6),0 0 0 2px var(--tisu-gold),0 0 36px rgba(236,179,57,.22),inset 0 0 0 4px #15130b; }
.tisu-card-grid.has-picked .tisu-card:not(.is-picked) { opacity:.31; filter:grayscale(.55); transform:scale(.95); }

.play-status { width:min(520px,100%); display:flex; justify-content:space-between; gap:10px; margin-top:12px; color:#707168; font-size:7px; font-weight:900; letter-spacing:.11em; }
.play-status span { display:inline-flex; align-items:center; gap:7px; }
.play-status i { width:6px; height:6px; border-radius:50%; background:#89c378; box-shadow:0 0 9px rgba(137,195,120,.45); }
.play-status b { color:#8d7543; }

.tisu-prize-bar {
  min-height:720px;
  padding:19px 16px;
  border:1px solid var(--tisu-line);
  border-radius:28px;
  background:linear-gradient(145deg,rgba(255,226,158,.024),transparent 32%),rgba(14,16,11,.91);
  box-shadow:0 28px 70px rgba(0,0,0,.46);
}
.tisu-prize-bar header { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:2px 2px 14px; border-bottom:1px solid var(--tisu-line); }
.tisu-prize-bar header small { display:block; color:var(--tisu-gold); font-size:6px; font-weight:900; letter-spacing:.16em; }
.tisu-prize-bar header strong { display:block; margin-top:4px; font-family:Georgia,serif; font-size:15px; font-weight:500; }
.tisu-prize-bar header > b { padding:7px 9px; border:1px solid var(--tisu-line-strong); border-radius:9px; color:var(--tisu-gold-light); font-family:Georgia,serif; font-size:11px; font-weight:500; line-height:1.05; text-align:center; }
.prize-bar-grid { display:grid; gap:6px; margin-top:12px; }
.prize-bar-item { min-height:55px; display:grid; grid-template-columns:38px 1fr; align-items:center; gap:9px; padding:7px 8px; border:1px solid rgba(236,181,77,.085); border-radius:10px; background:rgba(255,255,255,.012); }
.prize-bar-item:first-child { border-color:rgba(244,199,100,.3); background:radial-gradient(circle at left,rgba(224,160,43,.12),transparent 70%); }
.prize-bar-item small { display:block; color:#727269; font-size:6px; font-weight:900; letter-spacing:.14em; }
.prize-bar-item strong { display:block; margin-top:2px; color:#d8caaa; font-family:Georgia,serif; font-size:11px; font-weight:500; }
.tisu-prize-bar > p { display:flex; gap:7px; margin:13px 2px 0; color:#696b62; font-size:8px; line-height:1.45; }
.tisu-prize-bar > p span { color:var(--tisu-gold); }

.tisu-result-backdrop { position:fixed; inset:0; z-index:80; display:grid; place-items:center; padding:18px; background:rgba(2,3,2,.88); backdrop-filter:blur(10px); animation:result-fade .25s ease both; }
@keyframes result-fade { from{opacity:0} }
.tisu-result-sheet { position:relative; width:min(470px,100%); max-height:calc(100svh - 36px); overflow:auto; padding:28px 30px 27px; border:1px solid var(--tisu-line-strong); border-radius:25px; background:linear-gradient(150deg,#17180f,#080905); box-shadow:0 38px 110px rgba(0,0,0,.82),inset 0 0 55px rgba(231,174,62,.04); text-align:center; }
.result-handle { display:none; }
.result-burst { position:absolute; width:350px; aspect-ratio:1; left:50%; top:-150px; transform:translateX(-50%); opacity:.13; background:repeating-conic-gradient(from 0deg,var(--tisu-gold) 0 2deg,transparent 2deg 16deg); border-radius:50%; animation:tisu-spin 24s linear infinite; pointer-events:none; }
.result-close { position:absolute; z-index:2; top:13px; right:13px; width:32px; height:32px; border:1px solid var(--tisu-line); border-radius:50%; color:#929086; background:transparent; cursor:pointer; }
.result-logo { position:relative; z-index:1; display:block; width:155px; height:auto; margin:0 auto 12px; }
.tisu-result-sheet > .tisu-reward { width:94px; margin:0 auto 16px; }
.tisu-result-sheet > .tisu-reward .reward-roman { font-size:28px; }
.tisu-result-sheet h2 { margin:7px 0 0; font-family:Georgia,serif; font-size:28px; font-weight:500; }
.tisu-result-sheet > p:not(.tisu-kicker):not(.result-note) { margin:7px 0 0; color:var(--tisu-muted); font-size:10px; }
.sheet-prize { margin:18px 0 12px; padding:15px; border-block:1px solid var(--tisu-line); }
.sheet-prize small { display:block; color:var(--tisu-gold); font-size:7px; font-weight:900; letter-spacing:.17em; }
.sheet-prize strong { display:block; margin-top:5px; color:var(--tisu-gold-light); font-family:Georgia,serif; font-size:26px; font-weight:500; }
.result-ticket { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:9px; padding:10px 12px; border:1px dashed var(--tisu-line-strong); border-radius:9px; text-align:left; }
.result-ticket span { color:#77786f; font-size:7px; font-weight:900; }
.result-ticket strong { color:#ddd4bd; font-size:9px; letter-spacing:.08em; }
.result-ticket em { padding:4px 6px; border-radius:999px; color:#cfb46d; background:rgba(238,182,79,.09); font-size:6px; font-style:normal; font-weight:900; }
.result-note { margin:11px 0 17px; color:#74766c; font-size:8px; }
.tisu-result-sheet > .tisu-gold-button { width:100%; }

.tisu-footer { display:flex; justify-content:space-between; padding:16px 8px 0; color:#5f6159; font-size:7px; font-weight:800; letter-spacing:.12em; }

@media (max-width:1050px) {
  .tisu-event-layout { grid-template-columns:1fr; }
  .tisu-prize-bar { min-height:0; }
  .prize-bar-grid { grid-template-columns:repeat(3,1fr); }
}

@media (max-width:700px) {
  .tisu-player-shell { padding-inline:10px; }
  .tisu-header { position:relative; min-height:58px; grid-template-columns:1fr auto; padding:5px 2px 8px; }
  .tisu-logo-link { width:168px; }
  .tisu-live { display:none; }
  .tisu-admin-link { min-width:36px; padding:0 10px; }
  .tisu-admin-link b { display:none; }
  .tisu-event-page { padding-top:7px; }
  .event-title { padding:6px 8px 13px; }
  .event-title h1 { margin-top:6px; font-size:clamp(29px,9vw,40px); }
  .event-title > p { max-width:310px; font-size:9px; line-height:1.4; }
  .game-steps { grid-template-columns:auto 32px auto 32px auto; margin-top:10px; }
  .game-steps > span { grid-template-columns:19px auto; gap:4px; }
  .game-steps b { width:19px; height:19px; }
  .tisu-stage { min-height:0; padding:15px 10px 18px; border-radius:21px; }
  .tisu-stage::before { inset:6px; border-radius:16px; }
  .stage-orbit { width:110vw; }
  .tisu-ticket-gate { width:100%; max-width:420px; padding:25px 18px 22px; border-radius:18px; }
  .gate-brand { width:67px; height:67px; }
  .tisu-game-table, .tisu-shuffle-table { width:100%; }
  .tisu-player-ribbon { width:100%; grid-template-columns:31px minmax(0,1fr) 1px minmax(0,1fr) auto; gap:7px; }
  .player-avatar { width:29px; height:29px; }
  .table-copy { padding:11px 5px 9px; }
  .table-copy h2 { font-size:24px; }
  .table-copy > p:last-child { max-width:320px; margin:4px auto 0; line-height:1.4; }
  .tisu-card-grid { width:min(390px,91vw); gap:6px; }
  .tisu-card, .tisu-card-back, .tisu-card-front { border-radius:9px; }
  .tisu-card-back, .tisu-card-front { padding:7px; }
  .tisu-reward { border-radius:8px; padding:5px 3px; }
  .reward-suit { font-size:7px; }
  .reward-tier { display:none; }
  .card-reward-copy { padding-top:4px; }
  .preview-action { margin-top:12px; }
  .preview-action .tisu-gold-button { min-height:46px; }
  .shuffle-zone { width:310px; height:230px; transform:scale(.88); margin-block:-6px -2px; }
  .shuffle-piece { left:93px; top:31px; }
  .tisu-shuffle-table > p:not(.tisu-kicker) { margin-top:4px; }
  .play-status { padding-inline:4px; }
  .tisu-prize-bar { display:none; }
  .tisu-footer { padding-top:12px; }
}

@media (max-width:390px) {
  .tisu-logo-link { width:149px; }
  .event-chip { min-height:21px; font-size:6px; }
  .event-title h1 { font-size:30px; }
  .game-steps em { font-size:6px; }
  .tisu-stage { padding-inline:8px; }
  .tisu-player-ribbon { grid-template-columns:28px minmax(0,1fr) 1px minmax(0,1fr); }
  .tisu-player-ribbon > b { display:none; }
  .player-avatar { width:27px; height:27px; }
  .table-copy h2 { font-size:22px; }
  .tisu-card-grid { width:calc(100vw - 38px); gap:5px; }
  .back-seal { width:57%; }
  .tisu-card-back > small { display:none; }
  .card-reward-copy strong { font-size:8px; }
  .pulse-button { min-width:225px; }
  .shuffle-zone { transform:scale(.78); margin-block:-20px -16px; }
  .play-status { font-size:6px; }
  .tisu-result-backdrop { align-items:end; padding:0; }
  .tisu-result-sheet { width:100%; max-height:92svh; padding:17px 20px max(20px,env(safe-area-inset-bottom)); border-radius:24px 24px 0 0; border-bottom:0; }
  .result-handle { display:block; width:38px; height:4px; margin:0 auto 9px; border-radius:99px; background:rgba(255,255,255,.13); }
  .result-logo { width:126px; margin-bottom:8px; }
  .tisu-result-sheet > .tisu-reward { width:77px; margin-bottom:11px; }
  .tisu-result-sheet > .tisu-reward .reward-roman { font-size:23px; }
  .tisu-result-sheet h2 { font-size:24px; }
  .sheet-prize { margin-block:13px 10px; padding:11px; }
  .sheet-prize strong { font-size:22px; }
}

@media (prefers-reduced-motion:reduce) {
  .tisu-player-body *, .tisu-player-body *::before, .tisu-player-body *::after {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* TISU4D admin ----------------------------------------------------------- */
.tisu-admin-body {
  min-width:320px;
  min-height:100svh;
  color:var(--tisu-cream);
  background:var(--tisu-black);
  overflow-x:hidden;
}

.tisu-admin-shell {
  width:min(1460px,100%);
  min-height:100svh;
  margin:0 auto;
  padding:max(10px,env(safe-area-inset-top)) 18px max(14px,env(safe-area-inset-bottom));
}

.tisu-admin-header {
  min-height:68px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:14px;
  padding:7px 10px 11px;
  border-bottom:1px solid var(--tisu-line);
}

.tisu-admin-status {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border:1px solid var(--tisu-line);
  border-radius:999px;
  color:#8c8a80;
  background:rgba(5,5,4,.72);
  font-size:8px;
  font-weight:900;
  letter-spacing:.14em;
}
.tisu-admin-status span { width:7px; height:7px; border-radius:50%; background:#8fc878; box-shadow:0 0 0 5px rgba(143,200,120,.08); }

.tisu-player-link {
  justify-self:end;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0 12px;
  border:1px solid var(--tisu-line);
  border-radius:9px;
  color:#aaa69a;
  background:rgba(255,255,255,.015);
  text-decoration:none;
  font-size:8px;
  letter-spacing:.1em;
}
.tisu-player-link span { color:var(--tisu-gold); }

.tisu-admin-body .login-wrap { min-height:calc(100svh - 110px); }
.tisu-admin-body .login-card {
  width:min(430px,100%);
  padding:30px;
  border:1px solid var(--tisu-line-strong);
  border-radius:23px;
  background:linear-gradient(145deg,rgba(255,228,166,.025),transparent 32%),rgba(10,11,7,.95);
  box-shadow:0 32px 90px rgba(0,0,0,.68),inset 0 0 45px rgba(229,168,54,.035);
}
.admin-login-logo { display:block; width:190px; height:auto; margin:0 auto 17px; }
.tisu-admin-body .login-card h1 { margin-top:7px; color:var(--tisu-cream); font-size:29px; }
.tisu-admin-body .login-card > p { color:var(--tisu-muted); }
.tisu-admin-body .field-label { color:#aaa598; font-size:8px; letter-spacing:.11em; }
.tisu-admin-body .text-input,
.tisu-admin-body .select-input {
  border-color:rgba(235,180,77,.2);
  color:var(--tisu-cream);
  background:rgba(3,4,2,.76);
}
.tisu-admin-body .text-input:focus,
.tisu-admin-body .select-input:focus { border-color:var(--tisu-gold); box-shadow:0 0 0 4px rgba(238,182,79,.07); }
.tisu-admin-body .gold-button {
  color:#211606;
  background:linear-gradient(135deg,#ffe7a7,#e1a13a 62%,#a86116);
  box-shadow:0 12px 30px rgba(211,143,32,.17),inset 0 1px rgba(255,255,255,.65);
  font-size:9px;
  letter-spacing:.07em;
}

.tisu-admin-body .admin-page { padding-top:25px; }
.tisu-admin-body .admin-title { margin-bottom:18px; }
.tisu-admin-body .admin-title h1 { color:var(--tisu-cream); font-size:clamp(28px,4vw,41px); }
.tisu-admin-body .admin-title p:last-child { color:var(--tisu-muted); }
.tisu-admin-body .ghost-button { border-color:var(--tisu-line); background:rgba(255,255,255,.018); }
.tisu-admin-body .danger-button { border-color:rgba(225,100,87,.26); }

.tisu-admin-body .stat-grid { gap:11px; }
.tisu-admin-body .stat-card {
  padding:18px;
  border:1px solid var(--tisu-line);
  border-radius:15px;
  background:linear-gradient(145deg,rgba(255,226,158,.025),transparent 35%),rgba(15,17,11,.88);
  box-shadow:0 14px 35px rgba(0,0,0,.18);
}
.tisu-admin-body .stat-card p { color:#838177; font-size:8px; }
.tisu-admin-body .stat-card strong { color:#f2e8ce; font-size:27px; }
.tisu-admin-body .stat-card small { color:#686a61; font-size:8px; }

.tisu-admin-body .admin-grid { gap:13px; }
.tisu-admin-body .admin-panel {
  overflow:hidden;
  border:1px solid var(--tisu-line);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(255,226,158,.018),transparent 32%),rgba(14,16,11,.9);
  box-shadow:0 18px 45px rgba(0,0,0,.22);
}
.tisu-admin-body .panel-heading { padding:17px 18px; border-color:var(--tisu-line); }
.tisu-admin-body .panel-heading h2 { color:#eee3ca; font-size:18px; }
.tisu-admin-body .panel-heading p { color:#74756c; font-size:8px; }
.tisu-admin-body .panel-count { border-color:var(--tisu-line); color:var(--tisu-gold); }
.tisu-admin-body .ticket-form { gap:13px; padding:18px; }
.tisu-admin-body .form-divider { background:var(--tisu-line); }
.tisu-admin-body .field-help { color:#696b62; font-size:8px; }
.tisu-admin-body .preview-prize { border-color:var(--tisu-line); background:rgba(235,177,64,.035); }
.tisu-admin-body .preview-prize span { color:#77776e; font-size:9px; }
.tisu-admin-body .preview-prize strong { color:var(--tisu-gold-light); font-size:16px; }

.tisu-admin-body .table-toolbar { padding:12px 15px; border-color:var(--tisu-line); }
.tisu-admin-body .ticket-table th { color:#74756b; background:#0e100b; border-color:var(--tisu-line); font-size:7px; }
.tisu-admin-body .ticket-table td { border-color:rgba(236,181,77,.075); color:#c9c2af; font-size:9px; }
.tisu-admin-body .ticket-table tr:hover td { background:rgba(238,182,79,.022); }
.tisu-admin-body .player-cell strong { font-size:10px; }
.tisu-admin-body .player-cell small { color:#66685f; font-size:7px; }
.tisu-admin-body .code-cell { color:var(--tisu-gold); }
.tisu-admin-body .status-badge { font-size:7px; }
.tisu-admin-body .icon-button { border-color:var(--tisu-line); color:#aaa699; background:rgba(255,255,255,.01); font-size:8px; }
.tisu-admin-body .icon-button:hover { border-color:var(--tisu-line-strong); color:var(--tisu-gold-light); }
.tisu-admin-body .audit-panel { margin-top:13px; }
.tisu-admin-body .audit-item { border-color:rgba(236,181,77,.07); font-size:8px; }
.tisu-admin-body .audit-tag { color:var(--tisu-gold); }

.tisu-admin-body .modal-backdrop { background:rgba(2,3,2,.88); backdrop-filter:blur(10px); }
.tisu-admin-body .print-modal,
.tisu-admin-body .control-modal {
  border-color:var(--tisu-line-strong);
  background:linear-gradient(145deg,#17180f,#080905);
  box-shadow:0 38px 110px rgba(0,0,0,.82),inset 0 0 55px rgba(231,174,62,.035);
}
.print-logo { display:block; width:155px; height:auto; margin:0 auto 8px; }
.tisu-admin-body .print-ticket { border-color:var(--tisu-line-strong); }
.tisu-admin-body .print-brand { color:var(--tisu-gold); }
.tisu-admin-body .modal-close { border-color:var(--tisu-line); }
.tisu-admin-body .modal-ticket { border-color:var(--tisu-line); }
.tisu-admin-body .modal-ticket strong { color:var(--tisu-gold); }

@media (max-width:720px) {
  .tisu-admin-shell { padding-inline:10px; }
  .tisu-admin-header { min-height:58px; grid-template-columns:1fr auto; padding:5px 2px 8px; }
  .tisu-admin-header .tisu-logo-link { width:168px; }
  .tisu-admin-status { display:none; }
  .tisu-player-link { min-width:36px; padding:0 10px; }
  .tisu-player-link b { display:none; }
  .tisu-admin-body .admin-page { padding-top:18px; }
  .tisu-admin-body .admin-title { gap:14px; }
  .tisu-admin-body .admin-title p:last-child { line-height:1.45; }
  .tisu-admin-body .stat-grid { grid-template-columns:1fr 1fr; }
  .tisu-admin-body .stat-card { padding:14px; }
  .tisu-admin-body .stat-card strong { font-size:23px; }
  .tisu-admin-body .admin-grid { grid-template-columns:1fr; }
  .tisu-admin-body .ticket-table-wrap { max-height:none; }
  .tisu-admin-body .audit-item { grid-template-columns:1fr auto; gap:6px; }
  .tisu-admin-body .audit-time { grid-column:1/-1; }
}

@media (max-width:390px) {
  .tisu-admin-header .tisu-logo-link { width:149px; }
  .tisu-admin-body .login-card { padding:24px 18px; }
  .admin-login-logo { width:160px; }
  .tisu-admin-body .admin-title h1 { font-size:29px; }
  .tisu-admin-body .admin-actions { width:100%; }
  .tisu-admin-body .admin-actions button { flex:1; }
  .tisu-admin-body .stat-card p { font-size:7px; }
  .tisu-admin-body .stat-card strong { font-size:20px; }
  .tisu-admin-body .table-toolbar { flex-direction:column; }
  .tisu-admin-body .filter-select { width:100%; }
  .tisu-admin-body .print-modal,
  .tisu-admin-body .control-modal { width:100%; padding:24px 17px; border-radius:22px; }
}

/* Supplied TISU4D character and card artwork ---------------------------- */
.event-title {
  position:relative;
  z-index:6;
  width:min(720px,calc(100% - 36px));
  margin:0 auto -22px;
  padding:14px 40px 22px;
  border:1px solid rgba(247,199,99,.48);
  border-top-color:rgba(247,199,99,.24);
  border-radius:8px 8px 28px 28px;
  background:linear-gradient(180deg,#0d0e0a,#070805);
  box-shadow:0 18px 45px rgba(0,0,0,.52),inset 0 -2px rgba(237,176,60,.12);
}

.event-title::before,
.event-title::after {
  content:"";
  position:absolute;
  top:-1px;
  width:150px;
  height:3px;
  background:linear-gradient(90deg,transparent,#edb44c);
  box-shadow:0 0 13px rgba(237,180,76,.38);
}
.event-title::before { left:-118px; transform:rotate(3deg); }
.event-title::after { right:-118px; transform:scaleX(-1) rotate(3deg); }
.event-title h1 { font-size:clamp(31px,4.3vw,50px); }

.tisu-stage {
  min-height:840px;
  padding:52px 18px 22px;
  place-items:stretch;
}

.tisu-stage-content {
  position:relative;
  z-index:3;
  width:100%;
  min-height:100%;
  display:grid;
  place-items:center;
  padding-left:260px;
}

.tisu-character-layer {
  position:absolute;
  z-index:2;
  left:0;
  bottom:0;
  width:340px;
  height:730px;
  overflow:hidden;
  pointer-events:none;
  -webkit-mask-image:linear-gradient(to right,#000 0 77%,transparent 100%);
  mask-image:linear-gradient(to right,#000 0 77%,transparent 100%);
}

.tisu-character-layer::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(5,6,4,.2),transparent 30%),linear-gradient(to right,transparent 55%,rgba(7,8,5,.3));
}

.tisu-character-layer img {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:50% 8%;
  filter:drop-shadow(18px 12px 32px rgba(0,0,0,.7));
}

.tisu-character-layer > span {
  position:absolute;
  z-index:3;
  left:18px;
  bottom:20px;
  display:grid;
  padding:10px 12px;
  border-left:2px solid var(--tisu-gold);
  background:linear-gradient(90deg,rgba(5,6,4,.88),transparent);
  text-shadow:0 2px 6px #000;
}
.tisu-character-layer small { color:var(--tisu-gold); font-size:6px; font-weight:900; letter-spacing:.18em; }
.tisu-character-layer strong { margin-top:2px; font-family:Georgia,serif; font-size:17px; font-weight:500; }
.tisu-character-layer em { margin-top:2px; color:#969388; font-size:7px; font-style:normal; }

.tisu-game-table,
.tisu-shuffle-table { max-width:630px; }

.tisu-card-grid { width:min(420px,100%); gap:9px; }
.tisu-card { aspect-ratio:.58; }

.tisu-card-front {
  display:block;
  padding:0;
  background:linear-gradient(145deg,#17150d,#050604);
}

.tisu-card-art {
  position:relative;
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:inherit;
  background:#050604;
}

.tisu-card-art img {
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  filter:saturate(1.04) contrast(1.03);
}

.tisu-card-art.custom-art {
  align-content:center;
  gap:8px;
  padding:12px;
  border:1px solid var(--tisu-line-strong);
  color:var(--tisu-gold-light);
  background:radial-gradient(circle,rgba(235,176,59,.18),transparent 58%),#090a06;
  text-align:center;
}
.tisu-card-art.custom-art b { font-size:26px; }
.tisu-card-art.custom-art strong { font-family:Georgia,serif; font-size:12px; font-weight:500; }

.tisu-card-art.is-compact {
  width:40px;
  height:62px;
  border:1px solid rgba(244,195,94,.32);
  border-radius:7px;
  box-shadow:0 5px 12px rgba(0,0,0,.34);
}

.prize-bar-item {
  min-height:72px;
  grid-template-columns:40px 1fr;
}
.tisu-prize-bar { min-height:840px; }

.tisu-result-sheet > .tisu-card-art {
  width:118px;
  height:226px;
  margin:0 auto 14px;
  border:1px solid var(--tisu-line-strong);
  border-radius:12px;
  box-shadow:0 16px 35px rgba(0,0,0,.5),0 0 28px rgba(237,178,57,.12);
}

@media (max-width:1180px) and (min-width:701px) {
  .tisu-stage-content { padding-left:205px; }
  .tisu-character-layer { width:275px; height:660px; }
  .tisu-card-grid { width:380px; }
}

@media (max-width:700px) {
  .event-title {
    width:calc(100% - 12px);
    margin-bottom:-12px;
    padding:12px 12px 16px;
    border-radius:7px 7px 20px 20px;
  }
  .event-title::before,
  .event-title::after { display:none; }
  .event-title h1 { font-size:clamp(27px,8vw,36px); }
  .tisu-stage { display:block; min-height:0; padding:25px 8px 16px; }
  .tisu-character-layer {
    position:relative;
    left:auto;
    bottom:auto;
    width:100%;
    height:138px;
    margin-bottom:8px;
    border:1px solid rgba(239,184,78,.16);
    border-radius:14px;
    background:#080905;
    -webkit-mask-image:none;
    mask-image:none;
  }
  .tisu-character-layer::after { background:linear-gradient(90deg,transparent 30%,rgba(7,8,5,.7) 60%,#070805 100%); }
  .tisu-character-layer img {
    width:178px;
    height:238px;
    margin-top:-36px;
    object-position:50% 7%;
    -webkit-mask-image:linear-gradient(to right,#000 0 76%,transparent 100%);
    mask-image:linear-gradient(to right,#000 0 76%,transparent 100%);
  }
  .tisu-character-layer > span {
    left:auto;
    right:13px;
    bottom:50%;
    width:48%;
    padding:8px 0 8px 10px;
    transform:translateY(50%);
    background:transparent;
    text-align:left;
  }
  .tisu-character-layer strong { font-size:16px; }
  .tisu-character-layer em { line-height:1.35; }
  .tisu-stage-content { min-height:0; padding-left:0; }
  .tisu-card-grid { width:min(365px,calc(100vw - 42px)); gap:5px; }
  .tisu-card { aspect-ratio:.57; }
  .tisu-card-back { padding:6px; }
  .tisu-card-art.is-compact { width:34px; height:52px; }
  .tisu-result-sheet > .tisu-card-art { width:102px; height:195px; }
}

@media (max-width:390px) {
  .tisu-character-layer { height:124px; }
  .tisu-character-layer img { width:160px; height:215px; }
  .tisu-character-layer > span { right:9px; width:50%; }
  .tisu-character-layer em { font-size:6px; }
  .tisu-card-grid { width:calc(100vw - 34px); gap:4px; }
}

/* 2026 VPS edition — closer to the supplied casino event reference -------- */
.tisu-player-shell {
  width:min(1480px,100%);
  padding:14px 14px max(16px,env(safe-area-inset-bottom));
}

.tisu-header {
  min-height:76px;
  padding:10px 16px 13px;
  border:1px solid rgba(236,181,77,.25);
  border-bottom-color:rgba(236,181,77,.16);
  border-radius:25px 25px 0 0;
  background:linear-gradient(180deg,rgba(16,17,13,.94),rgba(6,7,5,.9));
  box-shadow:0 14px 45px rgba(0,0,0,.42),inset 0 1px rgba(255,226,156,.03);
}

.tisu-logo-link { width:min(216px,31vw); }
.tisu-admin-link { min-height:42px; padding:0 15px; border-radius:13px; }
.tisu-live { padding:9px 15px; border-radius:12px; }

.tisu-event-page { padding-top:60px; }

.event-title {
  width:min(760px,calc(100% - 48px));
  margin:0 auto -31px;
  padding:27px 44px 20px;
  border:2px solid rgba(247,199,99,.57);
  border-top-color:rgba(247,199,99,.28);
  border-radius:4px 4px 34px 34px;
  background:
    linear-gradient(110deg,transparent 0 7%,rgba(255,213,123,.04) 7.2% 8%,transparent 8.2% 92%,rgba(255,213,123,.04) 92.2% 93%,transparent 93.2%),
    linear-gradient(180deg,#11110e 0%,#080906 76%,#050604 100%);
  box-shadow:0 22px 55px rgba(0,0,0,.7),0 0 28px rgba(226,159,42,.08),inset 0 -3px rgba(237,176,60,.13);
}

.event-title::before,
.event-title::after { top:-2px; width:205px; height:4px; }
.event-title::before { left:-173px; }
.event-title::after { right:-173px; }

.event-crest {
  position:absolute;
  left:50%;
  top:-74px;
  width:220px;
  height:91px;
  display:grid;
  grid-template-columns:1fr 76px 1fr;
  place-items:center;
  transform:translateX(-50%);
  filter:drop-shadow(0 13px 18px rgba(0,0,0,.7));
}

.event-crest::before {
  content:"";
  position:absolute;
  width:80px;
  height:80px;
  border:2px solid #e4a641;
  border-radius:9px 9px 32px 32px;
  transform:rotate(45deg);
  background:radial-gradient(circle at 35% 25%,#2b2110,#0b0c08 67%);
  box-shadow:inset 0 0 0 5px #080906,inset 0 0 0 6px rgba(255,219,139,.32),0 0 28px rgba(235,170,51,.16);
}

.event-crest > i {
  width:79px;
  height:38px;
  border-top:6px solid #f2be58;
  border-radius:100% 0 0 0;
  transform:rotate(-13deg);
  box-shadow:0 -3px #8e5114,0 -8px 0 -4px #ffd983;
}
.event-crest > i:last-child { transform:scaleX(-1) rotate(-13deg); }
.event-crest > span { position:absolute; z-index:2; top:15px; color:#ffc969; font-size:9px; }
.event-crest > strong {
  position:relative;
  z-index:2;
  display:grid;
  margin-top:13px;
  color:#ffe5a6;
  font-family:Georgia,"Times New Roman",serif;
  font-size:24px;
  font-weight:500;
  line-height:.69;
  text-shadow:0 2px 3px #000;
}
.event-crest > strong em { color:#f4bd57; font-size:25px; font-style:normal; }

.event-chip { min-height:21px; padding:0 9px; border:0; background:transparent; font-size:6px; }
.event-title h1 {
  margin:4px 0 0;
  color:#f6d98e;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:clamp(35px,4.5vw,59px);
  font-weight:900;
  letter-spacing:.035em;
  line-height:1;
  text-shadow:0 2px #fff0bd,0 5px #8e5516,0 10px 25px rgba(0,0,0,.62);
}
.event-title h1 em { color:inherit; background:none; -webkit-text-fill-color:inherit; }
.event-title > p { margin-top:7px; color:#f3efe8; font-size:17px; font-weight:850; letter-spacing:.01em; text-shadow:0 2px 6px #000; }
.event-title .game-steps { position:absolute; top:100%; margin-top:8px; opacity:.88; }

.tisu-event-layout { grid-template-columns:minmax(0,1fr) 270px; gap:13px; }
.tisu-stage {
  min-height:885px;
  padding:66px 20px 34px;
  border:2px solid rgba(238,182,79,.5);
  border-radius:32px 32px 24px 24px;
  background:
    radial-gradient(circle at 66% 49%,rgba(255,194,62,.18) 0 1%,rgba(139,89,22,.09) 28%,transparent 50%),
    linear-gradient(135deg,rgba(182,113,20,.04),transparent 20%),
    linear-gradient(145deg,#090a07,#030403 70%);
  box-shadow:0 35px 95px rgba(0,0,0,.7),inset 0 0 120px rgba(0,0,0,.6),inset 0 0 0 7px #080905,inset 0 0 0 8px rgba(255,215,125,.13);
}
.tisu-stage::before { inset:9px; border-color:rgba(247,208,126,.15); border-radius:24px; }
.tisu-stage::after {
  content:"";
  position:absolute;
  inset:20px;
  z-index:-1;
  border-radius:45% 55% 48% 52%;
  background:
    radial-gradient(circle at 25% 15%,#ffd36e 0 1px,transparent 2px),
    radial-gradient(circle at 72% 9%,#fff0b5 0 1px,transparent 2px),
    radial-gradient(circle at 94% 54%,#ffd36e 0 1px,transparent 2px),
    radial-gradient(circle at 60% 84%,#fff0b5 0 1px,transparent 2px);
  box-shadow:inset 0 0 60px rgba(223,149,31,.035);
}

.stage-orbit {
  --orbit-x:-36%;
  left:58%;
  width:min(735px,73%);
  border:4px solid rgba(246,186,55,.68);
  border-left-color:rgba(255,226,135,.13);
  border-radius:50%;
  box-shadow:0 0 9px #ffba2c,0 0 29px rgba(255,179,31,.44),inset 0 0 14px rgba(255,192,48,.32),inset 0 0 65px rgba(229,155,29,.08);
  transform:translateX(var(--orbit-x));
  animation:orbit-spin 42s linear infinite;
}
@keyframes orbit-spin { to { transform:translateX(var(--orbit-x)) rotate(360deg); } }
.stage-orbit::before { inset:7%; border:2px dashed rgba(255,203,85,.42); box-shadow:0 0 14px rgba(247,181,52,.2); }
.stage-orbit::after { inset:19%; border:1px solid rgba(255,227,152,.24); box-shadow:0 0 70px rgba(231,167,50,.18); }
.stage-stars { opacity:.82; background-size:auto; }

.tisu-stage-content { padding-left:335px; padding-bottom:15px; }
.tisu-character-layer {
  width:410px;
  height:790px;
  -webkit-mask-image:linear-gradient(to right,#000 0 74%,transparent 98%),linear-gradient(to top,#000 0 91%,transparent 100%);
  mask-image:linear-gradient(to right,#000 0 74%,transparent 98%),linear-gradient(to top,#000 0 91%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-composite:intersect;
}
.tisu-character-layer img { object-position:52% 7%; filter:saturate(.96) contrast(1.05) drop-shadow(22px 12px 35px rgba(0,0,0,.75)); }
.tisu-character-layer > span { left:25px; bottom:24px; padding:11px 16px; }

.stage-instruction {
  position:absolute;
  z-index:5;
  left:42%;
  right:20px;
  bottom:11px;
  color:#8c877d;
  font-size:7px;
  font-weight:850;
  letter-spacing:.16em;
  text-align:center;
}

.tisu-ticket-gate {
  width:min(535px,100%);
  padding:30px 39px 27px;
  border:1px solid rgba(245,194,91,.55);
  border-radius:22px;
  background:
    linear-gradient(135deg,rgba(255,223,151,.035),transparent 31%),
    linear-gradient(180deg,rgba(10,11,8,.98),rgba(5,6,4,.98));
  box-shadow:0 33px 90px rgba(0,0,0,.75),0 0 0 6px rgba(3,4,3,.66),0 0 45px rgba(232,166,44,.08),inset 0 0 65px rgba(226,164,48,.035);
}
.gate-seal {
  width:92px;
  height:92px;
  margin:0 auto 18px;
  display:grid;
  place-content:center;
  border:1px solid rgba(246,197,98,.55);
  border-radius:30px 30px 46px 46px;
  background:radial-gradient(circle at 50% 25%,rgba(236,181,77,.23),transparent 65%),#090a07;
  box-shadow:inset 0 0 0 5px #060704,inset 0 0 0 6px rgba(245,196,94,.17),0 0 32px rgba(222,158,44,.12);
}
.gate-seal > span { color:var(--tisu-gold); font-size:8px; }
.gate-seal strong { display:grid; color:#ffe4a2; font-family:Georgia,serif; font-size:21px; font-weight:500; line-height:.72; }
.gate-seal strong em { color:#efb449; font-size:24px; font-style:normal; }
.gate-seal small { margin-top:8px; color:#a37a35; font-size:5px; font-weight:900; letter-spacing:.16em; }
.tisu-ticket-gate h2 { margin-top:10px; color:#fff3d6; font-family:Arial,"Helvetica Neue",sans-serif; font-size:28px; font-weight:850; letter-spacing:-.025em; }
.gate-copy { max-width:410px; margin:11px auto 22px; color:#918e84; font-size:11px; line-height:1.65; }
.tisu-field > span { color:#d0b575; font-size:7px; }
.tisu-field input {
  height:66px;
  border-color:rgba(235,180,77,.35);
  border-radius:13px;
  background:linear-gradient(180deg,#030403,#070805);
  font-family:"Arial Black",Arial,sans-serif;
  font-size:24px;
  font-weight:900;
  letter-spacing:.38em;
  text-indent:.38em;
  font-variant-numeric:tabular-nums;
}
.tisu-field input::placeholder { color:#403d35; }
.gate-enter { min-height:55px; margin-top:2px; font-size:11px; letter-spacing:.13em; }
.gate-assurance { display:grid; grid-template-columns:1fr 1px 1fr 1px 1fr; align-items:center; gap:9px; margin-top:18px; color:#686961; font-size:6px; font-weight:900; letter-spacing:.08em; }
.gate-assurance span { display:grid; gap:2px; }
.gate-assurance b { color:#c79844; font-size:8px; }
.gate-assurance i { width:1px; height:25px; background:var(--tisu-line); }
.gate-loader { width:100%; height:3px; margin-top:25px; overflow:hidden; border-radius:99px; background:rgba(255,255,255,.05); }
.gate-loader i { display:block; width:45%; height:100%; background:linear-gradient(90deg,transparent,#f3ba4b,transparent); animation:progress-run 1s linear infinite; }

.tisu-player-ribbon { border-color:rgba(236,181,77,.3); background:rgba(3,4,3,.86); box-shadow:0 8px 24px rgba(0,0,0,.35); }
.tisu-card-grid { width:min(430px,100%); gap:10px; }
.tisu-card { aspect-ratio:.57; }
.tisu-card-front,.tisu-card-back { border-width:2px; box-shadow:0 13px 26px rgba(0,0,0,.58),0 0 11px rgba(235,172,51,.1),inset 0 0 0 4px #15130b,inset 0 0 0 5px rgba(243,197,95,.3); }
.tisu-card:not(:disabled):hover { transform:translateY(-8px) scale(1.035); filter:drop-shadow(0 0 16px rgba(245,185,62,.28)); }
.table-copy h2,.tisu-shuffle-table h2 { color:#f8ead0; font-family:Arial,"Helvetica Neue",sans-serif; font-weight:850; letter-spacing:-.02em; }
.pulse-button { min-width:270px; min-height:52px; }

.tisu-prize-bar {
  min-height:885px;
  padding:19px 14px 15px;
  border:2px solid rgba(236,181,77,.28);
  border-radius:26px;
  background:linear-gradient(160deg,rgba(255,226,158,.035),transparent 24%),rgba(7,8,5,.96);
  box-shadow:0 30px 80px rgba(0,0,0,.55),inset 0 0 0 6px #080905,inset 0 0 0 7px rgba(255,215,125,.08);
}
.tisu-prize-bar header { padding:4px 5px 15px; }
.tisu-prize-bar header strong { font-family:Arial,sans-serif; font-size:11px; font-weight:850; letter-spacing:.04em; }
.prize-bar-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:14px; }
.prize-bar-item {
  min-height:141px;
  display:grid;
  grid-template-columns:1fr;
  place-items:center;
  padding:5px;
  border-color:rgba(236,181,77,.17);
  background:linear-gradient(145deg,rgba(255,221,146,.03),transparent 48%),#080906;
}
.prize-bar-item:first-child { border-color:rgba(244,199,100,.3); }
.prize-bar-item > span:last-child { display:none; }
.tisu-card-art.is-compact { width:82px; height:132px; border-radius:8px; }
.tisu-prize-bar > p { margin-top:12px; padding-top:11px; border-top:1px solid var(--tisu-line); }

.is-resolving-grid .tisu-card:not(.is-resolving) { opacity:.42; filter:grayscale(.4); }
.tisu-card.is-resolving { animation:resolving-card .7s ease-in-out infinite alternate; }
@keyframes resolving-card { to { transform:translateY(-10px) scale(1.04); filter:drop-shadow(0 0 25px rgba(242,185,62,.5)); } }

.print-code { font-size:31px; letter-spacing:.22em; font-variant-numeric:tabular-nums; }
.print-ticket-stub strong { font-size:14px; }

.db-live { min-height:34px; display:inline-flex; align-items:center; gap:7px; padding:0 11px; border:1px solid rgba(123,199,117,.18); border-radius:9px; color:#8cab84; background:rgba(123,199,117,.035); font-size:7px; font-weight:900; letter-spacing:.1em; }
.db-live i,.db-dot { width:6px; height:6px; display:inline-block; border-radius:50%; background:#84c57d; box-shadow:0 0 10px rgba(132,197,125,.55); }
.admin-db-orb { position:relative; width:72px; height:72px; display:grid; place-items:center; margin:0 auto 17px; border:1px solid var(--tisu-line-strong); border-radius:50%; color:var(--tisu-gold-light); font-family:Georgia,serif; }
.admin-db-orb i { position:absolute; inset:8px; border:1px dashed rgba(238,182,79,.35); border-radius:50%; animation:tisu-spin 4s linear infinite; }
.admin-loading-line { height:3px; margin-top:20px; overflow:hidden; border-radius:99px; background:rgba(255,255,255,.05); }
.admin-loading-line span { display:block; width:45%; height:100%; background:linear-gradient(90deg,transparent,var(--tisu-gold),transparent); animation:progress-run 1s linear infinite; }
.admin-boot-card { text-align:center; }
.demo-hint { display:flex; justify-content:center; align-items:center; gap:7px; }

@media (max-width:1180px) and (min-width:701px) {
  .tisu-stage-content { padding-left:235px; }
  .tisu-character-layer { width:315px; height:720px; }
  .stage-orbit { left:61%; width:660px; }
  .tisu-card-grid { width:390px; }
}

@media (max-width:700px) {
  .tisu-player-shell { padding:8px 7px max(12px,env(safe-area-inset-bottom)); }
  .tisu-header { min-height:59px; padding:6px 8px 8px; border-radius:17px 17px 0 0; }
  .tisu-logo-link { width:151px; }
  .tisu-event-page { padding-top:43px; }
  .event-title { width:calc(100% - 18px); margin-bottom:-20px; padding:22px 10px 17px; border-radius:3px 3px 23px 23px; }
  .event-crest { top:-53px; width:150px; height:69px; grid-template-columns:1fr 58px 1fr; }
  .event-crest::before { width:59px; height:59px; border-radius:7px 7px 22px 22px; }
  .event-crest > i { width:53px; height:28px; border-top-width:4px; }
  .event-crest > span { top:13px; font-size:6px; }
  .event-crest > strong { margin-top:11px; font-size:17px; }
  .event-crest > strong em { font-size:18px; }
  .event-title h1 { margin-top:2px; font-size:clamp(25px,8.8vw,37px); text-shadow:0 1px #fff0bd,0 3px #8e5516,0 8px 20px rgba(0,0,0,.7); }
  .event-title > p { margin-top:5px; font-size:11px; }
  .event-title .game-steps { display:none; }
  .event-chip { font-size:5px; }
  .tisu-stage { padding:34px 7px 27px; border-width:1px; border-radius:22px; }
  .tisu-stage-content { padding:0; }
  .stage-orbit { --orbit-x:-50%; left:50%; top:27%; width:112vw; opacity:.55; }
  .stage-instruction { left:10px; right:10px; bottom:9px; font-size:5px; }
  .tisu-character-layer { height:132px; margin-bottom:8px; border-radius:13px; }
  .tisu-character-layer img { width:174px; height:232px; margin-top:-37px; }
  .tisu-ticket-gate { padding:24px 17px 21px; border-radius:17px; }
  .gate-seal { width:68px; height:68px; margin-bottom:14px; border-radius:22px 22px 34px 34px; }
  .gate-seal strong { font-size:16px; }
  .gate-seal strong em { font-size:18px; }
  .gate-seal small { margin-top:5px; font-size:4px; }
  .tisu-ticket-gate h2 { font-size:22px; }
  .gate-copy { margin:8px auto 17px; font-size:10px; }
  .tisu-field input { height:58px; font-size:21px; }
  .gate-enter { min-height:51px; }
  .gate-assurance { margin-top:14px; gap:6px; font-size:5px; }
  .gate-assurance i { height:22px; }
  .tisu-card-grid { width:min(370px,calc(100vw - 34px)); gap:5px; }
  .tisu-card { aspect-ratio:.55; }
  .tisu-card-front,.tisu-card-back { border-width:1px; }
  .tisu-player-ribbon { margin-top:3px; }
  .table-copy h2 { font-size:22px; }
  .tisu-prize-bar { display:none; }
  .db-live { order:3; width:100%; justify-content:center; }
}

@media (max-width:390px) {
  .tisu-logo-link { width:139px; }
  .tisu-event-page { padding-top:39px; }
  .event-title { width:calc(100% - 12px); padding-inline:7px; }
  .event-title h1 { font-size:27px; }
  .tisu-character-layer { height:112px; }
  .tisu-character-layer img { width:151px; height:208px; }
  .tisu-character-layer > span { right:7px; width:52%; }
  .tisu-ticket-gate { padding-inline:13px; }
  .tisu-ticket-gate h2 { font-size:20px; }
  .tisu-field input { font-size:19px; letter-spacing:.32em; text-indent:.32em; }
  .gate-assurance { font-size:4.5px; }
  .tisu-card-grid { width:calc(100vw - 28px); gap:4px; }
  .stage-instruction { letter-spacing:.1em; }
}


/* ====================================================================== */
/* TISU4D UI polish v4 — cleaner typography, new emblem & mobile rebuild  */
/* ====================================================================== */
.tisu-player-body,
.tisu-admin-body {
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.tisu-header,
.tisu-admin-header {
  grid-template-columns: 1fr auto 1fr;
}
.tisu-live,
.tisu-admin-status { grid-column: 2; justify-self: center; }

/* Navigation between player/admin is intentionally removed. */
.tisu-admin-link,
.tisu-player-link { display: none !important; }

.event-title h1,
.tisu-ticket-gate h2,
.table-copy h2,
.tisu-shuffle-table h2,
.tisu-admin-body .login-card h1,
.tisu-admin-body .admin-title h1,
.tisu-admin-body .panel-heading h2 {
  font-family: "Segoe UI", Arial, Helvetica, sans-serif;
}
.event-title h1 {
  font-weight: 950;
  letter-spacing: .015em;
}
.event-title > p,
.gate-copy,
.table-copy > p:last-child,
.tisu-shuffle-table > p:not(.tisu-kicker) {
  line-height: 1.55;
}

/* Supplied TISU4D emblem replaces the old CSS-drawn crest. */
.event-crest {
  top: -82px;
  width: 184px;
  height: 118px;
  display: grid;
  place-items: center;
  grid-template-columns: none;
  filter: drop-shadow(0 14px 18px rgba(0,0,0,.72)) drop-shadow(0 0 12px rgba(232,173,59,.14));
  pointer-events: none;
}
.event-crest::before,
.event-crest > i,
.event-crest > span,
.event-crest > strong { display: none !important; }
.event-crest img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.gate-seal.gate-seal-image {
  width: 112px;
  height: auto;
  min-height: 84px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.gate-seal-image img {
  display: block;
  width: 112px;
  max-width: 100%;
  height: auto;
  filter: drop-shadow(0 10px 14px rgba(0,0,0,.58)) drop-shadow(0 0 12px rgba(235,178,67,.12));
}
.gate-seal-image small {
  margin-top: -3px;
  padding: 3px 7px;
  border: 1px solid rgba(236,181,77,.14);
  border-radius: 999px;
  background: rgba(5,6,4,.82);
  font-size: 5px;
  letter-spacing: .14em;
}

.tisu-ticket-gate {
  max-width: 540px;
}
.tisu-ticket-gate h2 {
  font-size: clamp(24px, 2.2vw, 30px);
  font-weight: 800;
  letter-spacing: -.025em;
}
.gate-copy {
  max-width: 425px;
  color: #a4a095;
  font-size: 12px;
}
.tisu-field > span,
.tisu-kicker {
  letter-spacing: .15em;
}
.tisu-field input {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-weight: 800;
}
.gate-enter {
  font-weight: 850;
  letter-spacing: .09em;
}

/* Admin login now uses a database account instead of a hard-coded PIN. */
.admin-login-form {
  display: grid;
  gap: 14px;
  margin-top: 4px;
  text-align: left;
}
.admin-login-form .gold-button { margin-top: 2px; }
.tisu-admin-body .operator-login { max-width: 455px; }
.tisu-admin-body .operator-login > p:not(.eyebrow):not(.demo-hint) { max-width: 360px; }
.tisu-admin-body .operator-login .text-input {
  min-height: 50px;
  font-size: 13px;
}

/* -------- Mobile rebuild: prevent the character layer from covering UI. */
@media (max-width: 700px) {
  html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
  .tisu-player-shell {
    width: 100%;
    padding: max(7px, env(safe-area-inset-top)) 7px max(12px, env(safe-area-inset-bottom));
  }
  .tisu-header {
    min-height: 58px;
    grid-template-columns: 1fr auto;
    gap: 8px;
    padding: 7px 10px;
    border-radius: 16px 16px 0 0;
  }
  .tisu-logo-link { width: 132px; max-width: 43vw; }
  .tisu-live {
    grid-column: 2;
    justify-self: end;
    padding: 7px 9px;
    font-size: 6px;
    letter-spacing: .11em;
  }
  .tisu-live span { width: 6px; height: 6px; }

  .tisu-event-page { padding-top: 54px; }
  .event-title {
    width: calc(100% - 10px);
    margin: 0 auto -14px;
    padding: 23px 12px 17px;
    border-radius: 8px 8px 20px 20px;
  }
  .event-crest {
    top: -62px;
    width: 128px;
    height: 82px;
  }
  .event-title h1 {
    margin-top: 5px;
    font-size: clamp(26px, 8.4vw, 34px);
    line-height: 1.02;
    letter-spacing: 0;
    text-shadow: 0 1px #fff0bd, 0 3px #8e5516, 0 8px 18px rgba(0,0,0,.64);
  }
  .event-title > p { margin-top: 5px; font-size: 10px; }
  .event-chip { font-size: 5px; letter-spacing: .14em; }

  .tisu-event-layout { display: block; }
  .tisu-stage {
    min-height: 0;
    display: block;
    padding: 29px 9px 30px;
    overflow: hidden;
    border-radius: 20px;
  }
  .tisu-stage-content {
    position: relative;
    z-index: 4;
    width: 100%;
    min-height: 0;
    display: grid;
    place-items: center;
    padding: 0;
  }
  .stage-orbit {
    --orbit-x: -50%;
    left: 50%;
    top: 29%;
    width: 125vw;
    max-width: 520px;
    opacity: .48;
  }

  .tisu-character-layer {
    position: relative;
    z-index: 3;
    left: auto;
    right: auto;
    bottom: auto;
    width: 100%;
    height: 154px;
    margin: 0 0 12px;
    overflow: hidden;
    border: 1px solid rgba(236,181,77,.18);
    border-radius: 15px;
    background: #080906;
    -webkit-mask-image: none;
    mask-image: none;
    -webkit-mask-composite: initial;
    mask-composite: initial;
  }
  .tisu-character-layer::after {
    inset: 0;
    background: linear-gradient(90deg, transparent 22%, rgba(5,6,4,.2) 52%, rgba(5,6,4,.9) 100%), linear-gradient(0deg, rgba(5,6,4,.65), transparent 50%);
  }
  .tisu-character-layer img {
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
    object-position: 50% 16%;
    filter: saturate(.96) contrast(1.04);
  }
  .tisu-character-layer > span {
    left: auto;
    right: 12px;
    bottom: 12px;
    width: 48%;
    padding: 8px 10px;
    border-left: 1px solid var(--tisu-gold);
    text-align: left;
  }
  .tisu-character-layer small { font-size: 5px; }
  .tisu-character-layer strong { font-size: 15px; }
  .tisu-character-layer em { font-size: 6px; }

  .tisu-ticket-gate {
    width: 100%;
    max-width: 470px;
    padding: 23px 16px 20px;
    border-radius: 17px;
  }
  .gate-seal.gate-seal-image { width: 90px; min-height: 68px; margin-bottom: 11px; }
  .gate-seal-image img { width: 90px; }
  .tisu-ticket-gate h2 { margin-top: 8px; font-size: clamp(20px, 6.1vw, 24px); }
  .gate-copy { margin: 8px auto 17px; font-size: 10.5px; line-height: 1.55; }
  .tisu-field > span { font-size: 6.5px; }
  .tisu-field input {
    height: 56px;
    padding: 0 9px;
    font-size: clamp(18px, 6vw, 22px);
    letter-spacing: .28em;
    text-indent: .28em;
  }
  .gate-enter { min-height: 51px; font-size: 10px; }
  .gate-assurance {
    grid-template-columns: 1fr 1px 1fr 1px 1fr;
    gap: 5px;
    margin-top: 14px;
    font-size: 4.7px;
    line-height: 1.35;
  }
  .gate-assurance b { font-size: 7px; }

  .tisu-game-table,
  .tisu-shuffle-table { width: 100%; max-width: 100%; }
  .tisu-player-ribbon {
    width: 100%;
    grid-template-columns: 30px minmax(0,1fr) 1px minmax(0,1fr);
    gap: 7px;
    padding: 7px 8px;
  }
  .tisu-player-ribbon > b { display: none; }
  .player-avatar { width: 29px; height: 29px; }
  .table-copy { padding-inline: 4px; }
  .table-copy h2, .tisu-shuffle-table h2 { font-size: clamp(20px, 6vw, 24px); }
  .table-copy > p:last-child, .tisu-shuffle-table > p:not(.tisu-kicker) { font-size: 10px; }

  .tisu-card-grid {
    width: min(100%, 390px);
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 6px;
  }
  .tisu-card { min-width: 0; aspect-ratio: .57; }
  .tisu-card-front, .tisu-card-back { border-width: 1px; }
  .pulse-button { width: min(100%, 280px); min-width: 0; }
  .preview-action { width: 100%; }
  .play-status { width: 100%; }
  .stage-instruction {
    left: 9px;
    right: 9px;
    bottom: 9px;
    font-size: 4.8px;
    letter-spacing: .08em;
  }
  .tisu-prize-bar { display: none; }

  .tisu-admin-shell { width: 100%; padding-inline: 8px; }
  .tisu-admin-header {
    min-height: 58px;
    grid-template-columns: 1fr auto;
    gap: 8px;
    padding: 7px 9px;
  }
  .tisu-admin-header .tisu-logo-link { width: 132px; max-width: 43vw; }
  .tisu-admin-status {
    grid-column: 2;
    justify-self: end;
    display: inline-flex;
    padding: 7px 9px;
    font-size: 5.5px;
  }
  .tisu-admin-body .login-wrap { min-height: calc(100svh - 105px); padding: 20px 0; }
  .tisu-admin-body .login-card { width: 100%; padding: 25px 18px; border-radius: 20px; }
  .admin-login-logo { width: 155px; }
  .tisu-admin-body .login-card h1 { font-size: 25px; }
  .tisu-admin-body .login-card > p { font-size: 11px; }
  .admin-login-form { gap: 12px; }
}

@media (max-width: 390px) {
  .tisu-logo-link,
  .tisu-admin-header .tisu-logo-link { width: 118px; }
  .tisu-live { font-size: 5.5px; }
  .tisu-admin-status { font-size: 5px; }
  .tisu-event-page { padding-top: 49px; }
  .event-title { padding-inline: 8px; }
  .event-title h1 { font-size: 26px; }
  .tisu-character-layer { height: 142px; }
  .tisu-character-layer > span { width: 51%; right: 8px; }
  .tisu-ticket-gate { padding-inline: 13px; }
  .tisu-field input { font-size: 18px; letter-spacing: .24em; text-indent: .24em; }
  .gate-assurance { font-size: 4.2px; }
  .tisu-card-grid { width: 100%; gap: 5px; }
}

/* ====================================================================== */
/* TISU4D UI v5 — readability-first desktop + dedicated mobile layout     */
/* ====================================================================== */
:root {
  --tisu-ui: "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;
  --tisu-display: "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;
  --tisu-text: #eee7d8;
  --tisu-text-soft: #b4b0a5;
  --tisu-text-dim: #89887f;
  --tisu-surface: #0d0f0a;
  --tisu-surface-2: #11130e;
}

.tisu-player-body,
.tisu-admin-body,
.tisu-player-body button,
.tisu-player-body input,
.tisu-player-body select,
.tisu-admin-body button,
.tisu-admin-body input,
.tisu-admin-body select {
  font-family: var(--tisu-ui);
}

/* ----------------------------- PLAYER --------------------------------- */
.tisu-player-shell {
  width: min(1500px, 100%);
  padding: 14px 18px max(20px, env(safe-area-inset-bottom));
}

.tisu-header {
  min-height: 68px;
  padding: 9px 16px 11px;
  border-radius: 20px 20px 0 0;
}

.tisu-logo-link { width: min(205px, 30vw); }
.tisu-live {
  min-height: 34px;
  padding: 0 13px;
  color: #aaa79e;
  font-size: 9px;
  letter-spacing: .13em;
}

.tisu-event-page { padding-top: 54px; }

.event-title {
  width: min(720px, calc(100% - 56px));
  margin-bottom: -26px;
  padding: 25px 38px 21px;
  border-width: 1px;
  border-radius: 6px 6px 28px 28px;
  background:
    linear-gradient(110deg, transparent 0 9%, rgba(255,213,123,.035) 9.2% 10%, transparent 10.2% 90%, rgba(255,213,123,.035) 90.2% 91%, transparent 91.2%),
    linear-gradient(180deg, #12130f 0%, #090a07 78%, #060704 100%);
}

.event-crest {
  top: -77px;
  width: 174px;
  height: 112px;
}

.event-chip {
  min-height: 20px;
  color: #d9a84b;
  font-size: 8px;
  letter-spacing: .17em;
}

.event-title h1 {
  margin: 5px 0 1px;
  font-family: var(--tisu-display);
  font-size: clamp(38px, 4.1vw, 54px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.025em;
  white-space: nowrap;
  color: #ffe09a;
  text-shadow: 0 2px 0 #8c5719, 0 9px 24px rgba(0,0,0,.66);
}
.event-title h1 em { font-style: normal; color: #ffe09a; }
.event-title > p {
  margin-top: 8px;
  color: #ddd8cd;
  font-size: 13px;
  font-weight: 650;
}
.event-title .game-steps { margin-top: 10px; }
.game-steps > span { gap: 7px; }
.game-steps b { width: 23px; height: 23px; font-size: 9px; }
.game-steps em { font-size: 8px; letter-spacing: .11em; }

.tisu-event-layout {
  grid-template-columns: minmax(0, 1fr) 292px;
  gap: 16px;
}

.tisu-stage {
  min-height: 770px;
  padding: 58px 24px 34px;
  border-width: 1px;
  border-radius: 28px;
}
.tisu-stage::before { inset: 8px; border-radius: 21px; }
.stage-orbit { width: min(690px, 72%); opacity: .83; }

.tisu-stage-content {
  padding-left: 290px;
  padding-bottom: 10px;
}

.tisu-character-layer {
  width: 365px;
  height: 690px;
}
.tisu-character-layer > span {
  left: 24px;
  bottom: 26px;
  padding: 12px 16px;
}
.tisu-character-layer small { font-size: 8px; }
.tisu-character-layer strong {
  margin-top: 3px;
  font-family: var(--tisu-display);
  font-size: 18px;
  font-weight: 750;
}
.tisu-character-layer em {
  margin-top: 4px;
  color: #aaa69c;
  font-size: 10px;
  line-height: 1.4;
}

.stage-instruction {
  left: 35%;
  bottom: 12px;
  color: #96938a;
  font-size: 9px;
  letter-spacing: .1em;
}

.tisu-ticket-gate {
  width: min(535px, 100%);
  padding: 31px 36px 28px;
  border-radius: 22px;
}
.gate-seal.gate-seal-image {
  width: 110px;
  min-height: 84px;
  margin-bottom: 14px;
}
.gate-seal-image img { width: 108px; }
.gate-seal-image small {
  margin-top: 3px;
  font-size: 7px;
  letter-spacing: .12em;
}
.tisu-kicker {
  color: #d8a74b;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .14em;
}
.tisu-ticket-gate h2,
.table-copy h2,
.tisu-shuffle-table h2 {
  font-family: var(--tisu-display);
  color: #fbf1dd;
  font-weight: 800;
  letter-spacing: -.025em;
}
.tisu-ticket-gate h2 {
  margin-top: 9px;
  font-size: clamp(26px, 2.3vw, 32px);
}
.gate-copy {
  max-width: 430px;
  margin: 10px auto 22px;
  color: var(--tisu-text-soft);
  font-size: 13px;
  line-height: 1.6;
}
.tisu-field > span {
  color: #d0b574;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .11em;
}
.tisu-field input {
  height: 64px;
  margin-top: 8px;
  border-radius: 12px;
  font-size: 25px;
  letter-spacing: .34em;
  text-indent: .34em;
}
.tisu-gold-button {
  min-height: 52px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .075em;
}
.gate-enter { min-height: 54px; }
.gate-assurance {
  margin-top: 17px;
  color: #8f8c82;
  font-size: 8px;
  line-height: 1.3;
}
.gate-assurance b { font-size: 9px; }

.tisu-player-ribbon {
  min-height: 58px;
  padding: 9px 12px;
  border-radius: 14px;
}
.player-avatar { width: 36px; height: 36px; font-size: 15px; }
.tisu-player-ribbon small { font-size: 8px; }
.tisu-player-ribbon strong { font-size: 11px; }
.tisu-player-ribbon > b { font-size: 9px; }

.table-copy { margin: 22px 0 18px; }
.table-copy h2,
.tisu-shuffle-table h2 { font-size: clamp(26px, 2.5vw, 34px); }
.table-copy > p:last-child,
.tisu-shuffle-table > p:not(.tisu-kicker) {
  color: var(--tisu-text-soft);
  font-size: 12px;
  line-height: 1.55;
}

.tisu-card-grid { width: min(455px, 100%); gap: 10px; }
.card-number { font-size: 8px; }
.tisu-card-back > small { font-size: 6px; }
.play-status {
  min-height: 40px;
  padding: 0 12px;
  font-size: 9px;
}

.tisu-prize-bar {
  min-height: 770px;
  padding: 18px 13px 14px;
  border-width: 1px;
  border-radius: 24px;
}
.tisu-prize-bar header {
  padding: 5px 6px 14px;
}
.tisu-prize-bar header small {
  color: #cf9f45;
  font-size: 8px;
  letter-spacing: .12em;
}
.tisu-prize-bar header strong {
  margin-top: 3px;
  font-size: 12px;
  line-height: 1.25;
}
.tisu-prize-bar header > b {
  min-width: 47px;
  min-height: 42px;
  font-size: 9px;
}
.prize-bar-grid {
  gap: 8px;
  margin-top: 10px;
}
.prize-bar-item {
  min-height: 116px;
  padding: 6px;
  border-radius: 11px;
}
.tisu-card-art.is-compact {
  width: 69px;
  height: 105px;
}
.tisu-prize-bar > p {
  color: #8f8c82;
  font-size: 9px;
  line-height: 1.45;
}

/* ------------------------------ ADMIN --------------------------------- */
.tisu-admin-shell {
  width: min(1700px, 100%);
  padding: max(14px, env(safe-area-inset-top)) 30px max(24px, env(safe-area-inset-bottom));
}
.tisu-admin-header {
  min-height: 66px;
  padding: 8px 14px 11px;
}
.tisu-admin-header .tisu-logo-link { width: 205px; }
.tisu-admin-status {
  min-height: 34px;
  padding: 0 13px;
  font-size: 9px;
  letter-spacing: .12em;
}

.tisu-admin-body .admin-page { padding-top: 30px; }
.tisu-admin-body .admin-title {
  align-items: flex-end;
  gap: 28px;
  margin-bottom: 24px;
}
.tisu-admin-body .eyebrow {
  font-size: 10px;
  letter-spacing: .18em;
}
.tisu-admin-body .admin-title h1 {
  margin-top: 7px;
  font-family: var(--tisu-display);
  color: #f5ecda;
  font-size: clamp(36px, 3.3vw, 48px);
  font-weight: 760;
  letter-spacing: -.035em;
}
.tisu-admin-body .admin-title p:last-child {
  max-width: 760px;
  margin-top: 9px;
  color: #aaa79e;
  font-size: 14px;
  line-height: 1.55;
}
.tisu-admin-body .admin-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}
.db-live,
.tisu-admin-body .ghost-button,
.tisu-admin-body .danger-button {
  min-height: 42px;
  padding: 0 15px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .02em;
}
.db-live { font-size: 9px; letter-spacing: .08em; }

.tisu-admin-body .stat-grid {
  gap: 16px;
  margin-bottom: 20px;
}
.tisu-admin-body .stat-card {
  min-height: 126px;
  padding: 21px 22px;
  border-radius: 18px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.tisu-admin-body .stat-card p {
  color: #98958c;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .07em;
}
.tisu-admin-body .stat-card strong {
  margin-top: 10px;
  font-family: var(--tisu-display);
  color: #f5ecd7;
  font-size: 32px;
  font-weight: 720;
  line-height: 1.08;
  letter-spacing: -.02em;
}
.tisu-admin-body .stat-card small {
  margin-top: 8px;
  color: #85837b;
  font-size: 11px;
  line-height: 1.35;
}

.tisu-admin-body .admin-grid {
  grid-template-columns: minmax(410px, 470px) minmax(0, 1fr);
  gap: 20px;
}
.tisu-admin-body .admin-panel {
  border-radius: 20px;
  box-shadow: 0 18px 50px rgba(0,0,0,.2);
}
.tisu-admin-body .panel-heading {
  min-height: 78px;
  padding: 19px 22px;
}
.tisu-admin-body .panel-heading h2 {
  font-family: var(--tisu-display);
  color: #f1e8d4;
  font-size: 22px;
  font-weight: 720;
  letter-spacing: -.02em;
}
.tisu-admin-body .panel-heading p {
  margin-top: 5px;
  color: #8f8d84;
  font-size: 11px;
  line-height: 1.4;
}
.tisu-admin-body .panel-count {
  min-width: 36px;
  height: 36px;
  font-size: 12px;
}

.tisu-admin-body .ticket-form {
  gap: 17px;
  padding: 22px;
}
.tisu-admin-body .field-label {
  color: #bcb7aa;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.4;
}
.tisu-admin-body .text-input,
.tisu-admin-body .select-input {
  min-height: 50px;
  margin-top: 8px;
  padding-inline: 14px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
}
.tisu-admin-body .field-help {
  margin-top: -4px;
  color: #89877e;
  font-size: 11px;
  line-height: 1.55;
}
.tisu-admin-body .preview-prize {
  min-height: 58px;
  padding: 14px 15px;
  border-radius: 11px;
}
.tisu-admin-body .preview-prize span {
  font-size: 10px;
  font-weight: 700;
}
.tisu-admin-body .preview-prize strong {
  font-family: var(--tisu-display);
  font-size: 17px;
  font-weight: 720;
}
.tisu-admin-body .gold-button {
  min-height: 52px;
  border-radius: 11px;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .055em;
}

.tisu-admin-body .table-toolbar {
  gap: 11px;
  padding: 15px 18px;
}
.tisu-admin-body .table-toolbar .text-input,
.tisu-admin-body .filter-select {
  height: 48px;
  min-height: 48px;
  margin-top: 0;
  font-size: 13px;
}
.tisu-admin-body .filter-select { width: 172px; }
.tisu-admin-body .ticket-table-wrap { max-height: 560px; }
.tisu-admin-body .ticket-table { min-width: 830px; }
.tisu-admin-body .ticket-table th {
  padding: 14px 16px;
  color: #908d83;
  font-size: 9px;
  letter-spacing: .09em;
}
.tisu-admin-body .ticket-table td {
  padding: 16px;
  color: #d4cdbd;
  font-size: 12px;
  line-height: 1.35;
}
.tisu-admin-body .player-cell strong { font-size: 13px; }
.tisu-admin-body .code-cell {
  font-size: 13px;
  letter-spacing: .06em;
}
.tisu-admin-body .prize-cell { font-size: 12px; }
.tisu-admin-body .status-badge {
  padding: 6px 9px;
  font-size: 9px;
}
.tisu-admin-body .icon-button {
  min-width: 42px;
  height: 35px;
  padding: 0 10px;
  border-radius: 8px;
  font-size: 10px;
}

.tisu-admin-body .audit-panel { margin-top: 20px; }
.tisu-admin-body .audit-list { max-height: 310px; }
.tisu-admin-body .audit-item {
  grid-template-columns: 150px 1fr auto;
  gap: 18px;
  min-height: 49px;
  padding: 13px 20px;
  font-size: 11px;
  line-height: 1.4;
}
.tisu-admin-body .audit-time { color: #8d8a81; }
.tisu-admin-body .audit-item strong { font-size: 11px; }
.tisu-admin-body .audit-tag { font-size: 10px; }

.tisu-admin-body .login-card {
  width: min(470px, 100%);
  padding: 34px;
}
.tisu-admin-body .login-card h1 {
  font-size: 31px;
  font-weight: 760;
}
.tisu-admin-body .login-card > p { font-size: 13px; line-height: 1.55; }
.tisu-admin-body .operator-login .text-input { font-size: 14px; }

/* -------------------------- RESPONSIVE -------------------------------- */
@media (max-width: 1180px) and (min-width: 761px) {
  .tisu-event-layout { grid-template-columns: minmax(0, 1fr) 258px; }
  .tisu-stage-content { padding-left: 220px; }
  .tisu-character-layer { width: 295px; height: 650px; }
  .tisu-prize-bar { padding-inline: 10px; }
  .tisu-card-art.is-compact { width: 61px; height: 96px; }

  .tisu-admin-body .admin-grid { grid-template-columns: 390px minmax(0, 1fr); }
  .tisu-admin-shell { padding-inline: 20px; }
}

@media (max-width: 980px) {
  .tisu-admin-body .admin-title {
    align-items: flex-start;
    flex-direction: column;
  }
  .tisu-admin-body .admin-actions { justify-content: flex-start; }
  .tisu-admin-body .admin-grid { grid-template-columns: 1fr; }
  .tisu-admin-body .ticket-table-wrap { max-height: none; }
}

@media (max-width: 760px) {
  .tisu-player-shell {
    padding: max(8px, env(safe-area-inset-top)) 8px max(14px, env(safe-area-inset-bottom));
  }
  .tisu-header {
    min-height: 58px;
    padding: 7px 10px;
    border-radius: 15px 15px 0 0;
  }
  .tisu-logo-link { width: 140px; max-width: 45vw; }
  .tisu-live {
    min-height: 30px;
    padding: 0 9px;
    font-size: 7px;
  }

  .tisu-event-page { padding-top: 50px; }
  .event-title {
    width: calc(100% - 12px);
    margin-bottom: -14px;
    padding: 20px 12px 16px;
    border-radius: 5px 5px 20px 20px;
  }
  .event-crest {
    top: -58px;
    width: 132px;
    height: 88px;
  }
  .event-chip { font-size: 7px; }
  .event-title h1 {
    margin-top: 4px;
    font-size: clamp(27px, 8.8vw, 38px);
    line-height: 1.02;
    white-space: normal;
  }
  .event-title > p { font-size: 11px; }
  .event-title .game-steps { display: none; }

  .tisu-event-layout { display: block; }
  .tisu-stage {
    min-height: 0;
    padding: 28px 10px 22px;
    border-radius: 19px;
  }
  .tisu-stage-content { padding: 0; }
  .stage-orbit {
    --orbit-x: -50%;
    left: 50%;
    top: 31%;
    width: min(124vw, 520px);
    opacity: .42;
  }

  .tisu-character-layer {
    position: relative;
    left: auto;
    bottom: auto;
    width: 100%;
    height: 132px;
    margin: 0 0 12px;
    border: 1px solid rgba(236,181,77,.18);
    border-radius: 14px;
    -webkit-mask-image: none;
    mask-image: none;
    background: #080906;
  }
  .tisu-character-layer img {
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
    object-position: 50% 14%;
  }
  .tisu-character-layer::after {
    background: linear-gradient(90deg, transparent 15%, rgba(5,6,4,.2) 48%, rgba(5,6,4,.95) 100%);
  }
  .tisu-character-layer > span {
    left: auto;
    right: 12px;
    bottom: 50%;
    width: 46%;
    padding: 8px 10px;
    transform: translateY(50%);
  }
  .tisu-character-layer small { font-size: 7px; }
  .tisu-character-layer strong { font-size: 16px; }
  .tisu-character-layer em { font-size: 9px; }

  .tisu-ticket-gate {
    width: 100%;
    max-width: 500px;
    padding: 24px 18px 21px;
    border-radius: 18px;
  }
  .gate-seal.gate-seal-image { width: 94px; min-height: 70px; margin-bottom: 10px; }
  .gate-seal-image img { width: 92px; }
  .gate-seal-image small { font-size: 6px; }
  .tisu-kicker { font-size: 8px; }
  .tisu-ticket-gate h2 { font-size: clamp(23px, 6.4vw, 28px); }
  .gate-copy { margin: 8px auto 17px; font-size: 12px; }
  .tisu-field > span { font-size: 8px; }
  .tisu-field input {
    height: 58px;
    font-size: clamp(21px, 6.2vw, 25px);
    letter-spacing: .27em;
    text-indent: .27em;
  }
  .gate-enter { min-height: 51px; font-size: 11px; }
  .gate-assurance { font-size: 7px; gap: 6px; }

  .tisu-game-table,
  .tisu-shuffle-table { width: 100%; max-width: 100%; }
  .tisu-player-ribbon {
    width: 100%;
    grid-template-columns: 32px minmax(0,1fr) 1px minmax(0,1fr);
    gap: 8px;
    padding: 8px 9px;
  }
  .tisu-player-ribbon > b { display: none; }
  .player-avatar { width: 31px; height: 31px; }
  .tisu-player-ribbon small { font-size: 7px; }
  .tisu-player-ribbon strong { font-size: 10px; }
  .table-copy { margin: 17px 0 14px; }
  .table-copy h2,
  .tisu-shuffle-table h2 { font-size: clamp(22px, 6.4vw, 27px); }
  .table-copy > p:last-child,
  .tisu-shuffle-table > p:not(.tisu-kicker) { font-size: 11px; }
  .tisu-card-grid {
    width: min(100%, 410px);
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 6px;
  }
  .tisu-card { min-width: 0; }
  .play-status { width: 100%; font-size: 8px; }
  .stage-instruction { display: none; }
  .tisu-prize-bar { display: none; }

  .tisu-admin-shell {
    width: 100%;
    padding: max(8px, env(safe-area-inset-top)) 10px max(16px, env(safe-area-inset-bottom));
  }
  .tisu-admin-header {
    min-height: 58px;
    padding: 7px 9px;
  }
  .tisu-admin-header .tisu-logo-link { width: 140px; max-width: 45vw; }
  .tisu-admin-status { min-height: 30px; padding: 0 9px; font-size: 7px; }
  .tisu-admin-body .admin-page { padding-top: 20px; }
  .tisu-admin-body .admin-title { gap: 16px; margin-bottom: 18px; }
  .tisu-admin-body .admin-title h1 { font-size: clamp(30px, 9vw, 40px); }
  .tisu-admin-body .admin-title p:last-child { font-size: 12px; }
  .tisu-admin-body .admin-actions { width: 100%; gap: 8px; }
  .db-live { width: 100%; justify-content: center; order: 3; }
  .tisu-admin-body .ghost-button,
  .tisu-admin-body .danger-button { flex: 1; min-width: 0; }
  .tisu-admin-body .stat-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .tisu-admin-body .stat-card { min-height: 108px; padding: 16px; }
  .tisu-admin-body .stat-card p { font-size: 9px; }
  .tisu-admin-body .stat-card strong { font-size: 26px; }
  .tisu-admin-body .stat-card small { font-size: 9px; }
  .tisu-admin-body .admin-grid { gap: 14px; }
  .tisu-admin-body .panel-heading { min-height: 69px; padding: 16px; }
  .tisu-admin-body .panel-heading h2 { font-size: 19px; }
  .tisu-admin-body .panel-heading p { font-size: 10px; }
  .tisu-admin-body .ticket-form { padding: 17px; gap: 15px; }
  .tisu-admin-body .field-label { font-size: 9px; }
  .tisu-admin-body .text-input,
  .tisu-admin-body .select-input { min-height: 48px; font-size: 12px; }
  .tisu-admin-body .field-help { font-size: 10px; }
  .tisu-admin-body .table-toolbar { flex-direction: column; padding: 13px; }
  .tisu-admin-body .filter-select { width: 100%; }
  .tisu-admin-body .ticket-table th { font-size: 9px; }
  .tisu-admin-body .ticket-table td { font-size: 11px; }
  .tisu-admin-body .audit-item {
    grid-template-columns: 1fr auto;
    gap: 7px 12px;
    padding: 12px 15px;
    font-size: 10px;
  }
  .tisu-admin-body .audit-time { grid-column: 1 / -1; }
  .tisu-admin-body .login-card { width: 100%; padding: 26px 20px; }
}

@media (max-width: 430px) {
  .tisu-logo-link,
  .tisu-admin-header .tisu-logo-link { width: 126px; }
  .tisu-live,
  .tisu-admin-status { font-size: 6px; }
  .event-title h1 { font-size: 29px; }
  .event-title > p { font-size: 10px; }
  .tisu-character-layer { height: 118px; }
  .tisu-character-layer > span { width: 50%; right: 8px; }
  .tisu-character-layer em { display: none; }
  .tisu-ticket-gate { padding-inline: 14px; }
  .gate-copy { font-size: 11px; }
  .gate-assurance { display: none; }
  .tisu-card-grid { gap: 5px; }

  .tisu-admin-body .stat-grid { grid-template-columns: 1fr; }
  .tisu-admin-body .stat-card { min-height: 96px; }
  .tisu-admin-body .admin-actions { flex-direction: column; }
  .tisu-admin-body .ghost-button,
  .tisu-admin-body .danger-button { width: 100%; }
  .tisu-admin-body .preview-prize { align-items: flex-start; flex-direction: column; gap: 5px; }
}


/* ====================================================================== */
/* TISU4D UI v6 — card artwork, font cleanup, audit modal, centered orbit */
/* ====================================================================== */
:root {
  --tisu-player-ui: "Inter", "Segoe UI", Arial, sans-serif;
  --tisu-player-display: "Cinzel", Georgia, "Times New Roman", serif;
  --tisu-admin-ui: "Roboto", Arial, Helvetica, sans-serif;
}

/* PLAYER: Inter for reading, Latin/classic display face for hero headings. */
.tisu-player-body,
.tisu-player-body button,
.tisu-player-body input,
.tisu-player-body select {
  font-family: var(--tisu-player-ui);
}
.event-title h1,
.tisu-character-layer strong {
  font-family: var(--tisu-player-display);
}
.tisu-ticket-gate h2,
.table-copy h2,
.tisu-shuffle-table h2,
.tisu-result-sheet h2,
.sheet-prize strong {
  font-family: var(--tisu-player-ui);
}
.event-title h1 {
  font-weight: 800;
  letter-spacing: .025em;
  line-height: 1.04;
  text-shadow: 0 2px 0 #845013, 0 8px 24px rgba(0,0,0,.7);
}
.event-title > p,
.gate-copy,
.tisu-kicker,
.tisu-field > span,
.gate-assurance,
.stage-instruction {
  font-family: var(--tisu-player-ui);
}
.tisu-ticket-gate h2 {
  font-weight: 700;
  letter-spacing: -.015em;
}
.gate-copy {
  color: #b9b5aa;
  font-size: 13px;
  line-height: 1.65;
}

/* New lightweight card-back artwork. */
.tisu-card { aspect-ratio: 2 / 3; }
.tisu-card-back {
  padding: 0;
  border-color: rgba(248, 207, 111, .72);
  background: #090a07 url("./assets/card-back.webp") center / cover no-repeat;
  box-shadow: 0 14px 30px rgba(0,0,0,.58), 0 0 18px rgba(230,164,46,.11);
}
.tisu-card-back .card-number,
.tisu-card-back .back-seal,
.tisu-card-back > small {
  opacity: 0;
  pointer-events: none;
}

/* Orbit: explicit geometry keeps every ring concentric and centered. */
.stage-orbit {
  left: calc(50% + 145px);
  top: 51%;
  width: min(690px, 70%);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transform-origin: 50% 50%;
  animation: tisu-orbit-v6 42s linear infinite;
}
.stage-orbit::before,
.stage-orbit::after {
  box-sizing: border-box;
  border-radius: 50%;
}
.stage-orbit::before { inset: 7%; }
.stage-orbit::after { inset: 19%; }
@keyframes tisu-orbit-v6 {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

/* ADMIN: one typeface only. */
.tisu-admin-body,
.tisu-admin-body *,
.tisu-admin-body button,
.tisu-admin-body input,
.tisu-admin-body select {
  font-family: var(--tisu-admin-ui);
}
.tisu-admin-body .admin-title h1 {
  font-size: clamp(38px, 3.2vw, 50px);
  font-weight: 700;
  letter-spacing: -.025em;
}
.tisu-admin-body .stat-card strong {
  font-size: 32px;
  font-weight: 700;
}
.tisu-admin-body .panel-heading h2 {
  font-size: 22px;
  font-weight: 700;
}
.tisu-admin-body .preview-prize strong {
  font-size: 17px;
  font-weight: 700;
}
.tisu-admin-body .admin-grid {
  grid-template-columns: minmax(430px, 500px) minmax(0, 1fr);
  align-items: start;
}
.tisu-admin-body .ticket-table-wrap {
  max-height: 620px;
}
.audit-open-button { gap: 8px; }
.audit-open-button b {
  min-width: 23px;
  height: 23px;
  display: inline-grid;
  place-items: center;
  padding: 0 6px;
  border: 1px solid rgba(238,182,79,.24);
  border-radius: 999px;
  color: #f0bb55;
  background: rgba(238,182,79,.07);
  font-size: 10px;
  font-weight: 700;
}

/* Audit is now a roomy modal instead of a permanent page block. */
.audit-modal {
  position: relative;
  width: min(920px, calc(100vw - 32px));
  max-height: min(82vh, 760px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid rgba(238,182,79,.34);
  border-radius: 22px;
  background: linear-gradient(180deg, #11130e 0%, #090a07 100%);
  box-shadow: 0 35px 110px rgba(0,0,0,.82), inset 0 0 55px rgba(233,172,53,.025);
}
.audit-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 26px 20px;
  border-bottom: 1px solid rgba(238,182,79,.16);
}
.audit-modal-head h2 {
  margin: 5px 0 0;
  color: #f4ead5;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -.015em;
}
.audit-modal-head p:last-child {
  max-width: 650px;
  margin: 7px 0 0;
  color: #9d9a91;
  font-size: 12px;
  line-height: 1.55;
}
.audit-modal-list {
  min-height: 180px;
  overflow: auto;
  overscroll-behavior: contain;
}
.audit-modal .audit-item {
  grid-template-columns: 165px minmax(0,1fr) auto;
  gap: 20px;
  min-height: 54px;
  padding: 15px 26px;
  border-bottom: 1px solid rgba(238,182,79,.09);
  font-size: 12px;
  line-height: 1.45;
}
.audit-modal .audit-item:hover { background: rgba(238,182,79,.025); }
.audit-modal .audit-time { color: #85837c; font-size: 11px; }
.audit-modal .audit-item strong { color: #e5ddcc; font-size: 12px; font-weight: 600; }
.audit-modal .audit-tag { color: #e9b14b; font-size: 10px; font-weight: 800; letter-spacing: .04em; }
.audit-modal-foot {
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 26px;
  border-top: 1px solid rgba(238,182,79,.14);
  background: rgba(0,0,0,.14);
}
.audit-modal-foot > span { color: #817f78; font-size: 11px; }
.audit-empty { padding: 40px 24px; text-align: center; }
.audit-empty span { display: block; margin-top: 5px; color: #85837c; font-size: 12px; }

@media (max-width: 1180px) and (min-width: 761px) {
  .stage-orbit { left: calc(50% + 110px); width: min(630px, 68%); }
  .tisu-admin-body .admin-grid { grid-template-columns: 400px minmax(0, 1fr); }
}

@media (max-width: 980px) {
  .tisu-admin-body .admin-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .event-title h1 {
    font-size: clamp(25px, 7.6vw, 33px);
    line-height: 1.08;
    letter-spacing: .01em;
  }
  .event-title > p { font-size: 11px; line-height: 1.4; }
  .tisu-ticket-gate h2 {
    font-size: clamp(23px, 6vw, 27px);
    line-height: 1.18;
  }
  .gate-copy { font-size: 12px; line-height: 1.6; }
  .stage-orbit {
    left: 50%;
    top: 60%;
    width: min(126vw, 540px);
    opacity: .46;
  }
  .tisu-card { aspect-ratio: 2 / 3; }

  .tisu-admin-body .admin-title h1 { font-size: clamp(31px, 9vw, 40px); }
  .audit-modal {
    width: min(96vw, 680px);
    max-height: 86vh;
    border-radius: 18px;
  }
  .audit-modal-head { padding: 20px 18px 16px; }
  .audit-modal-head h2 { font-size: 22px; }
  .audit-modal-head p:last-child { font-size: 11px; }
  .audit-modal .audit-item {
    grid-template-columns: 1fr auto;
    gap: 7px 12px;
    padding: 13px 18px;
    font-size: 11px;
  }
  .audit-modal .audit-time { grid-column: 1 / -1; font-size: 10px; }
  .audit-modal .audit-item strong { font-size: 11px; }
  .audit-modal-foot { padding: 11px 18px; }
}

@media (max-width: 430px) {
  .event-title h1 { font-size: 26px; }
  .tisu-ticket-gate h2 { font-size: 23px; }
  .audit-open-button { width: 100%; }
  .audit-modal-foot > span { display: none; }
  .audit-modal-foot .ghost-button { width: 100%; }
}


/* ====================================================================== */
/* TISU4D UI v7 — prize readability + Latin action buttons                */
/* ====================================================================== */
:root {
  --tisu-player-display-2: "Cinzel", Georgia, "Times New Roman", serif;
}

/* Make the main reward cards feel more real by showing them larger. */
.preview-phase .tisu-game-table,
.play-phase .tisu-game-table,
.tisu-game-table.preview-phase,
.tisu-game-table.play-phase {
  max-width: 700px;
}
.preview-phase .tisu-card-grid,
.play-phase .tisu-card-grid,
.tisu-game-table.preview-phase .tisu-card-grid,
.tisu-game-table.play-phase .tisu-card-grid {
  width: min(520px, 100%);
  gap: 12px;
}
.preview-phase .tisu-card,
.play-phase .tisu-card,
.tisu-game-table.preview-phase .tisu-card,
.tisu-game-table.play-phase .tisu-card {
  aspect-ratio: 2 / 3;
}
.preview-phase .tisu-card-front,
.play-phase .tisu-card-front,
.tisu-game-table.preview-phase .tisu-card-front,
.tisu-game-table.play-phase .tisu-card-front {
  background: transparent;
}
.preview-phase .tisu-card-art img,
.play-phase .tisu-card-art img,
.tisu-game-table.preview-phase .tisu-card-art img,
.tisu-game-table.play-phase .tisu-card-art img {
  object-fit: contain;
}

/* Sidebar/vault cards: do not hide the amount text. */
.prize-bar-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.prize-bar-item {
  min-height: 174px;
  display: grid;
  grid-template-columns: 1fr;
  align-content: start;
  justify-items: center;
  gap: 9px;
  padding: 10px 8px 12px;
}
.prize-bar-item > span:last-child {
  display: block !important;
  width: 100%;
  text-align: center;
}
.prize-bar-item small {
  display: block;
  color: #c79d47;
  font-family: "Inter", Arial, sans-serif;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .12em;
}
.prize-bar-item strong {
  display: block;
  margin-top: 4px;
  color: #f7ebcf;
  font-family: "Inter", Arial, sans-serif;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .015em;
  line-height: 1.2;
}
.tisu-card-art.is-compact {
  width: 88px;
  height: 136px;
  border-radius: 9px;
  box-shadow: 0 10px 18px rgba(0,0,0,.4), 0 0 14px rgba(238,182,79,.1);
}

/* Latin/classic action buttons on player side. */
.tisu-player-body .tisu-gold-button,
.tisu-player-body .tisu-link-button {
  font-family: var(--tisu-player-display-2);
  font-weight: 700;
  letter-spacing: .08em;
}
.tisu-player-body .tisu-gold-button {
  font-size: 15px;
  text-transform: none;
}
.tisu-player-body .tisu-link-button {
  font-size: 14px;
  color: #cbb894;
}
.tisu-player-body .tisu-gold-button span {
  font-family: "Inter", Arial, sans-serif;
  font-weight: 700;
}
.preview-action { gap: 11px; }
.preview-action .tisu-gold-button { min-width: min(300px, 100%); }
.preview-action .tisu-link-button { min-height: 24px; }

/* Tighter, balanced mobile card presentation. */
@media (max-width: 760px) {
  .preview-phase .tisu-card-grid,
  .play-phase .tisu-card-grid,
  .tisu-game-table.preview-phase .tisu-card-grid,
  .tisu-game-table.play-phase .tisu-card-grid {
    width: min(100%, 430px);
    gap: 7px;
  }
  .tisu-player-body .tisu-gold-button {
    font-size: 14px;
    letter-spacing: .06em;
  }
  .tisu-player-body .tisu-link-button {
    font-size: 13px;
  }
}

@media (max-width: 430px) {
  .preview-phase .tisu-card-grid,
  .play-phase .tisu-card-grid,
  .tisu-game-table.preview-phase .tisu-card-grid,
  .tisu-game-table.play-phase .tisu-card-grid {
    width: min(100%, 420px);
    gap: 6px;
  }
  .tisu-card-art.is-compact {
    width: 74px;
    height: 114px;
  }
  .prize-bar-item {
    min-height: 150px;
    gap: 6px;
    padding: 8px 6px 10px;
  }
  .prize-bar-item small { font-size: 7px; }
  .prize-bar-item strong { font-size: 12px; }
}


/* ====================================================================== */
/* TISU4D UI v8 — full card visibility fix                                */
/* ====================================================================== */
/* Problem fixed: reward cards were too short, so the bottom price area
   got cut off. Match the real source-card ratio so the full artwork is
   always visible on desktop and mobile. */

.tisu-game-table.preview-phase,
.tisu-game-table.play-phase,
.preview-phase,
.play-phase {
  max-width: 760px;
}

.tisu-game-table.preview-phase .tisu-card-grid,
.tisu-game-table.play-phase .tisu-card-grid,
.preview-phase .tisu-card-grid,
.play-phase .tisu-card-grid {
  width: min(500px, 100%);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

/* Real card image is around 0.55 width/height. */
.tisu-game-table.preview-phase .tisu-card,
.tisu-game-table.play-phase .tisu-card,
.preview-phase .tisu-card,
.play-phase .tisu-card,
.tisu-card {
  aspect-ratio: 11 / 20 !important;
}

.tisu-game-table.preview-phase .tisu-card-front,
.tisu-game-table.play-phase .tisu-card-front,
.preview-phase .tisu-card-front,
.play-phase .tisu-card-front {
  padding: 0 !important;
  display: block;
  background: #090805;
}

.tisu-game-table.preview-phase .tisu-card-art,
.tisu-game-table.play-phase .tisu-card-art,
.preview-phase .tisu-card-art,
.play-phase .tisu-card-art {
  width: 100%;
  height: 100%;
  display: block;
  background: #090805;
}

.tisu-game-table.preview-phase .tisu-card-art img,
.tisu-game-table.play-phase .tisu-card-art img,
.preview-phase .tisu-card-art img,
.play-phase .tisu-card-art img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain !important;
  object-position: center center !important;
}

/* Keep the side reward list showing the full mini card too. */
.tisu-card-art.is-compact {
  width: 78px;
  height: auto;
  aspect-ratio: 11 / 20;
}

@media (max-width: 760px) {
  .tisu-game-table.preview-phase .tisu-card-grid,
  .tisu-game-table.play-phase .tisu-card-grid,
  .preview-phase .tisu-card-grid,
  .play-phase .tisu-card-grid {
    width: min(100%, 455px);
    gap: 7px;
  }
  .tisu-card-art.is-compact {
    width: 68px;
  }
}

@media (max-width: 430px) {
  .tisu-game-table.preview-phase .tisu-card-grid,
  .tisu-game-table.play-phase .tisu-card-grid,
  .preview-phase .tisu-card-grid,
  .play-phase .tisu-card-grid {
    width: min(100%, 440px);
    gap: 6px;
  }
  .tisu-card-art.is-compact {
    width: 62px;
  }
}
