#replayButtons {
  flex-direction: column;
  min-width: 20rem;
  justify-content: center;
}
#layersButton {
  min-width: 6rem;
  min-height: 6rem;

}
#layersButton img {
  width: 190%; 
  height: 5rem; 
  object-fit: contain;
}
#gallery {
  align-items: center;
  gap:1rem;
  padding:3rem;
  max-width: 100rem;
}

#ui {
  left:0;
  padding:2rem;
  padding-top:1rem;
  max-height:60%;
  overflow-y:auto;
}


#exportUI {
  flex-direction: column;
  /* background:red; */
  /* max-width: 90rem; */
  /* pointer-events:none; */
}
#timelapseLayout {
  --tl-col: min(100%, 140rem);
  --tl-radius: 1.25rem;
  --tl-gap: .6rem;
  --tl-inner-radius: calc(var(--tl-radius) - var(--tl-gap));
  position:fixed;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3rem;
  box-sizing:border-box;
  padding:calc(1rem + env(safe-area-inset-top)) calc(1.5rem + env(safe-area-inset-right)) calc(1rem + env(safe-area-inset-bottom)) calc(1.5rem + env(safe-area-inset-left));
  pointer-events:none;
  z-index:10;
}
#timelapseToolbar {
  position:relative;
  flex:0 0 auto;
  width:var(--tl-col);
  box-sizing:border-box;
  padding:var(--tl-gap);
  border-radius:var(--tl-radius);
  pointer-events:all;
  border:none;
  box-shadow:none;
}
.timelapseOptions {
  border-radius:.75rem;
}
.timelapseOptions .button,
.timelapseOptions button {
  border-radius:.25rem;
}
#timelapseScrubBar {
  position:relative;
  flex:1 1 auto;
  min-width:0;
  height:8rem;
  border-radius:var(--tl-inner-radius);
  background:#ffffff14;
  overflow:hidden;
  touch-action:none;
  user-select:none;
}
#timelapseScrubFill {
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:0%;
  background:var(--ghostStronger);
  pointer-events:none;
  z-index:1;
}
#timelapseScrubMarkers {
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:2;
}
#timelapseScrubStatus {
  position:relative;
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  font-size:var(--button-font-size);
  color:#fff;
  pointer-events:none;
  z-index:4;
}
#timelapseTime {
  flex:0 0 auto;
  display:flex;
  justify-content:center;
  align-items:center;
  min-width:20rem;
  box-sizing:border-box;
  padding:0;
  white-space:nowrap;
  font-size:var(--button-font-size);
  font-variant-numeric:tabular-nums;
  opacity:.8;
  pointer-events:none;
}
#timelapseTime span {
  font-size:inherit;
  line-height:inherit;
}
.timelapseSeekSpinner {
  position:absolute;
  left:50%;
  top:50%;
  width:9rem;
  height:9rem;
  margin:-4.5rem 0 0 -4.5rem;
  box-sizing:border-box;
  border-radius:50%;
  border:1rem solid #ffffff33;
  border-top-color:#fff;
  z-index:6;
  pointer-events:none;
  opacity:0;
  animation:spin .8s linear infinite, timelapseSpinnerIn .2s ease .15s forwards;
}
@keyframes timelapseSpinnerIn {
  to { opacity:1; }
}
.timelapseTimeSep {
  padding:0 1ch;
  opacity:.6;
}
#timelapsePreviewContainer {
  position:relative;
  flex:0 0 auto;
  height:50vh;
  min-height:0;
  width:var(--tl-col);
  pointer-events:all;
  cursor:default;
}
#timelapsePlaybackStage {
  position:absolute;
  inset:0;
  padding:0;
  box-sizing:border-box;
  pointer-events:none;
  display:flex;
  align-items:center;
  justify-content:center;
  container-type:size;
}
#timelapsePreviewMedia {
  position:relative;
  width:min(100cqw, calc(100cqh * var(--timelapse-aspect, 1)));
  height:auto;
  aspect-ratio:var(--timelapse-aspect, auto);
  border-radius:var(--tl-radius);
  overflow:visible;
  flex:0 0 auto;
}
#timelapseVideo,
#timelapseVideoB,
#timelapseVideoFreeze {
  display:block;
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  background:#000 !important;
  border-radius:.5rem;
  box-shadow:none;
  border:none;
  outline:none;
  object-fit:contain;
  width:min(92vw, calc(60vh * var(--timelapse-aspect, 1)));
  height:auto;
  max-width:92vw;
  max-height:60vh;
  aspect-ratio:var(--timelapse-aspect, auto);
}
#timelapseLivePreview,
#timelapsePreviewHit {
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:none;
  outline:none;
  box-shadow:none;
}
#timelapseLivePreview {
  z-index:2;
  pointer-events:none;
  background:#000 !important;
  object-fit:contain;
  border-radius:var(--tl-radius);
  overflow:hidden;
}
#timelapsePreviewHit {
  background:transparent !important;
  z-index:5;
  pointer-events:all;
  cursor:pointer;
}
#timelapseEndStats {
}
.timelapsePlayFlash {
  position:absolute;
  inset:0;
  z-index:6;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  opacity:.004;
  will-change:opacity;
}
.timelapsePlayFlash.on {
  animation:timelapsePlayFlash 1.25s linear both;
}
.timelapsePlayFlash > * {
  background-color:rgba(0,0,0,.45);
  border-radius:50%;
}
@keyframes timelapsePlayFlash {
  0%, 60% { opacity:1; }
  100% { opacity:.004; }
}
@keyframes timelapseEndStatsOut {
  from { opacity:1; }
  to { opacity:0; }
}
.timelapseEndStatsInner.overlaid {
  animation:timelapseEndStatsOut .5s ease both;
}
@keyframes timelapseEndStatsIn {
  from { opacity:0; }
  to { opacity:1; }
}
.timelapseEndStatsInner {
  pointer-events:none;
  border-radius:var(--tl-radius);
  position:relative;
  flex:0 0 auto;
  width:var(--tl-col);
  max-height:38vh;
  overflow:auto;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:var(--uiCol);
  animation:timelapseEndStatsIn .45s ease both;
  gap:.55rem;
  padding:2rem 2.4rem;
  z-index:6;
}
.timelapseStatCol {
  display:flex;
  flex-direction:column;
  gap:.45rem;
  flex:0 0 auto;
  width:auto;
  min-width:min-content;
}
.timelapseStatCol:first-child {
  width:max-content;
}
.timelapseStatPair {
  display:flex;
  flex-direction:row;
}
.timelapseStatKey {
  text-align:left;
  font-size:5rem;
  opacity:.62;
  min-width:9em;
  padding-right:1em;
}

