/*! normalize.css v2.1.0 | MIT License | git.io/normalize */

/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */

/**
 * Correct `block` display not defined in IE 8/9.
 */

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}

/**
 * Correct `inline-block` display not defined in IE 8/9.
 */

audio,
canvas,
video {
  display: inline-block;
}

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */

audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Address styling not present in IE 8/9.
 */

[hidden] {
  display: none;
}

/* ==========================================================================
   Base
   ========================================================================== */

/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */

html {
  font-family: sans-serif; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -ms-text-size-adjust: 100%; /* 2 */
  scroll-behavior: smooth;
}

/**
 * Remove default margin.
 */

body {
  margin: 0;
}

/* ==========================================================================
   Links
   ========================================================================== */

/**
 * Address `outline` inconsistency between Chrome and other browsers.
 */

a:focus {
  outline: thin dotted;
}

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */

a:active,
a:hover {
  outline: 0;
}

/* ==========================================================================
   Typography
   ========================================================================== */

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari 5, and Chrome.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/**
 * Address styling not present in IE 8/9, Safari 5, and Chrome.
 */

abbr[title] {
  border-bottom: 1px dotted;
}

/**
 * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
 */

b,
strong {
  font-weight: bold;
}

/**
 * Address styling not present in Safari 5 and Chrome.
 */

dfn {
  font-style: italic;
}

/**
 * Address differences between Firefox and other browsers.
 */

hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0;
}

/**
 * Address styling not present in IE 8/9.
 */

mark {
  background: #ff0;
  color: #000;
}

/**
 * Correct font family set oddly in Safari 5 and Chrome.
 */

code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em;
}

/**
 * Improve readability of pre-formatted text in all browsers.
 */

pre {
  white-space: pre-wrap;
}

/**
 * Set consistent quote types.
 */

q {
  quotes: "\201C" "\201D" "\2018" "\2019";
}

/**
 * Address inconsistent and variable font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* ==========================================================================
   Embedded content
   ========================================================================== */

/**
 * Remove border when inside `a` element in IE 8/9.
 */

img {
  border: 0;
}

/**
 * Correct overflow displayed oddly in IE 9.
 */

svg:not(:root) {
  overflow: hidden;
}

/* ==========================================================================
   Figures
   ========================================================================== */

/**
 * Address margin not present in IE 8/9 and Safari 5.
 */

figure {
  margin: 0;
}

/* ==========================================================================
   Forms
   ========================================================================== */

/**
 * Define consistent border, margin, and padding.
 */

form > fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct `color` not being inherited in IE 8/9.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */

legend {
  border: 0; /* 1 */
  padding: 0; /* 2 */
}

/**
 * 1. Correct font family not being inherited in all browsers.
 * 2. Correct font size not being inherited in all browsers.
 * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
 */

button,
input,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 2 */
  margin: 0; /* 3 */
}

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */

button,
input {
  line-height: normal;
}

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
 * Correct `select` style inheritance in Firefox 4+ and Opera.
 */

button,
select {
  text-transform: none;
}

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */

button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button; /* 2 */
  cursor: pointer; /* 3 */
}

/**
 * Re-set default cursor for disabled elements.
 */

button[disabled],
html input[disabled] {
  cursor: default;
}

/**
 * 1. Address box sizing set to `content-box` in IE 8/9.
 * 2. Remove excess padding in IE 8/9.
 */

input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */

input[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box; /* 2 */
  box-sizing: content-box;
}

/**
 * Remove inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * Remove inner padding and border in Firefox 4+.
 */

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/**
 * 1. Remove default vertical scrollbar in IE 8/9.
 * 2. Improve readability and alignment in all browsers.
 */

textarea {
  overflow: auto; /* 1 */
  vertical-align: top; /* 2 */
}

/* ==========================================================================
   Tables
   ========================================================================== */

/**
 * Remove most spacing between table cells.
 */

table {
  border-collapse: collapse;
  border-spacing: 0;
}


