<!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 rel='stylesheet' href='http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/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="row">
              <h1>Bliss Family of ROMs</h1>
              <p class="lead">We are a 501(c3) nonprofit that aims to build and maintain various OS and software projects for education and the community, by providing training, development opportunities, build servers, download servers, design and development software, design opportunities, professionals and mentors in all fields revolving around Android development, at no cost. </p>
            </div>
			<div class="row">
				<h2 style="color: #0080ff;">What are we aiming to accomplish?</h2>
				<p class="lead">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 style="color: #0080ff;">Can you tell me more about these mentorships and opportunities?</h2>
				<p class="">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>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>
		  </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="#about"><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" 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="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://code.jquery.com/jquery-2.2.4.min.js'></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>