.timelapseStatVal {
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  text-align:left;
  justify-self:start;
}
.timelapseStatRow {
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  justify-content:center;
  gap:2.4rem;
  width:100%;
}
.timelapseStatSectionTitle {
  opacity:.62;
  margin:0 0 .35rem;
}
.timelapseStatPies {
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:2.4rem;
}
.timelapseStatPieSection {
  display:flex;
  flex-direction:column;
  flex:0 0 auto;
}
.timelapseStatPieRow {
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  flex:0 0 auto;
  gap:.9rem;
}
.timelapseStatPie {
  width:9rem;
  height:9rem;
  flex:0 0 auto;
  border-radius:50%;
  box-shadow:0 0 0 .1rem #ffffff22;
}
.timelapseStatPieLegend {
  display:grid;
  grid-template-columns:auto auto;
  column-gap:.45rem;
  row-gap:.12rem;
  align-items:center;
}
.timelapseStatPieLegendItem {
  display:contents;
}
.timelapseStatPieSwatch {
  width:.9rem;
  height:.9rem;
  border-radius:.1rem;
  box-shadow:0 0 0 .1rem #ffffff22;
}
.timelapseStatPieLabel {
  opacity:.88;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:12rem;
}
.timelapseStatPieVal {
  text-align:right;
  font-variant-numeric:tabular-nums;
  opacity:.8;
}
.timelapseStatColorsSection {
  flex-direction:column;
  width:100%;
  margin-top:2rem;
}
.timelapseStatColorsBar {
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:stretch;
  gap:0;
  height:3rem;
  overflow:hidden;
  border-radius:.25rem;
  width:100%;
  min-width:0;
}
.timelapseStatsCol1 {

}
.timelapseStatsCol2 {
  width:auto;
}