/*
 * CSS Day 2017
 * A whole day about this stuff:
 */

*,
*:before,
*:after {
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

body {
  font: 100% Source Code Pro, Inconsolata, Menlo, monospace;
  background-color: white;
  color: #222;
  -webkit-font-smoothing: antialiased;
}

header {
  background-color: #e3e2db;
  padding: 0 1em;
  text-align: center;
}

/* Logo */
header h1 {
  width: 100%;
  height: 5em;
  background: transparent url('/_img/cssday-logo.svg') center 1.618em no-repeat;
  background-size: 5em;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
}

#content p,
#content ul,
#content ol,
#content dl,
#content table {
  line-height: 1.618em;
  margin-top: 1.618em;
  margin-bottom: 1.618em;
}
#content ul ol, #content ol ul {
  font-size: 90%;
}

/* divisions */
#content,
footer {
  padding: 1px 1em;
}

nav,
footer,
#spotlight {
  background-color: #333;
  color: white;
}

.speaker {
  border-top: 2px dashed #e3e2db;
  clear: both;
}

/* Headings */
h1,h2,h3,
.speakers::after {
  color: mediumseagreen;
  font-weight: normal;
}
/*
h1 ~ h1:not(:first-of-type)::before,
h1 ~ h2:not(:first-of-type)::before,
h2 ~ h1:not(:first-of-type)::before,
h2 ~ h2:not(:first-of-type)::before,
h3 ~ h1:not(:first-of-type)::before,
h3 ~ h2:not(:first-of-type)::before,
.speakers::after {
  content: '} ';
  display: block;
  margin-bottom: 0.67em;
}
h1 + h2::before {
  content: '';
  margin: 0;
}
*/
.speakers::after {
  font-size: 2em;
}
h1::after,
h2::after {
  content: ' {';
}

.speaker h2, .aside h3 {
  color: black;
}

.speaker h2::after {
  content: '';
}

/*
#content:after {
  content: '}';
  font-size: 1.4em;
  color: mediumseagreen;
}
.home #content:after {
  display: none;
}
*/

/* footer */
footer { text-align: center; }
footer h1 { font-size: 1em; }
footer ul {
  list-style: none;
  padding-left: 0;
}
footer li {
  margin-bottom: 2em;
}
footer a:hover,
footer a:focus {
  background-color: transparent;
}
footer h1 ~ h1:not(:first-of-type)::before {
  display: none;
}

/* Links */
a { 
  text-decoration: none;
  border-bottom: 1px dotted;
}

a, .info { color: mediumseagreen; }

input[type="submit"]:hover,
input[type="submit"]:focus,
a:hover,
a:focus {
  background-color: mediumseagreen;
  color: white;
  -webkit-transition-property: background-color, border;
  -webkit-transition-duration: .5s;
  transition-property: background-color, border;
  transition-duration: .5s;
}

.call-to-action a {
  display: inline-block;
  border: 1px dotted;
  padding: .2em .5em;
}

nav a,
footer a { border: none; }

footer a { color: #fff; }

input[type="submit"],
nav a,
#spotlight a {
  color: white;
}

/* Date */
.date {
  color: #222;
  font-size: x-large;
  margin: 0 .4em;
  text-align: left;
}

/* Purchase link */
.purchase,
input[type="submit"] {
  background-color: mediumseagreen;
}
.purchase a {
  display: block;
  padding: .2em 1em 1em;
  color: white;
}
.purchase a:hover,
input[type="submit"]:hover,
.purchase a:focus,
input[type="submit"]:focus {
  background-color: #222;
}

/* Menus */
.speakers ul,
#spotlight,
nav ul {
  list-style: none;
  padding-left: 0;
}

/* Navigation */
nav li {
  text-align: center;
  border-bottom: 1px solid #444;
}
nav a {
  display: block;
  color: white;
}

/* List of speakers */
/*
.speakers ul::before { 
  content: '#speakers {'; 
  font-weight: bold;
}
.speakers ul::after { 
  content: '}'; 
  font-weight: bold;
}
.speakers li { padding-left: 2em; }
*/

