/* #PlayGalaxyCup 2026 - shared scene styling
   Every scene is authored on a fixed 1920x1080 stage and scaled to fit,
   so an OBS browser source at any size stays pixel-true to the PSD.      */

@font-face{font-family:"Samsung Body";src:url("/fonts/SamsungSSBody-Light.otf")format("opentype");font-weight:300;font-display:block}
@font-face{font-family:"Samsung Body";src:url("/fonts/SamsungSSBody-Regular.otf")format("opentype");font-weight:400;font-display:block}
@font-face{font-family:"Samsung Body";src:url("/fonts/SamsungSSBody-Bold.otf")format("opentype");font-weight:700;font-display:block}
@font-face{font-family:"Samsung Head";src:url("/fonts/SamsungSSHead-Medium.otf")format("opentype");font-weight:500;font-display:block}
@font-face{font-family:"Samsung Head";src:url("/fonts/SamsungSSHead-Bold.otf")format("opentype");font-weight:700;font-display:block}

:root{
  --pgc-blue:#0b3fd4;
  --pgc-cyan:#4fc3ff;
  --pgc-deep:#04122f;
}

*{margin:0;padding:0;box-sizing:border-box}

html,body{
  width:100%;height:100%;
  background:transparent;
  overflow:hidden;
  font-family:"Samsung Body",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}

/* The 1920x1080 design stage. JS scales it to the viewport. */
#stage{
  position:absolute;top:0;left:0;
  width:1920px;height:1080px;
  transform-origin:0 0;
  will-change:transform;
}

#stage img{display:block;pointer-events:none;user-select:none}

/* Absolute placement helper - coordinates are straight out of the PSD. */
.at{position:absolute;transform-origin:50% 50%}

/* Anything that animates gets its own layer so OBS composites it cheaply. */
.gpu{will-change:transform,opacity,clip-path;backface-visibility:hidden}
