:root{--gold:#d8ad58;--gold2:#fff0ac;--panel:rgba(10,25,39,.88);--line:rgba(219,177,89,.32);--text:#eef4f4;--muted:#9fb0bd;--danger:#e27572}*{box-sizing:border-box}html{min-height:100%;background:#04101b}body{margin:0;min-height:100vh;color:var(--text);font-family:Inter,Segoe UI,system-ui,sans-serif;background:#04101b;overflow-x:hidden}.sky{position:fixed;inset:0;background:linear-gradient(180deg,rgba(2,9,17,.18),rgba(2,9,17,.78)),url('/assets/portal-background.webp') center/cover no-repeat;z-index:-2;animation:drift 24s ease-in-out infinite alternate}.particles{position:fixed;inset:0;z-index:-1;opacity:.45;background-image:radial-gradient(circle,#f8d37d 0 1px,transparent 1.5px);background-size:97px 97px;animation:stars 18s linear infinite;pointer-events:none}header{height:94px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:8px clamp(18px,4vw,72px);background:linear-gradient(180deg,rgba(3,12,21,.96),rgba(3,12,21,.76));border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.brand img{display:block;width:142px;height:82px;object-fit:contain;filter:drop-shadow(0 5px 18px #000)}nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}nav a,nav span,nav button{color:var(--text);font:600 14px/1 system-ui;text-decoration:none;background:none;border:0;padding:12px 14px}nav a:hover,nav button:hover{color:var(--gold2);cursor:pointer}nav .accent{border:1px solid var(--gold);border-radius:999px;color:var(--gold2)}nav form{display:inline;margin:0}main{width:min(980px,calc(100% - 32px));margin:0 auto;padding:54px 0 80px}main.wide{width:min(1480px,calc(100% - 32px))}.hero{text-align:center;max-width:850px;margin:4vh auto 58px}.hero h1,.panel h1,.admin-head h1{font-family:Georgia,serif;font-size:clamp(38px,5vw,72px);font-weight:500;letter-spacing:-.035em;margin:0 0 18px;background:linear-gradient(105deg,#fff6cf,#d6a64e 60%,#fff4c8);background-clip:text;color:transparent}.hero p{font:400 clamp(17px,2vw,22px)/1.7 Georgia,serif;color:#c9d4d8}.games{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.game-card{min-width:0;background:linear-gradient(145deg,rgba(19,38,52,.94),rgba(4,17,28,.94));border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.42);transition:transform .35s,border-color .35s,box-shadow .35s}.game-card:hover{transform:translateY(-9px);border-color:rgba(247,207,118,.78);box-shadow:0 26px 70px rgba(0,0,0,.58),0 0 35px rgba(210,164,70,.12)}.cover{position:relative;aspect-ratio:16/9;background-position:center;background-size:cover;overflow:hidden}.cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(3,12,20,.95))}.live{position:absolute;top:14px;right:14px;z-index:2;padding:6px 9px;border:1px solid rgba(124,218,164,.6);background:rgba(7,42,28,.84);border-radius:999px;color:#aaf2c4;font-size:10px;letter-spacing:.16em}.game-copy{padding:0 22px 24px;margin-top:-3px}.game-copy h2{font:500 26px Georgia,serif;color:#f5df9e;margin:0 0 9px}.game-copy p{min-height:52px;color:var(--muted);line-height:1.55;font-size:14px}.play,.button,button{display:inline-flex;align-items:center;justify-content:center;padding:11px 17px;border:1px solid #9e7936;border-radius:8px;color:#fff0bd;background:linear-gradient(180deg,#795522,#463014);text-decoration:none;font-weight:700;cursor:pointer;transition:.2s}.play:hover,.button:hover,button:hover{filter:brightness(1.2);transform:translateY(-1px)}.primary{background:linear-gradient(180deg,#b28535,#60451e);border-color:#e1bd68}.danger{background:linear-gradient(180deg,#984c48,#572521);border-color:#d87970}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:clamp(22px,4vw,42px);box-shadow:0 20px 60px rgba(0,0,0,.4);backdrop-filter:blur(14px)}.panel.narrow{max-width:620px;margin:3vh auto}.panel h1{font-size:clamp(34px,4vw,52px)}label{display:block;color:#d8e1e3;font-weight:650;margin:17px 0 7px}input,textarea{display:block;width:100%;margin-top:8px;padding:13px 14px;color:#eef6f5;background:rgba(1,10,17,.72);border:1px solid rgba(207,174,103,.4);border-radius:8px;font:16px/1.4 system-ui;outline:none}input:focus,textarea:focus{border-color:#e0b95f;box-shadow:0 0 0 3px rgba(215,173,82,.13)}label.check{display:flex;gap:10px;align-items:center;font-weight:500}label.check input{width:auto;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.error{color:#ffaaa5}.success{color:#9ce5b6}.banner{padding:15px 20px;background:rgba(91,21,21,.7);border:1px solid #a84e49;border-radius:9px}.address{display:block;overflow-wrap:anywhere;padding:15px;background:#020c14;border:1px solid var(--line);border-radius:8px;color:#f1ce7d}.balance{display:flex;justify-content:space-between;align-items:end;margin:28px 0;padding:24px;border:1px solid var(--line);border-radius:12px}.balance span{color:var(--muted)}.balance strong{font:42px Georgia,serif;color:#f4d27e}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid rgba(204,178,117,.18)}th{color:#d9bd7c;font-size:12px;text-transform:uppercase;letter-spacing:.1em}td small{display:block;color:var(--muted);margin-top:4px}.mini-cover{width:96px;aspect-ratio:16/9;object-fit:cover;border-radius:6px}.status{display:inline-block;padding:5px 8px;border-radius:999px;background:#273744}.status.catalogued{background:#165237;color:#aef1c6}.status.error{background:#642d2b;color:#ffc1bd}.admin-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px}.admin-head h1{font-size:clamp(38px,5vw,62px);margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:#d3ae61;font-size:12px;font-weight:800;margin-bottom:8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.stats div{padding:22px;background:rgba(9,25,39,.84);border:1px solid var(--line);border-radius:12px}.stats strong,.stats span{display:block}.stats strong{font:26px Georgia,serif;color:#f2d483}.stats span{color:var(--muted);font-size:12px;margin-top:6px}.workflow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.workflow article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#b48231;color:#08121a;font-weight:900}.workflow h2{font:28px Georgia,serif;color:#efd58d}.workflow dl{display:grid;grid-template-columns:120px 1fr;gap:10px}.workflow dt{color:var(--muted)}.workflow dd{margin:0;overflow-wrap:anywhere}.workflow code{color:#f7d982}.small{padding:7px 10px;font-size:12px}.empty{text-align:center;grid-column:1/-1;padding:60px;border:1px dashed var(--line);border-radius:16px;color:var(--muted)}footer{text-align:center;padding:32px;color:#738692;border-top:1px solid rgba(200,170,100,.12);font-size:12px}@keyframes drift{to{transform:scale(1.025) translate3d(-.5%,.5%,0)}}@keyframes stars{to{background-position:97px 194px}}@media(max-width:960px){.games{grid-template-columns:repeat(2,1fr)}.workflow{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){header{height:auto;min-height:78px;padding:6px 13px}.brand img{width:100px;height:65px}nav{justify-content:flex-end;gap:0}nav span{display:none}nav a,nav button{padding:9px 7px;font-size:12px}main,main.wide{width:min(100% - 20px,1480px);padding-top:30px}.games{grid-template-columns:1fr}.form-grid,.stats{grid-template-columns:1fr}.admin-head{align-items:flex-start;gap:16px;flex-direction:column}.panel{padding:20px}.workflow dl{grid-template-columns:1fr}.mini-cover{width:68px}th,td{padding:10px 5px}}

/* layer-fix-0.2.4 */
.sky{z-index:0;pointer-events:none}.particles{z-index:1}main,footer{position:relative;z-index:2}header{z-index:20}

/* game catalogue metadata 0.2.11 */
select{display:block;width:100%;margin-top:8px;padding:13px 14px;color:#eef6f5;background:#020d16;border:1px solid rgba(207,174,103,.4);border-radius:8px;font:16px/1.4 system-ui;outline:none}
select:focus{border-color:#e0b95f;box-shadow:0 0 0 3px rgba(215,173,82,.13)}
.genre-badge{position:absolute;top:0;left:0;z-index:3;padding:9px 15px 10px;border:1px solid rgba(237,201,119,.65);border-width:0 1px 1px 0;border-radius:0 0 12px 0;background:linear-gradient(135deg,rgba(8,21,34,.96),rgba(49,36,18,.9));color:#ffe8a7;font:800 11px/1 system-ui;letter-spacing:.08em;text-transform:uppercase;box-shadow:4px 5px 18px rgba(0,0,0,.35)}
.live.soon{border-color:rgba(231,190,102,.65);background:rgba(62,42,12,.9);color:#ffe1a0}
.game-card.coming-soon .cover{filter:saturate(.78)}
.release-note{min-height:0!important;margin:4px 0 15px!important;color:#e4c77d!important;font-weight:700}
.release-note.delayed{color:#ff9f91!important}
.play.disabled{cursor:default;opacity:.62;filter:saturate(.45);pointer-events:none}
.button-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.cover-admin-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 18px;align-items:end;margin:20px 0;padding:18px;border:1px solid var(--line);border-radius:14px;background:rgba(2,12,20,.58)}
.cover-admin-field>label{margin:0}.cover-upload-button{display:inline-flex!important;align-items:center;justify-content:center;min-height:48px;padding:11px 17px;border:1px solid #9e7936;border-radius:8px;color:#fff0bd!important;background:linear-gradient(180deg,#795522,#463014);cursor:pointer}.cover-upload-button:hover{filter:brightness(1.18)}.cover-upload-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.cover-upload-state{align-self:start;color:var(--muted);font-size:12px}.cover-upload-state.working{color:#f0d083}.cover-upload-state.success{color:#9ce5b6}.cover-upload-state.error{color:#ffaaa5}
.cover-admin-preview{grid-column:1/-1;display:block;width:min(100%,720px);aspect-ratio:16/9;object-fit:cover;border-radius:11px;border:1px solid rgba(229,193,111,.38);background:#020b12;box-shadow:0 14px 35px rgba(0,0,0,.32)}
@media(max-width:650px){.cover-admin-field{grid-template-columns:1fr}.cover-admin-preview{grid-column:1}}

/* wallet asset gallery 0.2.7 */
.wallet-assets{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.wallet-asset-card{display:flex;align-items:center;gap:15px;min-width:0;padding:13px;border:1px solid rgba(215,177,91,.26);border-radius:12px;background:rgba(2,12,20,.62)}.wallet-asset-card img,.wallet-asset-card.nft img{width:64px;height:64px;max-width:100px;max-height:100px;flex:0 0 64px;object-fit:contain;border-radius:9px;border:1px solid rgba(240,204,122,.4);background:#08141d}.wallet-asset-card div{min-width:0}.wallet-asset-card strong,.wallet-asset-card span,.wallet-asset-card small{display:block}.wallet-asset-card strong{overflow:hidden;text-overflow:ellipsis;color:#f5dda0}.wallet-asset-card span{margin-top:7px;font:24px Georgia,serif;color:#fff3c6}.wallet-asset-card small{margin-top:4px;color:var(--muted)}

/* wallet asset transfers 0.2.14 */
.transfer-card{align-items:flex-start;flex-wrap:wrap}.transfer-card>.asset-copy{flex:1;min-width:110px}.nft-wrap>button.nft{display:flex;align-items:center;gap:15px;flex:1;min-width:0;padding:0;border:0;background:none;text-align:left}.asset-transfer{width:100%;margin-top:4px;border-top:1px solid rgba(215,177,91,.18);padding-top:10px}.asset-transfer summary{cursor:pointer;color:#f0cc76;font-weight:700}.asset-transfer form{display:grid;grid-template-columns:1fr 130px auto;gap:9px;align-items:end;margin-top:10px}.asset-transfer label{margin:0;font-size:12px}.asset-transfer input{margin-top:5px;padding:9px 10px;font-size:14px}.asset-transfer button{min-height:40px}.soulbound{width:100%;padding-top:9px;border-top:1px solid rgba(215,177,91,.18);color:#d79b95!important}@media(max-width:650px){.asset-transfer form{grid-template-columns:1fr}.asset-transfer button{width:100%}}

/* wallet tabs and NFT details 0.2.9 */
.wallet-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.wallet-tabs button{padding:10px 18px;border:1px solid rgba(215,177,91,.34);border-radius:999px;background:rgba(2,12,20,.7);color:#d9c99f;cursor:pointer}.wallet-tabs button:hover,.wallet-tabs button.active{border-color:#e2bd68;background:linear-gradient(180deg,#8a6329,#4b3016);color:#fff3c6;box-shadow:0 0 18px rgba(226,189,104,.2)}.wallet-tab-panel{display:none}.wallet-tab-panel.active{display:block}.wallet-asset-card.nft{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer}.wallet-asset-card.nft:hover{transform:translateY(-2px);border-color:#e2bd68;box-shadow:0 10px 24px rgba(0,0,0,.28)}.nft-modal[hidden]{display:none}.nft-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px}.nft-modal-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(0,5,9,.82);backdrop-filter:blur(5px)}.nft-modal-card{position:relative;z-index:1;display:grid;grid-template-columns:minmax(180px,280px) minmax(280px,1fr);gap:28px;width:min(840px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;padding:28px;border:1px solid rgba(226,189,104,.55);border-radius:18px;background:linear-gradient(145deg,#102735,#07131d);box-shadow:0 28px 90px #000}.nft-modal-card>img{width:100%;max-height:360px;object-fit:contain;border-radius:13px;background:#061019;border:1px solid rgba(226,189,104,.28)}.nft-modal-card dl{display:grid;grid-template-columns:minmax(100px,.45fr) 1fr;gap:7px 16px}.nft-modal-card dt{color:#d7b15b;text-transform:capitalize}.nft-modal-card dd{margin:0;overflow-wrap:anywhere;color:#f2ead6}.nft-modal-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border-radius:50%;border:1px solid rgba(226,189,104,.45);background:#122633;color:#fff3c6;font-size:26px;cursor:pointer}.modal-open{overflow:hidden}@media(max-width:650px){.nft-modal-card{grid-template-columns:1fr;padding:20px}.nft-modal-card>img{max-height:220px}}

/* moderation, game servers and public highscores 0.2.13 */
.game-servers{margin:18px -4px 20px;padding:14px;border:1px solid rgba(215,177,91,.22);border-radius:12px;background:rgba(1,10,17,.46)}.game-servers h3{margin:0 0 10px;color:#efd58d;font:18px Georgia,serif}.game-servers article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid rgba(215,177,91,.13)}.game-servers article:first-of-type{border-top:0}.game-servers article div,.game-servers article strong,.game-servers article small{display:block}.game-servers article small,.muted{color:var(--muted)}.game-servers article a{color:#f0cc76;font-size:12px}.server-dot{display:inline-block;width:9px;height:9px;margin-right:7px;border-radius:50%;background:#8e5552}.server-dot.online{background:#60d58e;box-shadow:0 0 9px #43b974}.server-dot.maintenance{background:#e1ad50}.game-servers details{margin-top:10px}.game-servers summary{cursor:pointer;color:#efcf7c}.mini-highscore{padding:0;margin:10px 0 0;list-style:none}.mini-highscore li{display:grid;grid-template-columns:35px 1fr auto;gap:8px;padding:7px 0;border-top:1px solid rgba(215,177,91,.12)}.mini-highscore li span small{display:block;color:var(--muted)}.moderation-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:22px}.detail-list{display:grid;grid-template-columns:120px 1fr;gap:12px}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;overflow-wrap:anywhere}.warning-list{padding:0;list-style:none}.warning-list li{display:grid;gap:5px;padding:14px 0;border-bottom:1px solid rgba(215,177,91,.18)}.warning-list span{color:#f3e7c7}.warning-list small{color:var(--muted)}.blocked-row{background:rgba(100,25,25,.2)}.wallet-short{display:block;max-width:360px;overflow:hidden;text-overflow:ellipsis}.admin-search{display:grid;grid-template-columns:1fr auto;gap:12px;margin-bottom:20px}.admin-search input{margin:0}.server-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.server-game-card{display:flex;align-items:center;gap:22px}.server-game-card .mini-cover{width:180px}.server-game-card h2{margin-top:0;color:#efd58d}.report-key{margin-bottom:22px;border-color:#e3bb61}.report-key code{display:block;padding:15px;overflow-wrap:anywhere;background:#020c14;color:#aef1c6}.server-create{margin-top:22px}.game-copy p.muted{min-height:0}@media(max-width:850px){.moderation-grid,.server-admin-grid{grid-template-columns:1fr}}@media(max-width:650px){.server-game-card{align-items:flex-start;flex-direction:column}.server-game-card .mini-cover{width:100%}.admin-search{grid-template-columns:1fr}.game-servers article{align-items:flex-start}.wallet-short{max-width:150px}}

/* publisher and role management 0.2.17 */
.role-badge{display:inline-block;padding:5px 8px;border:1px solid rgba(226,189,104,.45);border-radius:999px;background:rgba(93,65,24,.62);color:#ffe8a7;font-size:11px;font-weight:800}.table-scroll{overflow-x:auto}.table-scroll table{min-width:920px}pre{max-width:100%;overflow:auto;padding:16px;border:1px solid var(--line);border-radius:9px;background:#020c14;color:#b8ecc9;white-space:pre-wrap;overflow-wrap:anywhere}