/* Put a couple of links in the spotlight on small screens */
#spotlight {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  margin: 0;
  overflow: hidden;
  display: flex;
}
#spotlight li {
  flex: 1 1 33%;
  border-left: 1px solid #e3e2db;
}
#spotlight li:first-child {
  border-left: none;
  margin-left: -1px;
}
#spotlight a,
nav a {
  display: block;
  padding: .5em 0;
}

/* Testimonials */
.testimonial {
  padding: 1em 0;
  font-style:italic;
  clear: both;
}
.testimonial blockquote {
 margin: 1em;
}
.testimonial blockquote:before {
 content: '.testimonial {';
 color: #C0B8B4;
}
/*
.testimonial blockquote:after {
 content: '}';
 color: #C0B8B4;
}
*/
.testimonial blockquote p {
 margin-left: 2em;
}

/* Contact form */
form[action="/2022/contact#formulier-1"] > fieldset:before {
  content: '/* contact form */';
}
form[action="/2022/contact#formulier-1"] > fieldset:after {
  content: '/* end contact form */';
}
fieldset {
  margin: 0;
  padding: 0;
  border: none;
}
form.signup > fieldset:before {
  content: '/* signup form */';
}
form.signup > fieldset:after {
  content: '/* end signup form */';
}

fieldset > fieldset {
  margin: 1em 0;
}

#content fieldset ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
li label, li input {
  display: inline-block;
}
form > fieldset {
  padding: .5em 1em;
  background-color: #e3e2db;
}
label, input { display: block; }
textarea { 
  width: 100%; 
  resize: vertical;
}
#content .with-caption + p {
  margin-top: 0;
  font-size:small;
}
.img img,
.speaker img {
  max-width: 100%;
  height: auto;
  border-radius: .4rem;
}

.speaker img {
  width: 200px;
  height: 200px;
}

.teaser img {
  width: 224px;
}

input[type="submit"] {
  border: none;
}

/* Table fun */
th, td {
  padding: .5em;
}
th { text-align: left; }
tr:nth-child(2n+2) {
  background-color: #e3e2db;
}
#attendees tr>td.header {
  background-color: #222;
  color: white;
}
thead.scripted th {
  cursor:pointer;
}
#attendees {
  font-size: small;
  width: 100%;
}
caption {
  margin-bottom: 1em;
}
@media only screen and (max-width: 30em) {
  #attendees thead {
    position: absolute;
    top: -9999px;
  }
  #attendees thead.scripted {
    position:static;
  }
  #attendees thead tr {
    background-color: #e3e2db;
  }
  #attendees thead.scripted tr:before {
    content: 'Sort by:';
    margin: 0 0 .5em .5em;
  }
  thead.scripted tr>td.header {
    position: static;
  }
  #attendees tbody tr {
    position: relative;
    margin-top: .75em;
    margin-bottom: .75em; 
    border-bottom: 1px solid #e3e2db;
    background-color: white;
    padding: .2em .2em 1em;
  }
  #attendees td {
    padding: 0;
  }
  #attendees tr, 
  #attendees td { 
    display:block; 
  }
  #attendees tr>td:first-child {
    font-weight: bold;
  }
  #attendees tr>td:last-child {
    position: absolute;
    top: 0;
    right: 0;
    color: #C0B8B4;
  }
  #attendees tr>td.header {
    position: static;
    color: white;
  }
}

