body {
  padding: 0;
  margin: 0;
  
  color: #262525;
  background: #F7F4F1;
  font-family: -apple-system, system-ui, sans-serif;
}

h1 {
  font-family: ui-serif, serif;
  font-weight: 450;
  font-size: 1.65em;
  margin: 0; padding: 0;
}

h1.large {
  font-size: 2.3em;
}

h1.massive {
  font-size: 3em;
  font-weight: 600;
  line-height: 0.9em;
}

h2, h3, h4, h5 {
  font-family: -apple-system, system-ui, sans-serif;
  margin: 0; padding: 0;
}

h4, h5 {
  font-weight: 400;
}

h5.flag {
	font-weight: 500;
	font-size: 1em;
	line-height: 1.85em;
}

h5.flag .pill {
	font-size: 0.9em;
	background-image: linear-gradient(to right, #F19699, #EC782E, #7F5AC0, #384173);
	color: #F7F4F1;
	margin: 0;
}

p {
  margin: 0; padding: 0;
  line-height: 1.35em;
}

a {
  color: #7F5AC0;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

a.subdued {
  color: #262525;
  opacity: 50%;
}

a.subdued:hover {
  opacity: 100%;
}

a.no_underline:hover {
	text-decoration: none;
}

.dark {
  background: #262525;
  color: #F7F4F1;
}

.secondary {
  opacity: 50%;
}

.footnote {
  font-size: 0.7em;
}

.metadata {
  text-transform: uppercase;
  font-size: 0.7em;
}

.serif {
  font-family: ui-serif, serif;
}

.medium {
  font-weight: 500;
}

.with_shadow {
  filter: drop-shadow(0px 1px 1px rgb(0 0 0 / 0.4));
}

.strike {
  text-decoration: line-through;
  text-decoration-color: #EC782E;
  color: #999;
}

.spacer {
  flex-grow: 1;
}

.vertical_padded {
  padding: 40px 0 40px 0;
}

.vertical_padded-small {
	padding: 15px 0 15px 0;
}

.vertical_margin {
  margin-top: 40px !important;
  margin-bottom: 40px !important;
}

.top_padded {
  padding-top: 30px !important;
}

.top_padded-small {
  padding-top: 15px !important;
}

.top_padded-extra {
  padding-top: 60px !important;
}

.top_margin-extra {
  margin-top: 60px !important;
}

.center_content {
  margin: auto;
  text-align: center;
}

#general .center_content p.footnote {
  padding: 5px 0 30px 0;
}

div.hstack, div.hstack_adaptive {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 15px;
}

div.vstack {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
}

#wayne { /* party on */
}

#half_grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

#hero_spacer, #hero, #home_orbit {
  width: 50vw;
  height:100vh;
  min-width: 280px;
/*  max-width: 700px;*/
}

#hero {
  background: no-repeat center center;
  background-size: cover;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 100;
}

@keyframes scale-in {
  from {
    opacity: 0;
    transform: scale(0.25);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

#home_orbit {
  position: fixed;
  right: 0;
  top: 0;
  z-index: -10;
  
  display: grid;
  place-items: center;
  
  animation: 0.75s scale-in 5s both;
}

@property --angle {
  syntax: '<angle>';
  inherits: true;
  initial-value: 0deg;
}

@keyframes revolve {
  from { --angle: 0deg; }
  to { --angle: 360deg; }
}

#home_orbit .orbit_pic {
  display: block;
  grid-area: 1 / 1;
  
  width: auto;
  height: auto;
  max-width: 200px;
  max-height: 200px;
  border-radius: 2px;
  overflow: hidden;
  
  --x-amplitude: 340px;
  --y-amplitude: 340px;
  --x: calc(cos(var(--angle)) * var(--x-amplitude));
  --y: calc(sin(var(--angle)) * var(--y-amplitude));
  
  transform:
    rotate(var(--rotation))
    translate(var(--x), var(--y))
    rotate(calc(var(--rotation) * -1));
      
  animation: revolve 25s linear infinite;
}

#hero.video {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: #000;
}

@keyframes hand-move-in {
  from {
    transform: translate(0, 1000px);
  }
  to {
    transform: none;
  }
}

