sciencehud.razor.scss
root {
width: 100%;
height: 100%;
pointer-events: none;
font-family: Inter, Poppins, Arial, sans-serif;
color: #ffffff;
}
.canvas {
position: absolute;
left: 286px;
top: 100px;
right: 250px;
bottom: 92px;
pointer-events: none;
border-radius: 8px;
border: 2px solid #344258;
box-shadow: 0px 12px 34px #000000, 0px 0px 0px 1px #8fd7ff;
background-color: #05070b;
}
/* ------------------------------------------------------------------ */
/* Sidebar + palette */
/* ------------------------------------------------------------------ */
.sidebar {
position: absolute;
left: 16px;
top: 16px;
bottom: 16px;
width: 252px;
display: flex;
flex-direction: column;
pointer-events: all;
}
.brand {
position: relative;
flex-shrink: 0;
height: 126px;
padding: 0px 2px 12px 4px;
}
.logo {
position: absolute;
left: 0px;
top: 0px;
height: 34px;
line-height: 34px;
font-size: 28px;
font-weight: 900;
letter-spacing: 2px;
color: #7fe3ff;
text-shadow: 0px 3px 0px #000000;
}
.tagline {
position: absolute;
left: 0px;
top: 39px;
height: 18px;
line-height: 18px;
font-size: 11px;
font-weight: 800;
letter-spacing: 1px;
text-transform: uppercase;
color: #6f8198;
}
.rank {
position: absolute;
left: 0px;
right: 0px;
top: 68px;
height: 34px;
line-height: 34px;
padding: 0px 12px;
border-radius: 7px;
background-color: #1d2b18;
border: 1px solid #9be56c;
color: #b9ff88;
font-size: 14px;
font-weight: 900;
}
.palette {
flex-grow: 1;
flex-shrink: 1;
min-height: 0px;
display: flex;
flex-direction: column;
gap: 4px;
padding-top: 6px;
padding-right: 8px;
overflow-y: scroll;
}
.cat-head {
flex-shrink: 0;
height: 20px;
line-height: 20px;
margin-top: 11px;
font-size: 12px;
font-weight: 900;
letter-spacing: 1.5px;
text-transform: uppercase;
color: #74859c;
}
.tool-btn {
flex-shrink: 0;
width: 100%;
height: 34px;
padding: 0px 9px;
border-radius: 7px;
border: 1px solid #263444;
background-color: #0d141d;
color: #ffffff;
display: flex;
flex-direction: row;
align-items: center;
gap: 9px;
cursor: pointer;
transition: all 0.08s ease-out;
}
.tool-btn:hover {
background-color: #172232;
border-color: #546478;
}
.tool-btn.active {
background-color: #18304a;
border-color: #5fd7ff;
box-shadow: 0px 0px 12px #5fd7ff;
}
.tool-btn b {
height: 18px;
line-height: 18px;
font-size: 13px;
font-weight: 800;
}
.swatch {
width: 18px;
height: 18px;
border-radius: 4px;
border: 1px solid #8996a7;
flex-shrink: 0;
}
/* ------------------------------------------------------------------ */
/* Top stat strip */
/* ------------------------------------------------------------------ */
.stat-strip {
position: absolute;
left: 286px;
top: 16px;
right: 18px;
height: 56px;
display: flex;
flex-direction: row;
gap: 10px;
pointer-events: none;
}
.stat {
min-width: 118px;
height: 56px;
padding: 8px 14px;
border-radius: 9px;
background-color: #0f1722;
border: 1px solid #2d3a4a;
justify-content: center;
align-items: center;
}
.objective {
position: absolute;
left: 286px;
right: 250px;
top: 16px;
height: 68px;
padding: 8px 12px;
border-radius: 8px;
background-color: #151b21;
border: 1px solid #303c4a;
pointer-events: none;
flex-direction: column;
gap: 5px;
}
.objective.complete {
border-color: #9be56c;
background-color: #142217;
}
.objective-top {
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.objective-top span {
font-size: 13px;
font-weight: 900;
color: #ffd95a;
text-transform: uppercase;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.objective-top b {
font-size: 13px;
font-weight: 900;
color: #ffffff;
}
.objective-text {
height: 16px;
line-height: 16px;
font-size: 12px;
font-weight: 700;
color: #b7c4d6;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.progress {
height: 5px;
border-radius: 3px;
background-color: #070a0f;
overflow: hidden;
}
.progress-fill {
height: 5px;
border-radius: 3px;
background-color: #ffd95a;
}
.stat.wide {
flex-grow: 1;
}
.stat-text {
width: 100%;
height: 22px;
line-height: 22px;
color: #ffffff;
font-size: 13px;
font-weight: 900;
letter-spacing: 0px;
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* ------------------------------------------------------------------ */
/* Live stat chips */
/* ------------------------------------------------------------------ */
.stats {
position: absolute;
right: 18px;
top: 16px;
width: 212px;
height: 78px;
flex-direction: row;
gap: 7px;
pointer-events: none;
}
.stat-chip {
flex-grow: 1;
flex-direction: column;
align-items: center;
justify-content: center;
height: 78px;
border-radius: 9px;
background-color: #0b1119;
border: 1px solid #263444;
border-top-width: 3px;
}
.stat-chip.particles { border-top-color: #5fd7ff; }
.stat-chip.reactions { border-top-color: #ff9d5a; }
.stat-chip.discovered { border-top-color: #8de27f; }
.stat-num {
font-size: 22px;
font-weight: 900;
color: #ffffff;
text-align: center;
}
.stat-num small {
font-size: 13px;
font-weight: 900;
color: #a6b8cc;
}
.stat-chip.particles .stat-num { color: #7fe3ff; }
.stat-chip.reactions .stat-num { color: #ffb27a; }
.stat-chip.discovered .stat-num { color: #9be88c; }
.stat-lbl {
font-size: 11px;
font-weight: 900;
letter-spacing: 0px;
text-transform: uppercase;
color: #c1cfdd;
margin-top: 4px;
text-align: center;
}
/* ------------------------------------------------------------------ */
/* Lab notebook */
/* ------------------------------------------------------------------ */
.notebook {
position: absolute;
right: 18px;
top: 106px;
width: 212px;
padding: 13px 14px;
border-radius: 9px;
background-color: #0b1119;
border: 1px solid #263444;
display: flex;
flex-direction: column;
gap: 3px;
pointer-events: none;
}
.milestones {
position: absolute;
right: 18px;
top: 286px;
width: 212px;
padding: 13px 14px;
border-radius: 8px;
background-color: #12140f;
border: 1px solid #806d2c;
display: flex;
flex-direction: column;
gap: 3px;
pointer-events: none;
}
.nb-head {
height: 18px;
line-height: 18px;
font-size: 12px;
font-weight: 900;
letter-spacing: 1px;
color: #b8c9dc;
margin-bottom: 7px;
}
.nb-empty {
font-size: 13px;
font-weight: 800;
line-height: 18px;
color: #b7c7d8;
}
.nb-entry {
min-height: 19px;
line-height: 19px;
font-size: 13px;
font-weight: 900;
color: #8de27f;
}
.milestone-entry {
min-height: 20px;
line-height: 20px;
font-size: 13px;
font-weight: 900;
color: #ffd95a;
}
/* ------------------------------------------------------------------ */
/* Bottom toolbar */
/* ------------------------------------------------------------------ */
.toolbar {
position: absolute;
left: 286px;
right: 18px;
bottom: 16px;
height: 56px;
display: flex;
flex-direction: row;
align-items: center;
gap: 10px;
pointer-events: all;
}
.group {
display: flex;
flex-direction: row;
align-items: center;
gap: 6px;
padding: 6px 8px;
border-radius: 10px;
background-color: #0d141d;
border: 1px solid #263444;
}
.group.experiments {
flex-grow: 1;
}
.icon-btn {
width: 38px;
height: 38px;
border-radius: 7px;
border: 1px solid #303c4a;
background-color: #141d29;
color: #ffffff;
font-size: 22px;
font-weight: 900;
line-height: 38px;
text-align: center;
justify-content: center;
align-items: center;
cursor: pointer;
}
.readout {
width: 30px;
height: 38px;
line-height: 38px;
text-align: center;
justify-content: center;
align-items: center;
font-size: 17px;
font-weight: 900;
color: #7fe3ff;
}
.mode-btn {
height: 38px;
padding: 0px 13px;
border-radius: 7px;
border: 1px solid #303c4a;
background-color: #141d29;
color: #ffffff;
font-size: 13px;
font-weight: 800;
line-height: 38px;
text-align: center;
justify-content: center;
align-items: center;
cursor: pointer;
transition: all 0.08s ease-out;
}
.scenario-btn {
height: 38px;
min-width: 76px;
padding: 0px 12px;
border-radius: 7px;
border: 1px solid #303c4a;
background-color: #181d24;
color: #ffffff;
font-size: 13px;
font-weight: 900;
line-height: 38px;
text-align: center;
justify-content: center;
align-items: center;
cursor: pointer;
}
.scenario-btn:hover {
background-color: #242b34;
border-color: #64748a;
}
.scenario-btn.active {
color: #12150c;
border-color: #ffe68c;
background-color: #ffd95a;
}
.icon-btn:hover,
.mode-btn:hover {
background-color: #1f2c3e;
border-color: #64748a;
}
.mode-btn.active {
color: #6ef2ff;
border-color: #6ef2ff;
background-color: #16283a;
}
.mode-btn.danger {
color: #ff9d9d;
border-color: #ff6868;
}
.mode-btn.danger:hover {
background-color: #3a1c1c;
}
/* ------------------------------------------------------------------ */
/* Help overlay */
/* ------------------------------------------------------------------ */
.overlay {
position: absolute;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
z-index: 50;
justify-content: center;
align-items: center;
pointer-events: all;
}
.backdrop {
position: absolute;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
background-color: #04070b;
cursor: pointer;
}
.panel {
width: 640px;
padding: 28px 32px;
border-radius: 16px;
background-color: #0e1622;
border: 1px solid #354253;
box-shadow: 0px 24px 60px #000000;
flex-direction: column;
align-items: center;
}
.panel-title {
height: 36px;
line-height: 36px;
font-size: 28px;
font-weight: 900;
color: #7fe3ff;
margin-bottom: 18px;
}
.help-cols {
flex-direction: row;
gap: 36px;
}
.help-col {
width: 270px;
flex-direction: column;
gap: 7px;
}
.help-h {
height: 22px;
line-height: 22px;
font-size: 14px;
font-weight: 900;
letter-spacing: 1px;
text-transform: uppercase;
color: #ffd95a;
margin-bottom: 4px;
}
.help-row {
flex-direction: row;
align-items: center;
gap: 10px;
}
.help-row b {
width: 92px;
font-size: 12px;
font-weight: 900;
color: #ffffff;
}
.help-row span {
flex-grow: 1;
font-size: 12px;
font-weight: 600;
color: #b7c4d6;
}
.help-row2 {
font-size: 12px;
font-weight: 600;
color: #b7c4d6;
line-height: 18px;
}
.help-row2 b {
font-weight: 900;
color: #ffffff;
}
.close-btn {
margin-top: 24px;
width: 180px;
height: 44px;
border-radius: 9px;
background-color: #1c86c8;
border: 1px solid #5fd7ff;
color: #ffffff;
font-size: 15px;
font-weight: 900;
line-height: 44px;
text-align: center;
justify-content: center;
align-items: center;
cursor: pointer;
}
.close-btn:hover {
background-color: #2199e0;
}
/* ------------------------------------------------------------------ */
/* Intro / title screen */
/* ------------------------------------------------------------------ */
.intro {
position: absolute;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
background-color: #04060a;
z-index: 90;
justify-content: center;
align-items: center;
pointer-events: all;
overflow: hidden;
}
.intro-canvas {
position: absolute;
left: -2px;
top: -2px;
right: -2px;
bottom: -2px;
width: 100%;
height: 100%;
pointer-events: none;
}
.intro-scrim {
position: absolute;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
background-color: rgba( 4, 7, 13, 0.62 );
pointer-events: none;
}
.intro-inner {
position: relative;
z-index: 1;
flex-direction: column;
align-items: center;
pointer-events: none;
}
.intro-logo {
height: 96px;
line-height: 96px;
font-size: 92px;
font-weight: 900;
letter-spacing: 8px;
color: #aeefff;
text-shadow: 0px 0px 38px #2bb6ff;
}
.intro-sub {
height: 30px;
line-height: 30px;
font-size: 22px;
font-weight: 800;
color: #ffffff;
text-shadow: 0px 2px 10px #000000;
margin-top: 8px;
}
.intro-hint {
height: 20px;
line-height: 20px;
font-size: 14px;
font-weight: 700;
color: #aebfd2;
text-shadow: 0px 1px 6px #000000;
margin-top: 12px;
}
.intro-btn {
margin-top: 34px;
width: 240px;
height: 54px;
border-radius: 11px;
background-color: #1c86c8;
border: 1px solid #5fd7ff;
color: #ffffff;
font-size: 18px;
font-weight: 900;
letter-spacing: 1px;
line-height: 54px;
text-align: center;
justify-content: center;
align-items: center;
cursor: pointer;
pointer-events: all;
box-shadow: 0px 0px 30px #5fd7ff;
}
.intro-foot {
height: 18px;
line-height: 18px;
font-size: 12px;
font-weight: 700;
letter-spacing: 2px;
text-transform: uppercase;
color: #7c90a8;
margin-top: 20px;
}
.intro-btn:hover {
background-color: #2199e0;
}
/* ------------------------------------------------------------------ */
/* Swatch colours */
/* ------------------------------------------------------------------ */
.swatch.sand { background-color: #eabb55; }
.swatch.water { background-color: #297aeb; }
.swatch.oil { background-color: #2a2114; }
.swatch.smoke { background-color: #6a7078; }
.swatch.steam { background-color: #bfdff2; }
.swatch.gas { background-color: #8ded67; }
.swatch.cloud { background-color: #aebdcc; }
.swatch.tnt { background-color: #db2420; }
.swatch.c4 { background-color: #ef8638; }
.swatch.bomb { background-color: #1f2226; }
.swatch.nitro { background-color: #eb29b8; }
.swatch.fire { background-color: #ff6610; }
.swatch.spark { background-color: #fff273; }
.swatch.acid { background-color: #73ff38; }
.swatch.plant { background-color: #34b843; }
.swatch.seed { background-color: #855218; }
.swatch.vine { background-color: #1a8029; }
.swatch.fuse { background-color: #c2873f; }
.swatch.metal { background-color: #9fabb7; }
.swatch.stone { background-color: #616166; }
.swatch.glass { background-color: #a9e6ff; }
.swatch.ice { background-color: #8fd1ff; }
.swatch.salt { background-color: #ededd6; }
.swatch.mud { background-color: #5c3d1f; }
.swatch.lava { background-color: #ff6b10; }
.swatch.mercury { background-color: #ccd6e6; }
.swatch.virus { background-color: #d11fff; }
.swatch.clone { background-color: #3dffcc; }
.swatch.wall { background-color: #57606b; }
.swatch.eraser,
.swatch.erase { background-color: #141a24; }