/* Ladies and gentlemen, I give the you the first breakpoint */
@media only screen and (min-width: 48em) {
  /* This is so small that I feel no guilt about hiding it. */
  #spotlight { z-index: 1; width: 1em; margin-top: 1em; }
   #spotlight li { width: 1em; }
   #spotlight li + li { display: none; }
    #spotlight a { white-space: nowrap; border: none; }
    #spotlight a[href="#menu"]::before { content: '⠿ '; visibility: hidden; opacity: 0; transition: .2s }
    #spotlight a[href="#menu"]:focus::before { visibility: visible; opacity: 1; }
    #spotlight a:hover, #spotlight a:focus { background-color: transparent; }

  #page {
    border-right: 1em solid mediumseagreen;
  }

  /* Navigation */
  nav {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
  }
  nav ul {
    margin-bottom: 0;
    padding-left: 1em;
  }
  nav li {
    display: inline-block;
    text-align: left;
    border-bottom: none;
  }
  nav a.current,
  nav a:hover,
  nav a:focus {
    border-bottom: .5em solid mediumseagreen;
    background-color: transparent;
  }
  /* Header */
  header {
    position: relative;
    height: 17em;
    padding: 0;
    min-height: 17em;
    text-align: left;
  }
  header h1,
  .info {
    position: absolute;
    width: 50%;
  }
  header h1 {
    bottom: -1em;
    height: 7em;
    margin: 0;
    background-size: 7em;
    background-position: 50% .4em;
    border-bottom: 1em solid #222;
  }
  .speakers {
    position: relative;
    width: 200%;
    padding-left: 80%;
    left: -80%;
  }
  .info {
    right: 0;
    bottom: 0;
  }
  .date {
    margin: 0;
  }
  .purchase {
    margin-bottom: 0;
  }
  #content {
    padding: 2em 10%;
  }
  footer { text-align: left; }
  footer li {
    display: inline-block;
    margin-left: 2em;
    vertical-align: middle;
  }
  /* Form */
  form p { 
    display: table;
    margin: 1em 0;
  }
  label, input { display: table-cell; }
  label {
    width: 10em;
    text-align: right;
    padding-right: 1em;
  }
  .feedback label {
    display: block;
    width: auto;
    text-align: left;
    padding: 0;
  }
  input[type="submit"] { 
    display: block;
    margin-left: 10em; 
  }
  .feedback input[type="submit"] {
    margin: 0;
    padding: .5em 1em;
  }
  .img.right,
  .speaker img {
    float: right;
    margin: 0 0 1em 1em;
  }
  
}

.book { float: right; margin: 0 0 1em 1em; width: 25%; }

@media only screen and (min-width: 54em) {
  #page {
    border-width: 1.5em;
  }
  /* There's gold in them thar hills. */
  header h1 {
    width: 38.2%;
  }
  .info {
    width: 61.8%;
  }
  .home #content {
    padding-left: 40%;
  }
  article {
    margin-left: 36%;
  }
  .testimonial {
    margin-left: 36%;
  }
  #content:after {
    margin-left: 36%;
  }
  .home article {
    margin-left: 0;
  }
  .home #content:after {
    margin-left: 0;
  }

  .purchase {
    display: inline-block;
  }
  
  /* Speakers */

  .speakers ul:before {
    content: '{';
    position: absolute;
    font-size: 9em;
    top: 50%;
    right: 61%;
    color: #e3e2db;
  }

