CREATORJD's picture
Publish MASSFRONT v1.30.0 iPhone cloud playtest (part 2)
fcce7e3 verified
Raw
History Blame Contribute Delete
1.78 kB
/* ============================================================================
ads.css — in-world ad boards
----------------------------------------------------------------------------
The billboards themselves are drawn in WebGL (src/adboards.js) and need no
CSS at all. The only DOM surface this file owns is the single settings row
adRenderSettingsRow() appends to #setList — it already inherits the full
look of every other row via the shared .sItem/.setRow/.sTx/.sDs/.sBuy/.togB
classes from ui.css, so nothing here is load-bearing. This file only adds a
small amount of namespaced polish (.adsRow*) so the row reads as slightly
distinct from a purchasable item, using the same theme variables (--cy,
--gold, --panelG, --steelB, --fT…) the rest of the settings screen uses,
never redefining or overriding a shared class from ui.css.
============================================================================ */
.adsRow{
border-color:rgba(65,200,255,.16);
background:linear-gradient(180deg,rgba(20,34,50,.95),rgba(8,14,22,.97)) padding-box,var(--steelB) border-box;
}
.adsRow .sTx b{
display:inline-flex;align-items:center;gap:6px;
}
.adsRow .sDs{
color:#7fa8c4;
}
/* Small "loop" pulse on the emoji glyph so the row hints at motion/video even
at rest — subtle, off the critical path, and harmless if reduced-motion
users never notice it (it's a colour/opacity pulse, not a layout shift). */
@keyframes adsGlyphPulse{
0%,100%{ filter:drop-shadow(0 0 0 rgba(65,200,255,0)); opacity:.92; }
50%{ filter:drop-shadow(0 0 5px rgba(65,200,255,.55)); opacity:1; }
}
.adsRow .sTx b{
animation:adsGlyphPulse 2.6s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce){
.adsRow .sTx b{ animation:none; }
}