#hero.video.with_hand {
  background-color: transparent;
  background-image: url('/img/hand_phone.png');
  background-size: 100vh;
  background-position: center center;
  background-repeat: no-repeat;
  
  animation: 1s hand-move-in 1.5s both;
}

#hero_header img.appstore {
  animation: 1s fade-in 2.5s both;
}

video.hero_demo {
  width: auto;
  height: 100vh;
}

#hero.video.with_hand video.hero_demo {
  height: 81vh;
  border-radius: 5vh;
  overflow: hidden;
}

@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
#home_head {
  animation: 1s fade-in 0.25s both;
}

@keyframes pop-up {
  from {
    opacity: 0;
    transform: translate(0, 20px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
#home_subhead {
  animation: 0.5s pop-up 1s both;
}
#home_more {
  animation: 1s pop-up 3s both;
}
#home_scancode {
  animation: 1s pop-up 3.5s both;
}

#hero.scrolling {
  overflow: scroll
}

#hero_header {
  position: absolute;
  top: 25px;
  right: 40px;
}

#hero_header img.appstore {
  width: 160px;
  height: auto;
}

#hero_footer {
  position: absolute;
  bottom: 25px;
  right: 25px;
}

#hero_footer .appclip {
  width: 132px;
  height: 160px;
  background: #F7F4F1;
  border-radius: 24px;
}

#hero_footer .appclip img {
  width: 100%;
  height: auto;
}

#hero.scrolling img.appstore {
  display: none;
}

#hero_header img.partylogo {
  display: none;
}

#hero .photo_feed {
  padding: 100px;
}

#hero .logo {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100vh;
}

#hero .logo img {
  width: 80%;
  height: auto;
  max-width: 240px;
  filter: saturate(0) brightness(10);
}

#hero .logo.black img {
  filter: saturate(0) brightness(0);
}

#the_camera {
  position: absolute;
  z-index: 1000;
  top: 50vh;
  left: -200px;
  width: 400px;
  height: 400px;
  margin-top: -200px;
  
  filter: drop-shadow(0px 0px 10px rgb(0 0 0 / 0.35));
}

#the_camera img {
  width: 400px;
  height: 400px;
}

#the_camera.iphone {
  left: -125px;
  width: 250px;
  height: 500px;
  margin-top: -250px;
}

#the_camera.iphone img {
  width: 250px;
  height: 500px;
}

.photo_feed {
  display: flex;
  flex-direction: column;
  gap: 40px;
  align-items: center;
}

.photo_feed .photo {
  width: 100%;
  max-width: 800px;
}

.photo_feed .photo figure {
  margin: 0;
  padding: 0;
  aspect-ratio: 1; /* for loading */
}

.photo_feed .meta {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  margin: 10px 0;
}

.photo_feed .photo figure img {
  width: 100%;
  height: auto;
  object-fit: contain;
  background-color: #ccc;
  filter: drop-shadow(0px 1px 1px rgb(0 0 0 / 0.4));
}

.snapshot {
  width: 80%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0px 1px 1px rgb(0 0 0 / 0.4));
  margin: auto;
  padding: 40px 0 40px 0;
  transform: rotate(-3deg);
}

.camera_clip_leading, .camera_clip_trailing {
  background-position: center right;
  width: 980px;
  height: 260px;
  background-size: cover;
  margin-left: -80px;
  filter: drop-shadow(0px 1px 1px rgb(0 0 0 / 0.4));
}

.camera_clip_trailing {
  background-position: center left;
  margin: 0 -80px 0 0;
}

#general {
  padding-right: 100px;
}

#general.wide {
  padding-right: 0px;
}

#camera_details {
	padding-right: 120px;
}

#general img.appstore {
  width: 200px;
  height: auto;
}

#camera_details img.appstore {
  width: 160px;
  height: auto;
}

#general p {
	padding: 10px 0 10px 0;
}

@keyframes wipe-to-left {
  to { -webkit-mask-position: left; }
}