span#ana { background: url('/_img/2022/speakers/ana.jpg') no-repeat -62px -69px; }
span#adam { background: url('/_img/2022/speakers/adam.jpg') no-repeat -72px -67px; }
span#hui-jing { background: url('/_img/2022/speakers/hui-jing.jpg') no-repeat -67px -66px; }
span#maike { background: url('/_img/2022/speakers/maike.jpg') no-repeat -76px -51px; }
span#marcin { background: url('/_img/2022/speakers/marcin.jpg?') no-repeat -82px -61px; }
span#michelle { background: url('/_img/2022/speakers/michelle.jpg') no-repeat -74px -52px; }
span#peter { background: url('/_img/2022/speakers/peter.jpg') no-repeat -51px -69px; }
span#stephen { background: url('/_img/2022/speakers/stephen.jpg') no-repeat -87px -71px; }
span#tab { background: url('/_img/2022/speakers/tab.jpg?') no-repeat -70px -68px; }
span#lea { background: url('/_img/2022/speakers/lea.jpg') no-repeat -57px -53px; }
span#chris { background: url('/_img/2022/speakers/chris.jpg') no-repeat -50px -88px; }
span#jeremy { background: url('/_img/2022/speakers/jeremy.jpg') no-repeat -79px -74px; }
span#sara { background: url('/_img/2022/speakers/sara.jpg') no-repeat -63px -72px; }
span#bramus { background: url('/_img/2022/speakers/bramus.jpg') no-repeat -33px -52px; }
span#ben { background: url('/_img/2022/speakers/ben.jpg') no-repeat -72px -70px; }
span#rachel { background: url('/_img/2022/speakers/rachel.jpg') no-repeat -78px -68px; }
span#amit { background: url('/_img/2022/speakers/amit.jpg') no-repeat -69px -54px; }

  .speakers-dsgnday ul:before {
    content: '&';
  }
  
  .speakers span {
    position: absolute;
    top: 0;
    left: 0;
    width: 3em;
    height: 2em;
    background-color: mediumseagreen !important;
    background-size: 200px 200px !important;
    background-position: 50% 50%;
    border-radius: .4em;
    box-shadow: 0px 0px 0px 0px rgba(9,27,40,0.2);
    -webkit-transition: all .5s;
    transition: all .5s;
    overflow: hidden;
  }
  .speakers a:hover span,
  .speakers a:focus span {
    width: 200px;
    height: 200px;
    background-position: 0 0 !important;
    margin-top: -75px;
    margin-left: -75px;
    z-index:10;
    box-shadow: 80px 100px 20px -40px rgba(9,27,40,0.2);
  }
  .speakers li:nth-child(-n+4) span { top: 7.5em; }
  .speakers li:nth-child(n+4) span { top: 10.5em; }
  .speakers li:nth-child(n+7) span { top: 13.5em; }
  .speakers li:nth-child(n+10) span { top: 16.5em; }
  .speakers li:nth-child(n+13) span { top: 19.5em; }
  .speakers li:nth-child(3n+1) span { left: 7%; }
  .speakers li:nth-child(3n+2) span { left: 14%; }
  .speakers li:nth-child(3n+3) span { left: 21%; }
}

@media screen and (min-width: 72em) {
  body {
    font-size: 112.5%;
  }
  .home #content {
    background-position: 34% 4em;
    background-position: 34% 4em;
  }
}

@media screen and (min-width: 80em) {
  body {
    font-size: 125%;
    background-color: dimgray;
  }
  #page {
    margin: 0 auto;
    max-width: 80em;
    background-color: white;
  }
}

@media screen and (min-width: 90em) {
  nav { text-align: center; }
  nav ul { padding-left: 0; }
  nav a { padding: .5em .3em; }
}

@media only screen and (min-width: 54em) {
 section#sponsorships {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-gap: 2em;
  font-size: 90%;
 }
 section#sponsorships {
  margin-left: -70%;
 }
}

section#sponsorships p {
  font-weight: bold;
}
section#sponsorships ul {
  list-style-type: none;
  margin: 0; padding: 0;
}
section#sponsorships li {
  border-top: 1px dotted;
  margin: 0;
  padding: 0.3em 0;
}
section#sponsorships > section > ul > li:last-of-type {
  border-bottom: 1px dotted;
}

.photos { position: relative; background: #e3e2db; display: flex; }
@media only screen and (min-width: 48em) {
.photos::after { content: ''; position: absolute; height: 2em; width: 50%; bottom: -2em; background: #222; }
}
@media only screen and (min-width: 54em) {
.photos::after { width: 38.2%; }
}
@media (max-width: 60em) {
  .photos-div:nth-child(5) ~ * { display: none; }
 }
 @media (max-width: 50em) {
  .photos-div:nth-child(4) ~ * { display: none; }
 }
 @media (max-width: 40em) {
  .photos-div:nth-child(3) ~ * { display: none; }
 }
  .photos-a { display: block; border: none; }
   .photos-img { display: block; width: 100%; height: auto; }

.video { margin: 2em 0; position: relative; height: 0; padding-bottom: 56.25%; overflow: hidden; }
 .video > iframe { display: block; height: 100%; width: 100%; position: absolute; }