<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="description" content="BlissRoms - new site">
  <meta name="theme-color" content="#0080ff">
  <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
  <link rel="icon" sizes="192x192" href="images/bliss_icon_small.png">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
  <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
  <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
  <link href="https://fonts.googleapis.com/css?family=Comfortaa:400,700,300" rel="stylesheet">
  <link rel="stylesheet" type="text/css" href="css/style.css">
  <link rel="stylesheet" href="css/styles_filter.css">
  <link rel="stylesheet" href="css/animations.css">
  <script src="js/modernizr.js"></script>
  <script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
  <script> (adsbygoogle = window.adsbygoogle || []).push({
				google_ad_client: "ca-pub-7639560510014441",
				enable_page_level_ads: true
			  });
			</script>
  <title>Bliss</title>
</head>

<body>
  <!-- Fixed navbar -->
  <nav class="navbar navbar-default navbar-fixed-top">
    <div class="container">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="#" style="	background-image: url(images/BlissIcon_w.png);	background-position: top left;	background-size: 100%;	background-repeat: no-repeat;">   </a>
      </div>
      <div id="navbar" class="collapse navbar-collapse">
        <ul class="nav navbar-nav navbar-right">
          <li id="nav-about">
            <a href="index.html">Back Home</a>
          </li>
          <li id="donate">
            <a href="https://www.paypal.me/TeamBliss" target="_blank">Donate</a>
          </li>
        </ul>
      </div>
      <!--/.nav-collapse -->
    </div>
  </nav>
  <div class="py-5">
    <div class="container">
      <div class="row">
        <div class="col-md-12">
          <p></p>
        </div>
      </div>
    </div>
  </div>
  <!-- Begin page content -->
  <div class="container-fluid">
    <div class="row cover top" style="	background-image: linear-gradient(to bottom, rgba(22, 22, 22, 0.0), rgba(22, 22, 22, 1.0));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
      <div class="col-xs-12" >
        <div class="row" style="overflow-x:hidden;height: auto;overflow-y: visible; color: #fff;">
          <div class="col-md-12" align="center">
            <div class="cover row">
              <h1>Bliss Family of ROMs</h1><br/><br/>
              <blockquote class="lead" cite="https://twitter.com/DalaiLama/status/1051767186820198402">The creation of a more peaceful and happier society has to begin from the level of the individual, and from there it can expand to one's family, to one's neighborhood, to one's community and so on.
			  <footer><a href="https://twitter.com/DalaiLama/status/1051767186820198402">Dalai Lama</a></footer>
			  </blockquote>
            </div>
			
		  </div>
          
        </div>
        <div class="row">
          <div class="col-xs-12 center-block text-center" style="overflow-y: visible; color: rgb(255, 255, 255); transform: translateY(60px);">
            <a href="#portfolio"><span id="scrollIcon" class="front-glyph glyphicon glyphicon-menu-down" style="	color: #fff;	transform:  translateY(-100%) ;" aria-hidden="true"></span></a>
          </div>
        </div>
      </div>
    </div>
  </div>
  
  
  <div id="portfolio" class="row cover">
      <div class="container">
        <h1 class="text-center family-header" style="color: #fff;">Being Open</h1>
		<p class="lead">We are a U.S.A. Federal 501c3 Non-Profit Organization that aims to build and maintain various operating systems and software projects for the purposes of community growth and development.  Our team of talented individuals comprise to provide training, development opportunities, build servers, download servers, design and development software, and design opportunities. Team Bliss memborship includes professionals and mentors in all fields related to Android development.  Our services and source code is open to the public and provided at no cost. </p>
            
		<div class="row">
			<h2 class="text-center " style=" color: #000; margin: 5%;">What are we aiming to accomplish?</h2>
			<p class="text-center lead " style="margin: 5%" >Our goal is to mentor and teach those interested in Android development. We have a large global community that is available to coach or answer questions about development, design, animation, etc. almost any time. We offer a stress free working environment, as well as the tools when resources allow us to do so, to help guide someone on the Android development path. We also provide them the tools to learn how to monetize their skills along the way.</p>
		</div>
		<div class="row">
			<h3 class="text-center " style="color: #000;">Can you tell me more about these mentorships and opportunities?</h2>
			<p class="text-center lead " style="margin: 5%">We take on applicants and work with them to learn more about Android Development. We have many mentors available to help in all areas, from ROM development, App development, Design & Layout, as well as kernel development.</p>
			<p class="text-center lead " style="margin: 5%">Each potential applicant is selected based on their want to learn and their ability to work with others, so we do require a bit of a background, or at least a very convincing argument.</p>
		</div>
		<h1 class="text-center family-header" style="color: #fff;">And Transparent</h1>
		<p class="text-center lead" style="margin: 5%">We believe in full transparency, but we do not believe this transparency should come at a cost to our supporters. This is why we submit a yearly 990 form to the IRS. If you are interested in looking into that or any other information we submit, feel free to visit our <a href="https://www.guidestar.org/profile/82-3580195" style="color: #222;">Guidestar.org</a> page. If you are interested in looking into any other nonprofit open-source projects or ROMs, they can also be found on Guidestar as long as things are all on the up and up. </p>
		<p class="text-center lead" style="margin: 5%">Guidestar does allow users to view the financial info for each nonprofit, but for those who don't want to give yet another site their personal info, we have posted our statements below</p>
		
        <!--end Two project row-->
      </div>
    </div>
  
  
  
  <div id="contact" class="row cover bottom" style="	background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
    <h1 class="text-center family-header" style="color: #0080ff;">Expenses </h1>
	<section class="counting">
		<div class="layout">
			<h2 class="text-center" style="color: #fff;">2017 Revenue (year one)</h2>
		  <div class="grid-3">
			<span class="count1 counter" style="color: #0080ff;">899.00</span>
			<p>Contributions, Grants, Gifts</p>
		  </div> <!-- /.col-sm-3 -->
		  <div class="grid-3">
			<span class="count2 counter" style="color: #0080ff;">0</span>
			<p>Program Services</p>
		  </div><!-- /.col-sm-3 -->
		  <div class="grid-3">
			<span class="counter " style="color: #0080ff;">0</span>
			<p>Special Events</p>
		  </div><!-- /.col-sm-3 -->
		  <div class="grid-3">
			<span class="counter count4" style="color: #0080ff;">0</span>
			<p>Other Revenue</p>
		  </div><!-- /.col-sm-3 -->

		</div>	
	
	</section>
	<section class="counting">	
		
		<div class="layout">
			<h2 class="text-center" style="color: #fff;">2017 Expenses (year one)</h2>
		  <div class="grid-3">
			<span class="count1 counter" style="color: #0080ff;">0</span>
			<p>Program Services & Affiliates</p>
		  </div> <!-- /.col-sm-3 -->
		  <div class="grid-3">
			<span class="count2 counter" style="color: #0080ff;">360.00</span>
			<p>Administration</p>
		  </div><!-- /.col-sm-3 -->
		  <div class="grid-3">
			<span class="counter " style="color: #0080ff;">0</span>
			<p>Fundraising</p>
		  </div><!-- /.col-sm-3 -->
		  <div class="grid-3">
			<span class="counter count4" style="color: #0080ff;">295.00</span>
			<p>Other Expenses</p>
		  </div><!-- /.col-sm-3 -->

		</div>
	</section>	
    <!-- End #Contact-->
    
  </div>
  
  
  <!-- break -->
  
  
  
  <!-- Close Team -->
  <div class="row">
    <div id="family-lt" class="col-xs-12 text-center " style="	background-image: linear-gradient(to bottom, rgba(22,22,22,0.3), rgba(22,22,22,0.8));	background-position: top left;	background-size: 100%;	background-repeat: repeat;">
      <div class="row">
	    <div class="col-xs-12 text-center about-tools">
		  <div class="container family-header text-center">
			<img class="team-image" style="max-width: 36rem;width:100%" src="images/bliss_for.png">
		  </div>
		  
          <p class="text-center">We are open to the public, and accepting applications now for volunteer only positions (internships coming soon).
		  We are accepting people in small managable groups while we grow, and we tend to lean towards the type of people that want to learn and grow with Bliss Family of ROMs. 
		  Bliss provides the tools, knowledge and the mentorship needed to help bring your development dreams to reality, and all we ask in return is a minimum contribution towards Bliss ROM while you learn and grow in your strengths.
		  <br/>
		  If you're an individual and would like to apply to join our team, please use the button below
		  </p>
		  <a class="btn btn-rounded family-projects--btn" href="https://goo.gl/forms/PdiaAj1PojosmehK2" style="color:#fff;" >Join Our Team</a>
		  <br/>
		  <p class="text-center">Got a great project but having trouble getting things off the ground? Or maybe you are looking to gain a few more people to help you out on it. Whatever your situation is, you can submit your project below for a chance to include it as a Bliss Family project. 
		  </p>
		  <p class="text-center">If you are interested in applying for this unique opportunity, please fill out the form below, and we will be in touch with you soon (usually within a few days!)</p>
		  <a class="btn btn-rounded family-projects--btn" href="https://goo.gl/kAb7ti" role="button" style="color:#fff;">Submit your project now</a>
		  <a class="btn btn-rounded family-projects--btn" href="https://www.paypal.me/TeamBliss" target="_blank" role="button" style="color:#fff;">Donate to Bliss Family</a>
		  
		</div>
			
		<div class="center col-lg-4">
		  <h2 class="text-center">&nbsp;<br></h2>
		  <h2 class="text-center">&nbsp;<br></h2>
		</div>
      </div>
    </div>
  </div>
  <div id="family" class="row">
    <div class="container">
      <div class="family-header text-center">
        <h2 class="text-center">&nbsp;<br></h2>
        <h2 class="text-center">Bliss Family Projects</h2>
      </div>
      <div class="center">
        <h4 class="text-center highlight_secondary">The Bliss Family projects we currently support can be found below:<br><br></h4>
        <div class="col-lg-4">
          <div class="family">
            <div class="family-image text-center">
              <img class="img-circle img-responsive" src="images/invictrix.jpg">
              <div class="family-links ">
                <div class="family-links-list">
                  <a href="https://t.me/InvictusROM" target="_blank"><i class="fab fa-telegram"></i></a>
                  <a href="https://plus.google.com/communities/109716291977795337501" target="_blank"><i class="fab fa-google-plus"></i></a>
                </div>
                <!-- /.family-links-list -->
              </div>
              <!-- /.family-links -->
            </div>
            <!-- /.family-image -->
            <div class="family-content text-center">
              <div class="family-name">Invictrīx ROM</div>
              <div class="family-role">
                <h4>AOSP/CAF</h4>
              </div>
              <h4 class="family-description"> Invictrīx ROM emphasizes performance, offering heavy optimizations along with a unique dark themed style.</h4>
            </div>
            <!-- /.family-content -->
          </div>
          <!-- /.family -->
        </div>
        <div class="col-lg-4">
          <div class="family">
            <div class="family-image text-center">
              <img class="img-circle img-responsive" src="images/xtremis.jpg">
              <div class="family-links ">
                <div class="family-links-list">
                  <a href="#" target="_blank"><i class="fab fa-telegram"></i></a>
                  <a href="#" target="_blank"><i class="fab fa-google-plus"></i></a>
                </div>
                <!-- /.family-links-list -->
              </div>
              <!-- /.family-links -->
            </div>
            <!-- /.family-image -->
            <div class="family-content text-center">
              <div class="family-name">Xtremis Project</div>
              <div class="family-role">
                <h4>Chrome OS ROM</h4>
              </div>
              <h4 class="family-description"> Currently pre-release, this project is progressing steadily and will soon have more details to share. Please check in later.</h4>
            </div>
            <!-- /.family-content -->
          </div>
          <!-- /.family -->
        </div>
        <div class="col-lg-4">
          <div class="family">
            <div class="family-image text-center">
              <img class="img-circle img-responsive" src="images/soap.jpg">
              <div class="family-links ">
                <div class="family-links-list">
                  <a href="https://plus.google.com/u/0/107610198397215674589" target="_blank"><i class="fab fa-google-plus"></i></a>
                  <!--<a href="#" target="_blank"><i class="fa fa-google-plus"></i></a> -->
                </div>
                <!-- /.family-links-list -->
              </div>
              <!-- /.family-links -->
            </div>
            <!-- /.family-image -->
            <div class="family-content text-center">
              <div class="family-name">SOAP ROM</div>
              <div class="family-role">
                <h4>SixOpenAndroidProject ROM, AOSP</h4>
              </div>
              <h4 class="family-description"> SOAP is an AOSP ROM that focuses on being a slim and clean ROM.</h4>
            </div>
            <!-- /.family-content -->
          </div>
          <!-- /.family -->
        </div>
		<div class="center col-lg-4">
			<h2 class="text-center">&nbsp;<br></h2>
			<h2 class="text-center">&nbsp;<br></h2>
		</div>
      </div>
    </div>
  </div>
  <!-- End #About -->
  <footer class="footer">
    <div class="footer container-fluid ">
      <div class="container-fluid">
        <div class="row ">
          <div class="col-xs-6 col-sm-3 column footer-header">
            <h4 class="footer-header">Information</h4>
            <ul class="list-unstyled">
              <li class="portfolio-projects--desc">
                <a href="#portfolio">Downloads</a>
              </li>
              <li class="portfolio-projects--desc">
                <a href="#contact">Links</a>
              </li>
              <li class="portfolio-projects--desc">
                <a href="#team">Team</a>
              </li>
            </ul>
          </div>
          <div class="col-xs-6 col-sm-3 column footer-header">
            <h4 class="footer-header">About</h4>
            <ul class="list-unstyled">
              <li class="portfolio-projects--desc">
                <a href="#about">Bliss</a>
              </li>
              <li class="portfolio-projects--desc">
                <a href="#family">Family</a>
              </li>
              <li class="portfolio-projects--desc">
                <a href="https://www.paypal.me/TeamBliss">Donate</a>
              </li>
            </ul>
          </div>
          <div class="col-xs-12 col-sm-3 column footer-header">
            <h4 class="footer-header">Get In Touch</h4>
            <form action="mailto:blissfamilyroms@gmail.com" method="GET" data-form-title="CONTACT US">
              <input type="hidden" data-form-email="true">
              <div class="form-group">
                <input type="text" class="form-control" name="name" required="" placeholder="Name*" data-form-field="Name">
              </div>
              <div class="form-group">
                <input type="email" class="form-control" name="email" required="" placeholder="Email*" data-form-field="Email">
              </div>
              <div class="form-group">
                <textarea class="form-control" name="message" placeholder="Message" rows="3" data-form-field="Message"></textarea>
              </div>
              <div>
                <button type="submit" class="btn btn-lg btn-danger">SEND</button>
              </div>
            </form>
          </div>
          <div class="col-xs-12 col-sm-3 text-right footer-header">
            <h4 class="footer-header">Follow</h4>
            <ul class="list-inline">
              <li class="">
                <a rel="nofollow" href="https://t.me/OfficialBlissROMs" title="Telegram"><i class="fab fa-telegram fa-4x"></i></a>&nbsp; </li>
              <li class="">
                <a rel="nofollow" href="https://www.facebook.com/BlissFamilyOfROMs/" title="Facebook"><i class="fab fa-facebook fa-4x"></i></a>&nbsp; </li>
              <li class="">
                <a rel="nofollow" href="https://plus.google.com/communities/118265887490106132524" title="Google+"><i class="fab fa-google-plus fa-4x"></i></a>
              </li>
              <li class="">
                <a rel="nofollow" href="https://twitter.com/Bliss_Roms" title="Twitter"><i class="fab fa-twitter fa-4x"></i></a>
              </li>
            </ul>
          </div>
        </div>
        <br>
        <span class="pull-right text-muted small"><a href="https://blissroms.com">Bliss Site by Team Bliss</a> ©2017-2018 Team Bliss</span>
      </div>
    </div>
  </footer>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.3.1/js/tether.min.js" type="text/javascript"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js" type="text/javascript"></script>
  <script src='https://cdnjs.cloudflare.com/ajax/libs/waypoints/2.0.3/waypoints.min.js'></script>
  <script src='https://bfintal.github.io/Counter-Up/jquery.counterup.min.js'></script>
  <script  src="js/counter.js"></script>
  
  <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" type="text/javascript"></script>
  <script src="https://cdn.jsdelivr.net/jquery.scrollto/2.1.0/jquery.scrollTo.min.js" type="text/javascript"></script>
  <!--<script src="js/jquery-2.1.1.js" type="text/javascript"></script> -->
  <script src="js/jquery.mixitup.min.js" type="text/javascript"></script>
  <script src="js/main.js" type="text/javascript"></script>
  <script src="js/mainani.js" type="text/javascript"></script>
  <script src="js/script.js" type="text/javascript"></script>
  <script type="text/javascript">
    // Select all links with hashes
    $('a[href*="#"]')
      // Remove links that don't actually link to anything
      .not('[href="#"]').not('[href="#0"]').click(function(event) {
        // On-page links
        if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
          // Figure out element to scroll to
          var target = $(this.hash);
          target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
          // Does a scroll target exist?
          if (target.length) {
            // Only prevent default if animation is actually gonna happen
            event.preventDefault();
            $('html, body').animate({
              scrollTop: target.offset().top
            }, 1000, function() {
              // Callback after animation
              // Must change focus!
              var $target = $(target);
              $target.focus();
              if ($target.is(":focus")) { // Checking if the target was focused
                return false;
              } else {
                $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable
                $target.focus(); // Set focus again
              };
            });
          }
        }
      });
  </script>
</body>

</html>