.timelapseStatColor {
  min-width:0;
  min-height:2.4rem;
  height:100%;
  border-radius:0;
}
.timelapseStatColor.first {
  border-radius:.25rem 0 0 .25rem;
}
.timelapseStatColor.last {
  border-radius:0 .25rem .25rem 0;
}
.timelapseStatColor.first.last {
  border-radius:.25rem;
}
#timelapseVideo,
#timelapseVideoB {
  z-index:1;
  opacity:0;
  pointer-events:none;
}
#timelapseVideo.active,
#timelapseVideoB.active {
  z-index:2;
  opacity:1;
}
#timelapseVideoFreeze {
  z-index:3;
  opacity:0;
  pointer-events:none;
}
#timelapseVideoFreeze.show {
  opacity:1;
}
body:has(#timelapsePreviewContainer.timelapseProcessingPreview) #paintingCanvas {
  visibility:hidden;
}
#timelapsePreviewContainer.timelapseHistoryPreview {
  background:transparent;
  pointer-events:all;
}
body:has(#timelapsePreviewContainer.timelapseHistoryPreview) #paintingCanvas {
  visibility:hidden;
  pointer-events:none !important;
}
body:has(#timelapsePreviewContainer.timelapseHistoryPreview) #timelapseLivePreview {
  pointer-events:none;
  background:transparent !important;
}
#confirmMessage {
  font-size: 2.5rem;
  line-height:4rem;
  color:rgba(255, 255, 255, 0.786);
  /* background:red; */
  /* text-transform: none; */
  width:max-content;
  max-width:100%;
  font-family: sans-serif;
}

#canvasVideo {
  background:transparent;
  width:100%;
  height:100%;
  padding:0;
  margin:0;
  top:0;
}

.eyedropperUI {
  cursor:none;
  position:absolute;
  top:50%;
  left:50%;
  width:24rem;
  height:24rem;
  border-radius:50%;
  outline-offset: -1px;
  border: 6rem solid;
  /* outline: 2rem solid; */
  transform: translate(-50%, -50%) ;
}
.resizeControl {
  pointer-events: all;
  position:absolute;
  bottom:0%;
  left:100%;
  margin-left:1rem;
  width:3rem;
  height:4rem;
  border-radius:.5rem;
  background:rgba(0, 0, 0, 0.237);
}
:where(html:not(.strokeActive)) .resizeControl:hover {
  background:var(--hover);
}
.resizeControl:active {
  background:var(--accent);
}


#pricingInfoButton {
  font-size: 1.5rem;
  background:rgba(209, 209, 209, 0.244);
  border-radius: 2rem;
  width:3rem;
  height:3rem;
  align-self:center;
  align-items: center;
  justify-content:center;

}

#dragOverlay{
  /* background:rgba(255, 0, 0, 0.126); */
  width:100%;
  height:100%;
  position:absolute;
}

#share{
  position:relative;
  gap:1rem;
  max-width: 56.5rem;
  height:max-content;
  flex-direction: column;
  pointer-events: none;
}

.qrContainer > *  {
  max-width:100%;
}
#share > *  {
  max-width:100%;
  font-size:2rem;
}

#wglCanvas {
  position:absolute;
  background:rgb(100, 100, 100);
  height:30rem;
  width:30rem;
  right:0;
  bottom:0;
  border-radius:1.5rem;
}


#usernameHBox {
  gap:1rem;
  align-items: center;
}
#avatar {
  position:relative;
  cursor: pointer;
  min-width: 10rem;
  max-width: 10rem;
  max-height: 10rem;
  height: 10rem;
  border-radius: 50%;
  background: var(--dark);
  background-size: contain; /* Updated property */
  border: 1px solid rgba(255, 255, 255, 0.1);
  outline-offset: -1px;
  font-size: 4rem;
  font-weight: 300;
  align-items: center;
  justify-content: center;
  color: var(--font);
  /* background:red; */
}


#usernameLabel {
  text-transform: none;
  padding:2rem;
  font-weight:300;
  font-size:3rem;
}



#colorPrefs {
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  width:min-content;
}
.column {
  display:flex;
  flex-direction: column;
  gap:.1rem;
  
}
.grid3{
  grid-template-columns: 1fr 1fr 1fr;
  display:grid;
}

#windowQR {
  position:absolute;
  bottom:1rem;
  right:1rem;
  width:10rem;
  height:10rem;
  background:rgb(255, 255, 255);
  border-radius: .4rem;
  padding:.7rem;
  mix-blend-mode: normal;
  opacity: .3;
}
#curveEditorPanel {
  position:absolute;
  padding:5rem;
  border-radius: 1rem;
  top:40%;
  width:50rem;
  height:50rem;
  overflow:visible;
}
#curveEditorContainer {
  position:relative;
  /* background:orange; */
}
#curveEditor {
  background:#00000032;
  border-radius: 5px;
  overflow:visible;
}
.controlPoint {
  position:'absolute';
  width:'10px';
  height:'10px';
  background:orange;
}
.oAuthButton {
  width:100%;
  min-height:10rem;
  align-items:center;
  justify-content:center;
  border-radius:1rem;
  font-size:2.5rem;
}
.hotkey {
  width:100%;
  height:6rem;
}