#general img.writing {
  width: auto;
  height: 99px;
  margin-top: -25px;
  display: block;
  
  -webkit-mask-image: linear-gradient(
	  to left,
	  transparent 47.5%,
	  #fff 52.5%
	);
  -webkit-mask-size: 210%;
  -webkit-mask-position: right;
  
  animation: 0.5s wipe-to-left 0.5s linear forwards;
}

#general .odometer {
  padding: 3px 6px 3px 6px;
  background: #fff;
  border-radius: 6px;
  border: 1px solid #999;
}

#legalese h1 {
	padding: 30px 0 20px 0;
}

#legalese h2 {
	padding: 20px 0 5px 0;
	font-size: 1.15em;
}

#legalese h3 {
	padding: 10px 0 5px 0;
	font-size: 0.9em;
}

#legalese p, .legalese li {
	font-size: 0.8em;
	line-height: 1.5em;
	padding-bottom: 10px;
}

#legalese ul {
	margin: 0;
	padding: 5px 0 5px 20px;
}

#main_content .photo_feed {
  display: none;
}

ul.checklist, ul.shitlist {
  padding-inline-start: 20px;
  margin: 0;
}

ul.checklist {
  list-style-image: url('/img/checkmark.svg');
}

ul.shitlist {
  list-style-image: url('/img/minus-red.svg');
  color: #8F192E;
}

ul.checklist li, ul.shitlist li {
  margin: 10px 0 10px 0;
  font-weight: 500;
  line-height: 1.25em;
}

ul.checklist li .secondary, ul.shitlist li .secondary {
	font-weight: 350;
}

ul.checklist li::marker, ul.shitlist li::marker {
  font-size: 1.8em;
}

a.button {
  padding: 9px 12px 9px 12px;
  background-color: #262525;
  color: #F7F4F1;
  border-radius: 6px;
  display: inline-block;
  font-size: 1.25em;
  font-weight: 450;
}

a.button.pro_gradient {
  background-image: linear-gradient(to bottom right, #F19699, #7F5AC0, #384173);
}

a.button.party_gradient {
	background-color: unset;
	background-image: linear-gradient(to bottom right, #F19699, #EC782E);
	color: #F7F4F1;
	background-clip: unset;
}

a.button.pro_gradient.invite {
  background-image: linear-gradient(to right, #93804C, #B9A368);
}

a.gold {
  color: #93804C;
}

div.callout {
  background: #fff;
  padding: 20px;
  margin: -20px;
  border-radius: 20px;
}

img.pfp {
  clip-path: circle(48%);
  background-color: #ddd;
  object-fit: cover;
}

.dark img.pfp {
  background-color: #999;
}

.pfp_stack {
  display: flex;
  flex-direction: row;
  gap: 0px;
}

.pfp_stack .stack_item {
  margin-right: -15px;
}

.pfp_stack img.pfp {
  width: 60px;
  height: auto;
  
  border-radius: 50%;
  border: 3px solid #F7F4F1;
}

.dark .pfp_stack img.pfp {
  background-color: #999;
  border-color: #262525;
}

.pill {
  background-color: #ddd;
  font-size: 0.6em;
  text-transform: uppercase;
  
  border-radius: 5px;
  margin: 0px 5px;
  padding: 3px 4px 3px 4px;
}

.pill.knockout {
  color: #F7F4F1;
  background-color: #262525;
}

.download_party {
  display: flex;
  flex-direction: row;
  gap: 7px;
  align-items: center;
  
  border-radius: 17px;
  padding: 9px;
  color: #F7F4F1;
  background-color: #262525;
  max-width: 310px;
}

.download_party img.apple {
  width: 40px;
  height: auto;
}

.download_party .cta {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding-right: 5px;
}

.download_party .cta h3 {
  font-weight: 200;
}

.download_party .cta h4 {
  font-weight: 500;
}

.button_link {
  padding: 8px;
  margin: 10px 0 10px -2px;
  border-radius: 12px;
  border: 1px solid #7F5AC0;
}

.button_link.hstack {
  gap: 10px;
}

.party_gradient {
  background-image: linear-gradient(to bottom right, #F19699, #7F5AC0, #384173);
  color: transparent;
  background-clip: text;
}

.vip_header {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.vip_header .party_gradient, .vip_header strong {
  text-transform: uppercase;
}

.vip_header .hstack {
  gap: 5px;
}

.party_gradient.vip {
  background-image: linear-gradient(to right, #EC782E, #7F5AC0, #384173);
}

.party_gradient.probeta {
  background-image: linear-gradient(to right, #93804C, #B9A368);
}

.testimonial {
  font-size: 1.1em;
  font-weight: 100;
  font-family: ui-serif, serif;
  font-style: italic;
}

div.enlarged {
  margin: 0 -40px -20px -40px;
}

#general .button_link h3 {
  font-size: 1.1em;
  font-weight: 100;
  font-family: ui-serif, serif;
}

#general .button_link p {
  opacity: 50%;
  color: #262525;
  padding: 3px 0 0 0;
  font-size: 0.75em;
}

ol.howto {
  counter-reset: item;
  font-size: 0.8em;
  color: #333;
  padding-left: 0;
  
  margin: 0.5em 0 0.5em 0;
  max-width: 320px;
}

ol.howto li {
  display: block;
  margin-bottom: 0.5em;
  margin-left: 1.5em;
}

ol.howto li::before {
  display: inline-block;
  content: counter(item) "";
  counter-increment: item;
  width: 1.5em;
  margin-left: -1.5em;
  font-size: 0.7em;
  font-weight: bold;
  color: #666;
}

#main_content {
  flex-grow: 1;
  
  display: flex;
  flex-direction: column;
  padding: 30px 50px;
  min-width: 280px;
/*  max-width: 460px;*/
}

/*#main_content.large {*/
/*  max-width: 800px;*/
/*}*/
/**/
/*#main_content.xlarge {*/
/*  max-width: 1000px;*/
/*}*/

#main_content .center {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex-grow: 1;
}

#main_content .scroll {
	display: flex;
	flex-direction: column;
}

#main_content .scroll h1.first {
  font-size: 2.0em;
  padding-top: 80px;
}

#main_content .scroll h1 {
  padding-top: 40px;
}

