/* arcade.fun platform identity. Canonical guidance: /brand.html and docs/brand-guide.md.
   Scope intentionally excludes hosted game documents and third-party engine builds. */
:root{
 --af-night:#100c29;--af-ink:#15102f;--af-glass:rgba(32,24,70,.91);--af-glass-deep:rgba(19,14,44,.95);
 --af-cream:#fff6df;--af-muted:#c2b8df;--af-gold:#ffbf53;--af-mint:#7cf8d2;--af-violet:#b59aff;--af-coral:#ff879e;
 --af-edge:rgba(190,163,255,.4);--af-edge-bright:rgba(223,207,255,.7);--af-highlight:rgba(255,255,255,.12);
 --af-radius:20px;--af-control-radius:12px;--af-glow:0 0 28px rgba(151,104,255,.12);
 --af-shadow:0 18px 48px rgba(5,2,21,.4),inset 0 1px 0 var(--af-highlight);
 --af-font-display:'Bungee','Arial Black',Impact,sans-serif;--af-font-body:'Figtree',system-ui,sans-serif;--af-font-mono:'IBM Plex Mono',ui-monospace,monospace;
}
body[data-brand="arcade"]{color:var(--af-cream);font-family:var(--af-font-body);-webkit-font-smoothing:antialiased}
body[data-brand="arcade"] :is(input,textarea,select,button){box-sizing:border-box}
/* A safe baseline for every platform field, including forms without a component class. */
body[data-brand="arcade"] :is(input:where(:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]):not([type="button"]):not([type="submit"])),textarea,select){
 min-width:0;max-width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--af-edge);border-radius:var(--af-control-radius);
 background:linear-gradient(145deg,rgba(145,104,255,.06),transparent 60%),var(--af-glass-deep);color:var(--af-cream);caret-color:var(--af-gold);
 box-shadow:inset 0 2px 6px rgba(3,0,16,.3),inset 0 1px 0 rgba(255,255,255,.04);font:500 16px/1.45 var(--af-font-body);
 transition:border-color .16s,box-shadow .16s,background-color .16s;color-scheme:dark;
}
body[data-brand="arcade"] :is(input,textarea)::placeholder{color:var(--af-muted);opacity:.85}
body[data-brand="arcade"] :is(input,textarea,select):hover:not(:disabled){border-color:var(--af-edge-bright)}
body[data-brand="arcade"] :is(input,textarea,select):focus-visible{border-color:var(--af-gold);outline:2px solid var(--af-mint);outline-offset:3px;box-shadow:inset 0 1px 0 #ffffff0c,0 0 0 4px #7cf8d212,0 0 22px #b59aff26}
body[data-brand="arcade"] :is(input,textarea,select)[aria-invalid="true"]{border-color:var(--af-coral);box-shadow:inset 3px 0 var(--af-coral)}
body[data-brand="arcade"] :is(input,textarea,select):disabled{color:#b1a8cc;border-color:#75658d80;opacity:.75;cursor:not-allowed}
body[data-brand="arcade"] input[readonly]{border-style:dashed;color:#d7c9f2}
body[data-brand="arcade"] textarea{resize:vertical}
body[data-brand="arcade"] select option{background:var(--af-ink);color:var(--af-cream)}
body[data-brand="arcade"] input:is([type="checkbox"],[type="radio"],[type="range"]){accent-color:var(--af-gold)}
body[data-brand="arcade"] input[type="file"]{font-size:13px;padding:8px}
body[data-brand="arcade"] input[type="file"]::file-selector-button{min-height:36px;margin-right:10px;padding:7px 12px;background:linear-gradient(#ffe1a1,var(--af-gold));color:#2c1a0c;border:1px solid #ffe5b9;border-radius:7px;font:700 12px var(--af-font-body);cursor:pointer;box-shadow:0 2px #9b6128}
body[data-brand="arcade"] :is(button,.button,.btn):focus-visible{outline:3px solid var(--af-mint);outline-offset:4px}
body[data-brand="arcade"] :is(.btn:not(.replay-button),.button,button.primary){
 min-height:44px;border:1px solid #ffe4ad;border-radius:var(--af-control-radius);color:#30200c;
 background:linear-gradient(155deg,#ffe6ad 0%,var(--af-gold) 58%,#ffac43 100%);box-shadow:inset 0 1px #fff9,0 3px 0 #85501d,0 7px 20px #ffbf5314;
 font-family:var(--af-font-body);font-weight:800;text-decoration:none;transition:transform .15s,box-shadow .15s,filter .15s;
}
body[data-brand="arcade"] :is(.btn:not(.replay-button),.button,button.primary):hover:not(:disabled){filter:brightness(1.06);box-shadow:inset 0 1px #fffb,0 4px 0 #85501d,0 9px 25px #ffbf5326;transform:translateY(-1px)}
body[data-brand="arcade"] :is(.btn:not(.replay-button),.button,button.primary):active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px #fff6,0 1px #85501d}
body[data-brand="arcade"] :is(.btn.ghost,button.quiet){background:linear-gradient(145deg,#c6a6ff12,#8b9df407),var(--af-glass-deep);color:var(--af-cream);border:1px solid var(--af-edge);box-shadow:inset 0 1px #ffffff12,0 3px 0 #09061f;font-weight:700}
body[data-brand="arcade"] .btn.ghost:hover:not(:disabled){border-color:var(--af-violet);box-shadow:inset 0 1px #ffffff20,0 4px #09061f,0 0 20px #b59aff20}
body[data-brand="arcade"] :is(.btn,button.primary):disabled{background:linear-gradient(140deg,#65507d,#3c3155);color:#e3d5ef;border-color:#9b7eaf7a;box-shadow:inset 0 1px #ffffff12;opacity:.7;transform:none;filter:none;cursor:not-allowed}
/* Platform overlays remain recognisable over any game's art. */
body[data-brand="arcade"] :is(.card,.player-dialog,.pov-dialog,.workspace,.tool-card){background:linear-gradient(135deg,#b49aff10,transparent 40%),var(--af-glass);border:1px solid var(--af-edge);border-radius:var(--af-radius);box-shadow:var(--af-shadow),var(--af-glow)}
body[data-brand="arcade"] :is(.card,.player-dialog,.pov-dialog){backdrop-filter:blur(20px) saturate(135%);-webkit-backdrop-filter:blur(20px) saturate(135%)}
body[data-brand="arcade"] .bar{background:linear-gradient(105deg,#c4a7ff0d,transparent 55%),rgba(23,16,52,.95);border-bottom-color:var(--af-edge);box-shadow:0 1px 0 #ffffff07,0 7px 25px #07031a20;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
body[data-brand="arcade"] .header-menu summary,body[data-brand="arcade"] .pov-toggle{background:linear-gradient(140deg,#b59aff14,transparent),var(--af-glass-deep);border-color:var(--af-edge);box-shadow:inset 0 1px #ffffff16,0 2px #09061f;border-radius:10px}
body[data-brand="arcade"] .header-menu nav{background:var(--af-glass-deep);border-color:var(--af-edge-bright);box-shadow:var(--af-shadow);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
body[data-brand="arcade"] .header-menu a:hover{background:#b59aff18;color:var(--af-gold)}
/* Game lobbies are platform UI; games themselves keep their own materials and palette. */
body[data-brand="arcade"][data-game="online-boxing"] .boxing-lobby{background:linear-gradient(130deg,#b59aff12,transparent 45%),var(--af-glass);border:1px solid var(--af-edge-bright);border-radius:22px;box-shadow:var(--af-shadow),0 0 50px #956bff12}
body[data-brand="arcade"][data-game="online-boxing"] .boxing-lobby .btn{border-radius:12px;background:linear-gradient(155deg,#ffe7ae,var(--af-gold) 60%,#ffac43);border:1px solid #ffe2a9;color:#2d1b0a;box-shadow:inset 0 1px #fff8,0 3px #85501d}
body[data-brand="arcade"][data-game="online-boxing"] .boxing-lobby .btn.ghost{background:linear-gradient(140deg,#b59aff13,transparent),var(--af-glass-deep);color:var(--af-cream);border-color:var(--af-edge);box-shadow:inset 0 1px #ffffff17,0 3px #08051c}
body[data-brand="arcade"] .boxing-invite label{color:var(--af-muted);font-size:13px}
body[data-brand="arcade"] .boxing-invite input{width:100%;font-family:var(--af-font-mono);font-size:14px}
body[data-brand="arcade"] :is(.boxing-lobby,.pov-dialog) details summary{min-height:36px;display:flex;align-items:center;color:var(--af-muted);cursor:pointer}
body[data-brand="arcade"] .boxing-lobby details summary::before{content:'▸';color:var(--af-gold);margin-right:9px}
body[data-brand="arcade"] .boxing-lobby details[open] summary::before{content:'▾'}
body[data-brand="arcade"] :is(.boxing-lobby,.pov-dialog) .fine{color:var(--af-muted)}
/* Other first-party surfaces consume the same primitives without changing their layout. */
body[data-brand-page="trade"] :is(.panel,.box),body[data-brand-page="make"] :is(.box,.panel),body[data-brand-page="developers"] section{background:linear-gradient(130deg,#b59aff0b,transparent 50%),var(--af-glass);border-color:var(--af-edge);border-radius:var(--af-radius);box-shadow:var(--af-shadow)}
body[data-brand-page="trade"] .amount{border-color:var(--af-violet);background:var(--af-glass-deep);box-shadow:inset 0 1px #ffffff12,0 0 22px #b59aff10}
body[data-brand-page="trade"] .amount input{border:0;box-shadow:none;background:transparent;padding:8px;min-height:46px;font:600 25px/1.3 var(--af-font-mono)}
body[data-brand-page="trade"] .amount:focus-within{border-color:var(--af-gold);outline:2px solid var(--af-mint);outline-offset:3px}
body[data-brand-page="trade"] .amount input:focus-visible{outline:none;box-shadow:none}
body[data-brand-page="trade"] .seg{border:1px solid var(--af-edge);box-shadow:inset 0 1px #ffffff12;background:var(--af-glass-deep)}
body[data-brand-page="trade"] .seg button[aria-pressed="true"]{background:linear-gradient(#ffdd93,var(--af-gold));color:#2d1c09;box-shadow:inset 0 1px #fff6}
body[data-brand-page="trade"] .seg.sell button.sell[aria-pressed="true"]{background:linear-gradient(#ffc2b5,#ff879e);color:#360b1e}
body[data-brand-page="studio"],body[data-brand-page="toolbox"]{background:radial-gradient(ellipse at 8% 5%,#6e3a9a2b,transparent 48%),var(--af-night);--bg:var(--af-night);--panel:#241a43;--well:var(--af-ink);--ink:var(--af-cream);--muted:var(--af-muted);--line:var(--af-edge);--orange:var(--af-gold)}
body[data-brand-page="studio"] .workspace{box-shadow:var(--af-shadow),0 0 60px #b59aff0b}
body[data-brand-page="studio"] .project-rail{background:#100c294d}
body[data-brand-page="studio"] .topbar,body[data-brand-page="toolbox"] .topbar{background:#15102fdd;border-color:var(--af-edge);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
body[data-brand-page="studio"] .brief-pane,body[data-brand-page="studio"] .project-pane{background:transparent}
body[data-brand-page="studio"] .workflow-options>label{border-color:var(--af-edge);background:#100c2955}
body[data-brand-page="studio"] .workflow-options>label:has(input:checked){background:#7cf8d211;border-color:var(--af-mint);box-shadow:inset 0 1px #ffffff12}
body[data-brand-page="studio"] .intro h1,body[data-brand-page="toolbox"] .intro h1{font-family:var(--af-font-display);font-size:clamp(32px,4vw,56px);letter-spacing:0;line-height:1.15}
body[data-brand-page="studio"] .intro h1 em,body[data-brand-page="toolbox"] .intro h1 em{font-style:normal;color:#d4b7ff}
@supports not (backdrop-filter:blur(1px)){body[data-brand="arcade"] :is(.card,.player-dialog,.pov-dialog){background:#241a49}}
@media(max-width:760px){body[data-brand="arcade"] :is(input:where(:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"])),textarea,select),body[data-brand="arcade"] .boxing-invite input{font-size:16px}body[data-brand="arcade"] :is(.card,.player-dialog,.pov-dialog){backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}
@media(prefers-reduced-motion:reduce){body[data-brand="arcade"] :is(input,textarea,select,button,.btn,.button){transition:none!important;transform:none!important}}
@media(prefers-reduced-transparency:reduce){body[data-brand="arcade"] :is(.card,.player-dialog,.pov-dialog,.workspace,.tool-card,.boxing-lobby){background:#241a49!important;backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(forced-colors:active){body[data-brand="arcade"] :is(input,textarea,select,.btn,button.primary,.card){border:1px solid CanvasText;box-shadow:none}body[data-brand="arcade"] :is(.btn,button.primary){color:ButtonText;background:ButtonFace}}
body[data-brand="arcade"][data-game="online-boxing"] #pBoxing{background:linear-gradient(180deg,#140d2b33,#1b10364d)}
body[data-brand="arcade"] .boxing-options :is(#boxQueue,#boxReady){grid-column:1/-1}
body[data-brand="arcade"] .listen{background:linear-gradient(90deg,#b59aff0a,transparent),var(--af-glass-deep);border-top-color:var(--af-edge)}

body[data-brand-page="studio"] #connect{background:linear-gradient(155deg,#ffe7ae,var(--af-gold));border:1px solid #ffe3aa;border-radius:12px;color:#2d1b0a;box-shadow:inset 0 1px #fff8,0 3px #85501d}
@media(max-width:760px){body[data-brand="arcade"] :is(input,textarea,select):is(#title,#code,#prompt){font-size:16px}}

body[data-brand="arcade"] input:-webkit-autofill{ -webkit-text-fill-color:var(--af-cream);caret-color:var(--af-gold);-webkit-box-shadow:0 0 0 1000px var(--af-ink) inset;box-shadow:0 0 0 1000px var(--af-ink) inset}
body[data-brand="arcade"] .pov-toggle[aria-pressed="true"]{background:linear-gradient(140deg,#7cf8d218,transparent),#103629;color:#b9ffe5;border-color:var(--af-mint);box-shadow:inset 0 1px #ffffff17,0 0 16px #7cf8d215}