.hotkeyContainer {
  justify-content: space-between;
  padding:.5rem;
}

#hotkeyRecorder {
  width:100%;
  height:100%;
  z-index: 1;
}
#confirmControls {
  top:100%;
  position:absolute;
  background: var(--uiCol);
  width:100%;
  padding:.5rem;
  display: flex;
  justify-content:center;
  align-items: center; /* Added to center children vertically */
  box-sizing: border-box;
  border-radius:1rem;
}
#confirmControls > *{
  min-width: 8rem;
  min-height: 8rem;
  margin: 0.5rem; /* Added margin to separate children */
}
#layerMenu {
  width:25rem;
  background:var(--uiCol);
  border-radius:1rem;
  box-shadow: var(--dropShadow);
}
#layerMenuLabel {
  font-size:small;
  /* background:red; */
  align-self: center;
  padding: 1rem;
}
#replayExport {
  top:0;
  padding:2rem;
}

.slider{
  background:red;
}
.sliderLabel {
  pointer-events: all;
  position:absolute;
  color:var(--font);
  left:-3rem;
  font-size:small;
}
.sliderLabelAbove {
  pointer-events: none;
  position:absolute;
  color:var(--font);
  left:0rem;
  top:-.3rem;
  font-size:1.75rem;
}

.label {
  justify-content: center;
  width:max-content;
  padding-left:2rem;
  padding-right:2rem;
  padding-top:1rem;
  padding-bottom:1rem;
  font-size:2rem;
}
.labelSmall {
  font-size: 1rem;
  background:red;
}
#optionsBG {
  pointer-events:all;
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
}

#layerMenuSliders {
  /* background:red; */
  left:10rem;
  margin:1rem;
  margin-left:4.5rem;
  width:18.5rem;
}
#signInWithApple {
  margin-top:2rem;
  gap:1rem; 
  padding:3.5rem;
  background:#000000e7;
  color:rgb(255, 255, 255); 
  flex-direction:row;
  width:100%;
  min-height:9rem;

}
:where(html:not(.strokeActive)) #signInWithApple:hover {
  background:rgb(40, 40, 40);
}
:where(html:not(.strokeActive)) .oAuthButton:hover {
  opacity:.8;
  box-shadow: var(--dropShadow);

}
#signInWithApple:active {
  background:rgb(68, 68, 68);
}
#signInWithGoogle {
  margin-top:2rem;
  gap:2rem; 
  padding:3.5rem;
  font-weight:500;
  background:#ffffffe7;
  color:rgb(0, 0, 0); 
  flex-direction:row;
  width:100%;
  min-height:9rem;
}

:where(html:not(.strokeActive)) #signInWithGoogle:hover {
  background:rgb(219, 219, 219);
}
#signInWithGoogle:active {
  background:rgb(185, 185, 185);
  box-shadow: var(--dropShadow);
}
#monthlyYearly {
  /* background:red; */
  margin:2rem;
  padding:1rem;
}

.square {
  width: 100%;
  height: 100%;
  /* background: var(--cssCol); */
  outline: 1px solid rgba(255, 255, 255, 0.1);
  outline-offset: -1px;
}


#hotkeyInputContainer {
  margin-top:3rem;
  position:relative;
  /* background:red; */
  height:15rem;
  width:50rem;
}
#hotkeyInput {
  cursor: default;
  position:absolute;
  width:41rem;
  padding:4.3rem;
  padding-bottom:2.4rem;
  pointer-events: all;
  /* background:var(--dark); */
  color: transparent;
  background-color:transparent;
  /* background:red; */
}
#hotkeyInputText {
  /* padding:4.3rem; */
  position:absolute;
  width:100%;
  height:12.5rem;
  text-align: center;
  justify-content: center;
  align-items: center;
  background:var(--dark);
  border-radius:.5rem;

}