h1 img.number {
  height: 1em;
  width: auto;
  margin: 0 4px -4px -4px
}

#main_content .logo {
	padding: 20px 0 20px 0;
}

#main_content .logo img {
	max-width: 160px;
	max-height: 120px;
	height: auto;
	filter: saturate(0) brightness(0);
}

#main_header {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 15px;
}

#main_header .appicon {
  width: 50px;
  height: auto;
  filter: drop-shadow(0px 1px 1px rgb(0 0 0 / 0.4));
}

#main_header .logotype {
  width: 90px;
  height: auto;
  padding-top: 8px;
}

#main_header a {
	text-decoration: none;
}

#main_menu {
  font-size: 0.9em;
  font-weight: 500;
  display: flex;
  flex-direction: row;
  gap: 15px;
  padding: 20px 0 10px 0;
}

#main_menu a {
	color: gray;
	padding-top: 3px;
	border-top: 3px solid transparent;
  text-decoration: none;
}

#main_menu a.selected, #main_menu a:hover {
  background-image: linear-gradient(to bottom right, #EC782E, #F19699, #7F5AC0, #384173);
  color: transparent;
  background-clip: text;
  
  border-image: linear-gradient(to bottom right, #F19699, #7F5AC0, #384173) 1;
}

#main_footer .legal {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 25px;
  
  margin-top: 30px;
  color: #999;
  
  font-size: 0.6em;
  text-transform: uppercase;
}

#main_footer .legal a {
  color: #666;
  font-weight: 300;
}

.camcode {
  font-family: ui-monospace, monospace;
  letter-spacing: 1px;
  font-weight: 600;
}

.only_desktop {
  display: initial;
}

.only_iphone {
  display: none;
}