#syncStatusContainer {
  width:100%;
  opacity:.8;
  font-size:2.2rem;
}
#syncStatus {
  align-self: flex-start;
  text-align: center;
  justify-content: center;
  align-items: center;
  width:100%;
  height:100%;
}
#upgradeSyncButton {
  font-size:2rem;
  background:var(--accent3);
  /* max-width:min-content; */
  /* margin-left: auto; */
  min-width:13rem;
  /* padding-left:6rem;
  padding-right:6rem; */
}
:where(html:not(.strokeActive)) #upgradeSyncButton:hover {
  background:var(--accent3Hover);
}
#experiments {
  width:40rem;
  height:40rem;
  border:1px solid white;
  /* background:red; */
}
.info {
  min-width:3.5rem;
  height:3.5rem;
  pointer-events:all;
  background:rgba(255, 255, 255, 0.101);
  border-radius: 5rem;
  align-self:center;
  font-size:1.5rem;
  font-weight:400;
  color:white;
  background-size:cover;
  background-position: center;
  background-image: url('../common/toolIcons/help.svg');
}
:where(html:not(.strokeActive)) .info:hover {
  background-color:rgba(255, 255, 255, 0.498);
}

#hueSat {
  background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);
}
#splashScreen {
  position:fixed;
  top:0;
  left:0;
  width:100vw;
  height:100vh;
  background: #000000a3;
  backdrop-filter: blur(5rem);
  -webkit-backdrop-filter: blur(5rem);
  z-index: 100;
  display:flex;
  justify-content:center;
  align-items:center;
  transition: opacity 1s ease-in-out, backdrop-filter 1s, -webkit-backdrop-filter 1s ;
}
#cross {
  pointer-events: none;
  position:absolute;
  width:0rem;
  height:0rem;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
}
#cross.relativeMode {
  width:200rem;
  height:200rem;
  transition:width .17s ease-in-out, height .17s ease-in-out !important;

}
#horizontalLine {
  height:.2rem;
  width:100%;
  background: linear-gradient(to right, var(--ghost), var(--ghostStronger), var(--ghost));  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);

}
#verticalLine {
  width:.2rem;
  height:100%;
  background: linear-gradient(to top, var(--ghost), var(--ghostStronger), var(--ghost));  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
}
.thumbTextContainer {

  top:50% !important;
  gap:1rem;
  left:50%;
  transform:translate(-50%,-50%) !important;
  width:100%;
  pointer-events:none;

}

.transformIcon {
  pointer-events: none;
  width:5rem;
  height:5rem;
  /* background:red; */
}


#puckUndoDragger, #puckSizeDragger, #puckJitterDragger, #puckToolPresetsButton, #puckToolModeButton, #puckResize {
  box-shadow: var(--liftShadow);
}

:where(html:not(.strokeActive)) #puckUndoDragger:hover, :where(html:not(.strokeActive)) #puckSizeDragger:hover, :where(html:not(.strokeActive)) #puckJitterDragger:hover, :where(html:not(.strokeActive)) #puckResize:hover,
:where(html:not(.strokeActive)) #puckToolPresetsButton:hover, :where(html:not(.strokeActive)) #puckToolModeButton:hover,
:where(html:not(.strokeActive)) #toolPresetsButton:hover, :where(html:not(.strokeActive)) #toolModeButton:hover, :where(html:not(.strokeActive)) #toolSettingsButton:hover {
  background-color: var(--uiCol);
  background-image: linear-gradient(rgba(255,255,255,.06), rgba(255,255,255,.06));
}
#puckUndoDragger[data-held], #puckResize[data-held],
#puckToolPresetsButton:active, #puckToolModeButton:active,
#toolPresetsButton:active, #toolModeButton:active, #toolSettingsButton:active {
  background-color: var(--uiCol) !important;
  background-image: linear-gradient(rgba(255,255,255,.12), rgba(255,255,255,.12));
}
:where(html:not(.strokeActive)) #toolPresetsButton.presetPill:hover {
  background-color: rgba(0, 0, 0, 0.25);
  background-image: none;
}
#toolPresetsButton.presetPill:active {
  background-color: rgba(255, 255, 255, 0.16) !important;
  background-image: none;
}
:where(html:not(.strokeActive)) #puckEyedropper:hover #eyedropperButton {
  opacity: .95;
}
#puckEyedropper[data-held] #eyedropperButton {
  opacity: 1;
}
/* Match the username button's height while editing */
#inputUsername .hpInputInner {
  min-height: 0;
}
#inputUsername .hpInputText {
  line-height: normal;
}
#inputUsername .hpCaret {
  height: 1em;
}