@media only screen and (max-width: 1100px) {
  
  h1.large {
	  font-size: 1.75em;
  }
  
  #hero .photo_feed {
    padding: 70px;
  }
  
  #hero_header {
    top: 20px;
    right: 30px;
  }

  #hero_header img.appstore {
    width: 130px;
    height: auto;
  }
  
  #the_camera {
    left: -130px;
    width: 260px;
    height: 260px;
    margin-top: -130px;
  }

  #the_camera img {
    width: 260px;
    height: 260px;
  }
  
  #the_camera.iphone {
    left: -100px;
    width: 200px;
    height: 400px;
    margin-top: -200px;
  }

  #the_camera.iphone img {
    width: 200px;
    height: 400px;
  }
  
  #main_content {
    padding: 20px 35px;
  }
  
  #main_header .appicon {
    width: 40px;
    height: auto;
    filter: drop-shadow(0px 1px 1px rgb(0 0 0 / 0.4));
  }

  #main_header .logotype {
    width: 75px;
    height: auto;
    padding-top: 5px;
  }
  
  #home_orbit .orbit_pic {
    max-width: 150px;
    max-height: 150px;
    
    --x-amplitude: 200px;
    --y-amplitude: 200px;
  }
  
  #hero.video.with_hand {
    background-size: 80vh;
    background-position: bottom center;
  }
  
  #hero.video.with_hand video.hero_demo {
    height: 65vh;
    margin-top: 13vh;
  }
  
  ol.howto {
    max-width: 70%;
  }
  
  div.enlarged {
    margin: 0 -25px -5px -25px;
  }

}

@media only screen and (max-width: 800px) {
  #home_orbit {
    display: none;
  }
}

@media only screen and (max-width: 680px) {
  .only_desktop {
    display: none !important;
  }
  
  .only_iphone {
    display: initial !important;
  }
  
  div.hstack_adaptive {
    flex-direction: column;
    align-items: center;
    gap: 15px;
  }
  
  div.callout {
    padding: 20px;
    margin: -10px;
  }
  
  h4 {
    font-size: 1.2em;
  }
  
  h5.flag {
	  text-align: center;
  }
  
  #main_content .photo_feed {
    display: flex;
    margin-top: 100px;
  }
  
  #main_content .scroll h1.first {
    padding-top: 0;
  }
  
  ol.howto {
    font-size: 1.0em;
    max-width: 100%;
  }
  
  ol.howto li {
    margin-bottom: 0.8em;
  }
  
  ol.howto li::before {
    font-size: 0.7em;
  }
  
  #the_camera {
    left: 50vw;
    margin-left: -130px;
    margin-top: -130px;
  }
  
  #the_camera.iphone {
    left: 50vw;
    margin-left: -100px;
    margin-top: -310px;
  }
  
  #general, #camera_details {
    padding-right: 0;
  }
  
  #hero {
    position: relative;
    width: 100vw;
    height: 50vh;
  }
  
  #hero.video.with_hand {
    background: url('/img/hand_phone.png') no-repeat center center, linear-gradient(to bottom, #384173, #000);
    animation: none;
    background-size: 67vh;
  }
  
  #hero.video.with_hand video.hero_demo {
    height: 55vh;
    margin-top: 0;
  }
  
  video.hero_demo {
	  height: 50vh;
  }
  
  #hero.video, video.hero_demo {
	  height: 70vh;
  }
  
  #hero.scrolling {
    overflow: initial;
  }
  
  #hero .logo {
    height: 50vh;
  }
  
  #hero_spacer {
    display: none;
  }
  
  #hero_header {
    left: 20px;
  }
  
  #hero_header img.appstore {
    display: none;
  }
  
  #hero_header img.partylogo {
    display: initial;
    width: 140px; height: auto
  }
  
  #hero_footer .appclip {
    display: none;
  }
  
  #hero .photo_feed {
    display: none;
  }
  
  #half_grid {
    display: flex;
    flex-direction: column;
  }
  
  #main_content {
    padding: 20px;
    display: block;
  }
  
  #main_content #camera_details {
    padding-top: 60px;
  }
  
  #main_content.large {
    min-width: unset;
  }
  
  #main_menu {
    padding: 0 0 40px 0;
  }
  
  #main_footer .qrcode {
    display: none;
  }
}

@media only screen and (min-width: 1100px) {
  #hero.scrolling {
    background-color: #262525 !important;
    background-image: none !important;
  }
}

/*
@media only screen and (min-width: 1400px) {
	#hero_spacer, #hero, #hero_background, #hero_message, video#hero_video {
		max-width: 1400px;
	}
}
*/
