/* =========================================
   1. FONTS
   ========================================= */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("https://onfocus.b-cdn.net/css/Inter/Inter-Regular.woff2?v=3.11") format("woff2"), 
       url("https://onfocus.b-cdn.net/css/Inter/Inter-Regular.woff?v=3.11") format("woff");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("https://onfocus.b-cdn.net/css/Inter/Inter-SemiBold.woff2?v=3.11") format("woff2"), 
       url("https://onfocus.b-cdn.net/css/Inter/Inter-SemiBold.woff?v=3.11") format("woff");
}

/* =========================================
   2. DESIGN TOKENS (Variables)
   ========================================= */
:root {
  /* Colors - Light Theme */
  --bg-blog: #ffffff;
  --bg-header-footer: #323131;
  --bg-header-hover: #3A424F;
  --bg-blockquote: #eeeeee;
  --bg-code: transparent;
  
  --text-main: #323131;
  --text-muted: #555555;
  --text-header-footer: #4C4E49;
  
  --link-color: #000000;
  --link-visited: #6E4E5D;
  --link-active: #eeeeee;
  --link-hover: #3A424F;
  
  --link-decor: #bfbfbf;
  --link-decor-visited: #eee7ea;
  --link-decor-hover: #3A424F;
  
  --flourish-color: #9C8452;
  --flourish-border: #dfd5c2;
  
  --tag-bg: #607699;
  --tag-hover: #3A424F;
  --tag-text: #ffffff;
  
  --blockquote-border: #818B9C;
  --img-opacity: 1;

  /* SVG Specific Overrides */
  --svg-bg: transparent;
  --svg-pad: 0;
  --svg-radius: 0;
}

/* Dark Theme Overrides (System + JS Toggle Support) */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg-blog: #3A424F;
    --bg-blockquote: #272D36;
    --bg-code: #272D36;
    
    --text-main: #eeeeee;
    --text-muted: #cccccc;
    
    --link-color: #ffffff;
    --link-visited: #ae8d9d;
    --link-hover: #ffffff;
    
    --link-decor-visited: #ae8d9d;
    --link-decor-hover: #ffffff;
    
    --tag-bg: #272D36;
    --tag-hover: #818B9C;
    --tag-hover-text: #323131;
    
    --blockquote-border: #434D5C;
    --img-opacity: 0.9;
    
    --svg-bg: #ffffff;
    --svg-pad: 10px;
    --svg-radius: 4px;
  }
}

[data-theme="dark"] {
    --bg-blog: #3A424F;
    --bg-blockquote: #272D36;
    --bg-code: #272D36;
    --text-main: #eeeeee;
    --text-muted: #cccccc;
    --link-color: #ffffff;
    --link-visited: #ae8d9d;
    --link-hover: #ffffff;
    --link-decor-visited: #ae8d9d;
    --link-decor-hover: #ffffff;
    --tag-bg: #272D36;
    --tag-hover: #818B9C;
    --tag-hover-text: #323131;
    --blockquote-border: #434D5C;
    --img-opacity: 0.9;
    --svg-bg: #ffffff;
    --svg-pad: 10px;
    --svg-radius: 4px;
}

/* =========================================
   3. BASE STYLES
   ========================================= */
*, body {
  margin: 0;
  padding: 0;
}

html {
  background: url(https://onfocus.b-cdn.net/otis-redding.png), radial-gradient(ellipse at 50% 0%, #62789C 0%, #3A424F 140%);
}

body {
  font-family: Inter, sans-serif;
  font-size: 62.5%;
  text-align: center;
  background-repeat: repeat;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

font[size="1"] {
  font-size: 1rem;
}

a {
  font-weight: 600;
  text-underline-offset: 2px;
  
  &:link {
    color: var(--link-color);
    text-decoration: underline;
    text-decoration-color: var(--link-decor);
    -webkit-text-decoration-color: var(--link-decor);
  }
  &:visited {
    color: var(--link-visited);
    text-decoration-color: var(--link-decor-visited);
    -webkit-text-decoration-color: var(--link-decor-visited);
  }
  &:active {
    color: var(--link-active);
    text-decoration-color: white;
    -webkit-text-decoration-color: white;
  }
  &:hover {
    cursor: pointer;
    color: var(--link-hover);
    text-decoration: underline;
    text-decoration-color: var(--link-decor-hover);
    -webkit-text-decoration-color: var(--link-decor-hover);
  }
}

img {
  opacity: var(--img-opacity);
  transition: all 0.5s ease-in-out;
  border-style: none;
  
  &:hover {
    filter: none;
    opacity: 1;
  }
}

audio {
  border-radius: 4px;
  @media (prefers-color-scheme: dark) {
    filter: contrast(100%) invert(78%) grayscale(1);
  }
  [data-theme="dark"] & {
      filter: contrast(100%) invert(78%) grayscale(1);
  }
}

code {
  background-color: var(--bg-code);
}

ul {
  list-style-type: none;
  margin: 20px;
  padding: 0;
  
  li { margin-bottom: 15px; }
}

blockquote, ol, ul:not(.delicious) {
  padding-left: 1.5em;
  padding-right: 1.5em;
  margin-left: 0;
  margin-top: 15px;
  margin-bottom: 15px;
}

blockquote {
  border-left: solid 5px var(--blockquote-border);
  padding: 1em;
  background-color: var(--bg-blockquote);
}

td {
  font-family: Inter, system-ui, -apple-system, sans-serif;
  font-size: 0.618rem;
}

/* =========================================
   4. LAYOUT
   ========================================= */
#blog, #copyright, #header, .fill, .navigation {
  margin: 0 auto;
  width: 720px;
}

#blog, #copyright, #footer, #header {
  text-align: left;
}

#header, #footer, .btn, .fill {
  position: relative;
}

#header, #footer {
  color: var(--text-header-footer);
  padding-left: 24px;
  padding-bottom: 1.5em;
  background-color: var(--bg-header-footer);
  z-index: 2;

  a {
    text-decoration: none;
    &:hover { text-decoration: underline; }
  }
  
  .flourish {
    color: var(--flourish-color);
    font-size: 1rem;
  }
}

#header {
  margin-top: 1.5em;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  transition: opacity, background-color 0.5s;
  cursor: pointer;

  &:before {
    content: "";
    border-radius: inherit;
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    width: 100%;
    transition: opacity, background-color 0.5s;
    z-index: -1;
  }

  &:hover {
    background-color: var(--bg-header-hover);
    background-image: url(https://onfocus.b-cdn.net/asfalt-light.png);

    & + .fill .triangle-up-right:after { border-top-color: var(--bg-header-hover) !important; }
    & + .fill .triangle-up-left:after { border-left-color: var(--bg-header-hover) !important; }
    #topflourish { color: var(--flourish-color); }
  }
}

#footer {
  width: 714px;
  margin: 0 auto;
  padding: 20px 15px 1em;
  margin-top: -12px;
  margin-bottom: 1.5em;
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
}

#blog {
  background: var(--bg-blog);
  display: block;
  padding-top: 10px;
  padding-bottom: 1px;
  min-height: 400px;
  z-index: 1;
  position: relative;
  box-shadow: 0px 0px 18px 1px rgba(0, 0, 0, 0.55);

  > .post { margin-top: 25px; }

  .flourish {
    display: block;
    border-top: solid var(--flourish-border) 1px;
    color: var(--flourish-color);
    margin: 3em auto;
    width: 66%;
    text-align: center;

    .ftext {
      position: absolute;
      display: inline-block;
      margin-top: -1em;
      margin-left: -30px;
      background-color: var(--bg-blog);
      line-height: 1;
      padding: 10px 0.5em 5px 0.5em;
      font-size: 1.3em;
    }
  }
}

/* Structural Shapes */
.fill {
  height: 0;
  background: #000;
  z-index: 1;

  .triangle-up-right {
    position: absolute;
    left: 0;
    width: 0;
    height: 0;
    padding-left: 12px;
    padding-top: 12px;
    overflow: hidden;
    margin-left: -12px;
    z-index: 1;
    
    &:after {
      content: "";
      display: block;
      width: 0;
      height: 0;
      margin-left: -12px;
      margin-top: -12px;
      border-left: 12px solid transparent;
      border-top: 12px solid var(--bg-header-footer);
      transition: border-top-color 0.5s;
    }
  }

  .triangle-up-left {
    position: absolute;
    right: 0;
    width: 0;
    height: 0;
    padding-bottom: 12px;
    padding-left: 12px;
    overflow: hidden;
    margin-right: -12px;
    z-index: 1;

    &:after {
      content: "";
      display: block;
      width: 0;
      height: 0;
      margin-left: -12px;
      border-bottom: 12px solid transparent;
      border-left: 12px solid var(--bg-header-footer);
      transition: border-left-color 0.5s;
    }
  }
}

/* =========================================
   5. TYPOGRAPHY & BRANDING
   ========================================= */
#logo {
  font-family: "DDC Hardware", Hevletica, Arial, sans-serif;
  text-rendering: optimizeLegibility;
  font-size: 3.665rem;
  line-height: 1;
  margin-top: 0.2em;
  font-weight: normal;
  letter-spacing: -1px;
  -webkit-font-smoothing: antialiased;
  text-transform: uppercase;
  color: #666;
  display: inline-block;

  &:hover {
    animation: text-unfocus 0.1s ease-out both;
  }
}

.tagline {
  font-family: "DDC Hardware Condensed", Hevletica, sans-serif;
  font-size: 1.294rem;
  text-align: left;
  opacity: 0.4;
  letter-spacing: -1px;
  margin-left: 3px;
  -webkit-font-smoothing: antialiased;
  color: #666;
  font-weight: 400;
}

.subtitle {
  font-family: Inter, system-ui, sans-serif;
  font-size: 2.094rem;
  margin-top: 10px;
  margin-left: 40px;
  margin-right: 40px;
  color: var(--text-main);
  font-weight: 600;
  padding-bottom: 0.15em;
  border-bottom: solid var(--flourish-border) 1px;
  text-transform: capitalize;
}

#topflourish { transition: color 0.5s; }

#copyright {
  font-size: 12px;
  padding-bottom: 1em;
  opacity: 0.7;
  &:hover { opacity: 1; }
}

/* =========================================
   6. COMPONENTS
   ========================================= */
.post {
  margin-bottom: 6.18em;
  margin-left: 40px;
  margin-right: 40px;

  &.single { margin-bottom: 40px; }
  
  .pagenav {
    font-family: Inter, "Segoe IE", Helvetica, sans-serif;
    letter-spacing: 0;
    font-weight: 600;
  }

  > .title { font-family: Inter, "Segoe IE", Helvetica, sans-serif; }
}

.title, .archive-title {
  font-family: Inter, "Segoe IE", Helvetica, sans-serif;
  font-weight: bold;
  margin-top: 0px;
  margin-bottom: 10px;
  font-size: 1.618rem;
  color: var(--text-main);
  line-height: 130%;
}

.post-text {
  font-family: Inter, sans-serif;
  font-weight: 400;
  line-height: 1.6;
  word-wrap: break-word;
  color: var(--text-main);
  font-size: 1rem;

  .title {
    margin-top: 20px;
    margin-bottom: 10px;
  }
  p { margin-top: 1.5em; }
  h3 { font-family: Inter, "Segoe IE", Helvetica, sans-serif; }
  .clsHeader { font-weight: 700; }
  
  input, textarea { font-size: 1rem; }
}

.post-byline {
  display: block;
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.8rem;
  margin-top: 10px;
  padding-top: 5px;
  color: var(--text-muted);
  -webkit-font-smoothing: auto;

  a {
    color: var(--text-main);
    text-decoration: none;
    font-weight: 400;
    &:hover { text-decoration: underline; }

    &.tag {
      color: var(--tag-text);
      background-color: var(--tag-bg);
      padding: 4px 6px;
      margin-right: 2px;
      border-radius: 4px;
      text-transform: uppercase;
      font-weight: 600;
      font-size: 0.7rem;
      text-decoration: none;
      
      &:hover {
        background-color: var(--tag-hover);
        color: var(--tag-hover-text, #fff);
        text-decoration: none;
      }
    }
  }
  sup { vertical-align: top; }
}

.photo-title {
  font-family: Inter, "Segoe IE", Helvetica, sans-serif;
  font-size: 1.294rem;
  margin-top: 1.5em;
  color: var(--text-main);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.post.photo .post-text { text-align: left; }

.post.photo.vert .post-text {
  padding: 79px 0;
  background: var(--bg-blockquote);
  img { margin: auto; }
}

.embed {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  margin-bottom: 20px;

  iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
}

.btn {
  display: inline-block;
  cursor: pointer;
  font-family: Inter, system-ui, sans-serif;
  font-weight: 600;
  background-repeat: no-repeat;
  border-radius: 4px;
  line-height: normal;
  padding: 8px 16px;
  background-color: #3A424F;
  color: #fff;
  
  &:hover { background-color: #62789C; }
}

.twitter {
  padding-left: 22px;
  background: url(http://www.onfocus.com/images/twitterbird.gif) no-repeat 0px 7px;
}

#infobox {
  font-size: 1rem;
  padding-left: 5px;
  margin-bottom: 0.35em;
  text-align: right;
  margin-top: -40px;
  margin-right: 15px;

  .post-text {
    color: #888;
    font-family: Inter, "Segoe IE", Helvetica, sans-serif;
    font-size: 1.294rem;
    text-transform: uppercase;
    
    a {
      color: #ccc;
      height: 100%;
      padding-right: 10px;
      opacity: 0.7;
      &:hover, &.selected { opacity: 1; }
      &.selected { color: #999; }
    }
    
    #tophome, .flourish { padding-right: 0; }
    .flourish {
      color: var(--flourish-color);
      font-size: 1rem;
    }
  }
}

.navigation {
  font-family: Inter, "Segoe IE", Helvetica, sans-serif;
  font-weight: 400;
  font-size: 1.294rem;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  
  a {
    padding-left: 10px;
    padding-right: 10px;
    opacity: 0.7;
    &:hover { opacity: 1; }
  }
}

/* Comments */
.comments-title { margin-bottom: 20px; }
.comment { margin-bottom: 2.5em; }

.comment a:link { color: #900; }
.comment a:visited { color: #600; }

.comment .comment-author {
  font-weight: bold;
  color: #444;
}

.comment-byline {
  font: 0.8rem Inter, system-ui, sans-serif;
  text-transform: none;
  margin-top: 4px;
  
  a { font-weight: bold; }
}

/* Delicious/Recommendations */
ul.delicious {
  list-style: none;
  margin-bottom: 0;
  margin-top: 10px;
  padding-left: 0;
  margin-left: 0;
  padding-right: 0;

  li {
    margin-bottom: 15px;
    padding-left: 0;
    margin-left: 0;
    padding-right: 0;
    
    &:last-child { margin-bottom: 0; }
  }
}

.delicious-last { margin-bottom: 0; }
.delicious-tags {
  display: none;
  font-size: 10px;
  color: #555;
  font-style: italic;
}

.pinrec { overflow: auto; }
.recmeta {
  font-family: Inter, system-ui, sans-serif;
  color: var(--text-main);
  margin-bottom: 8px;
  line-height: 0.8;
  font-size: 0.8rem;
  
  img {
    width: 16px;
    height: 16px;
    vertical-align: text-bottom;
    background-color: var(--svg-bg);
    border-radius: var(--svg-radius);
  }
}

.rectitle, .delicious-link {
  font-family: Inter, "Segoe IE", Helvetica, sans-serif;
  font-size: 1.294rem;
  margin-bottom: 5px;
  line-height: 1.3;
  a { font-weight: 600; }
}

.recimg {
  display: none;
  float: right;
  margin-left: 15px;
  
  img {
    max-width: 100%;
    height: auto;
    width: 160px;
    border-radius: 4px;
    margin-top: 8px;
  }
}

/* Special Layouts */
.welcome {
  background-color: var(--flourish-color);
  padding: 10px 20px;
  margin-top: -10px;
  font-size: 1rem;
  
  .post-text {
    color: #000;
    font-size: 1rem;
    line-height: 1.3;
    
    a {
      color: #000;
      text-decoration-color: #404040;
      -webkit-text-decoration-color: #404040;
    }
  }
}

.goodbye {
  position: absolute;
  bottom: 0;
  text-align: center;
  .post-text { font-size: 0.8rem; }
}

.project {
  margin-bottom: 10px;
  
  .project-icon {
    display: table-cell;
    text-align: left;
    width: 75px;
    vertical-align: top;
    padding: 10px 10px 10px 0;
    direction: ltr !important;
    img {
      border-radius: 8px;
      margin-top: 5px;
    }
  }
  
  .project-text {
    display: table-cell;
    text-align: left;
    width: 100%;
    vertical-align: top;
    padding: 10px;
    direction: ltr !important;
  }
}

/* =========================================
   7. SOCIAL ICONS
   ========================================= */
#socialgrid { margin-top: 25px; }

.socmeed {
  display: inline-block;
  margin: 5px;
  text-align: center;
  width: 77px;
  height: 77px;
  padding-bottom: 1em;

  svg {
    width: 50px;
    height: 50px;
    transition: 0.4s ease;
    background-color: var(--svg-bg);
    padding: var(--svg-pad);
    border-radius: var(--svg-radius);
    
    stop { transition: 0.4s ease; }
  }
}

.soccaption {
  text-align: center;
  font-size: 0.8rem;
  font-family: Inter, system-ui, sans-serif;
}

#instagramicon { fill: #E4405F; }
#flickricon {
  fill: url(#fGradient);
  #fGradient .flickrblue { stop-color: #0B64DF; }
  #fGradient .flickrpink { stop-color: #FF2D80; }
}
#twittericon { fill: #1DA1F2; }
#pinboardicon { fill: #0000FF; }
#linkedinicon { fill: #0077B5; }

/* =========================================
   8. FORMS & UTILS
   ========================================= */
#cform {
  width: 100%;
  
  .formRow { margin-bottom: 10px; }
  .formRow.commentHere {
    width: 475px;
    max-width: 100%;
    margin-bottom: 0px;
  }
  .formRow label {
    margin-top: 0px;
    margin-bottom: 3px;
  }
  
  textarea, input[type=text] {
    max-width: 100%;
    background-color: var(--bg-form-input, #eee);
    padding: 3px 2px;
  }
  
  textarea {
    width: 100%;
    border: solid var(--border-form, #ddd) 1px;
    font-family: Inter, sans-serif;
  }
  
  input[type=text] { width: 250px; }
  .btn { margin-top: 10px; }
  
  .please-note {
    border: solid #bcdff1 1px;
    color: #31708f;
    background-color: #d9edf7;
    padding: 10px;
    display: inline-block;
    margin-bottom: 10px;
    margin-top: 5px;
    width: 460px;
    max-width: 95%;
    margin-right: 0;
  }
  
  .wdt-emoji-picker {
    right: 0px !important;
    bottom: 10px !important;
    filter: grayscale(100%);
    &:hover, &-open { filter: grayscale(0%); }
  }
}

#jsmsg {
  color: #a94442;
  border: solid #ebcccc 1px;
  background-color: #f2dede;
  padding: 10px;
  margin: 10px 0px 10px 0px;
}

.blend {
  display: inline-block;
  margin: auto;
  margin-bottom: 15px;
  transition: 1s filter linear, 0.5s -webkit-filter linear;
  background: linear-gradient(135deg, #536976 0%, #9C8452 50%);
  border-radius: 50%;
  
  img {
    border-radius: 50%;
    transition: 1s filter linear, 0.5s -webkit-filter linear;
    mix-blend-mode: lighten;
    filter: grayscale(100%) contrast(0.8);
  }
  
  &:hover {
    background: transparent;
    img {
      mix-blend-mode: initial;
      filter: none;
    }
  }
}

/* Galleries */
#gallery {
  .gallery-list {
    text-align: center;
    margin-top: 35px;
  }
  .galleryImage {
    max-width: 100%;
    margin: auto;
    margin-bottom: 40px;
  }
  .galleryCaption {
    margin-top: 5px;
    text-align: left;
  }
}

h2.gallery-title { text-transform: capitalize; }

#galleryArchive {
  .galleryThumb {
    float: left;
    width: 200px;
    height: 130px;
    margin: 2px;
  }
  img {
    width: 100%;
    height: 100%;
  }
}

/* Custom Pages (#amafeed, #eat) */
#amafeed #blog {
  h2 { text-transform: capitalize; }
  .post {
    .amazonItem {
      margin-bottom: 30px;
      h3 { font-size: 1.2em; }
      a img {
        max-width: 250px;
        height: auto;
      }
    }
    label {
      margin-bottom: 5px;
      display: block;
      .number {
        display: inline-block;
        width: 1.5em;
        height: 1.5em;
        border-radius: 50%;
        font-size: 1em;
        color: #fff;
        line-height: 1.5em;
        text-align: center;
        background: #b12;
        margin-right: 3px;
      }
    }
    .formRow { margin: 10px 0px 20px 0px; }
    .formRow input[type=text] { padding: 5px; }
    .formElement {
      margin-top: 10px;
      margin-left: 30px;
      input[type=text], select {
        font-size: 1em;
        width: 300px;
        max-width: 100%;
      }
      .txtFeed {
        width: 450px;
        height: 80px;
        max-width: 100%;
      }
    }
  }
}

#eat table tr td { padding-left: 5px; }

.rot90 { transform: rotate(90deg) translateX(-12px); }
.rotn90 { transform: rotate(-90deg) translateX(12px); }
.daysep { margin-top: 0.5em; }
.dmd { font-size: 0.6em; vertical-align: middle; }
.pulse {
  animation: pulse 12s infinite alternate;
  padding-right: 0;
}
.hearticon:hover {
  animation: heartbeat 1.5s ease-in-out infinite both;
}

/* =========================================
   9. EMOJI UI STRUCTURE (wdt-emoji)
   ========================================= */
.wdt-emoji-popup, .wdt-emoji-popup * {
  box-sizing: border-box;
}

body[data-wdt-emoji-bundle=google] .wdt-emoji[data-has-img-google=false], 
body[data-wdt-emoji-bundle=emojione] .wdt-emoji[data-has-img-emojione=false], 
body[data-wdt-emoji-bundle=apple] .wdt-emoji[data-has-img-apple=false] {
  display: none;
}

.wdt-emoji-picker {
  position: absolute;
  right: 5px;
  bottom: 5px;
  width: 20px;
  height: 20px;
  &:hover { cursor: pointer; }
}

.wdt-emoji-picker-parent { position: relative; }
.wdt-emoji-picker span.emoji-outer.emoji-sizer {
  width: 18px;
  height: 18px;
  pointer-events: none;
}

.wdt-emoji-popup {
  position: absolute;
  top: 0;
  left: 0;
  visibility: hidden;
  width: 357px;
  max-width: 100%;
  height: 357px;
  max-height: 100%;
  transition: opacity 50ms ease, bottom 1s ease-out;
  opacity: 0;
  border: 1px solid #dedede;
  border-radius: 3px;
  background-color: #fff;
  text-align: left;
  z-index: 9999;
  
  &.open {
    visibility: visible;
    opacity: 1;
  }
  
  h3 {
    font-size: 15px;
    font-weight: 700;
    line-height: 15px;
    position: relative;
    margin: 0;
    padding: 8px;
    color: #555;
    background: rgba(255, 255, 255, 0.95);
    
    &.sticky {
      position: absolute;
      z-index: 4;
      width: 330px;
    }
  }
}

#wdt-emoji-menu-header {
  padding: 4px 0 0 7px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
  background: #f7f7f7;
}

.wdt-emoji-tab {
  display: inline-block;
  width: 28px;
  margin-right: 2.5px;
  padding: 4px;
  transition: border-color 150ms ease-out;
  text-align: center;
  color: #9e9ea6;
  border-bottom: 3px solid transparent;
  
  &:hover {
    cursor: pointer;
    text-decoration: none;
  }
  &.active {
    padding-top: 3px;
    border-bottom: 3px solid #e7543d;
  }
  .emoji-outer {
    width: 18px;
    height: 18px;
  }
}

#wdt-emoji-search {
  font-size: 15px;
  line-height: 20px;
  width: 95%;
  max-width: 100%;
  height: 28px;
  margin: 0.5rem 9px 0.6rem;
  padding: 15px 0.5rem;
  transition: border-color 150ms ease-out;
  color: #444;
  border: 1px solid #c5c5c5;
  border-radius: 3px;
  outline: none;
  
  &:focus { border-color: #a0a0a0; }
}

.wdt-emoji-scroll-wrapper {
  overflow-x: hidden;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  height: 257px;
  padding-bottom: 30px;
}

.wdt-emoji-sections { padding: 0 5px; }

.wdt-emoji {
  line-height: 1rem;
  position: relative;
  display: inline-block;
  margin-right: 2.5px !important;
  margin-bottom: 1px;
  padding: 6px;
  transition: background 500ms ease-out;
  text-align: center;
  border-radius: 6px;
  
  &.not-matched { display: none; }
  &:hover { cursor: pointer; }
  
  &.gray:hover { background-color: rgba(175, 175, 175, 0.32); }
  &.green:hover { background-color: #b7e887; }
  &.pink:hover { background-color: #f3c1fd; }
  &.yellow:hover { background-color: #f9ef67; }
  &.blue:hover { background-color: #b5e0fe; }
}

span.emoji {
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: baseline;
  text-indent: -9999px;
  background-repeat: no-repeat;
  background-position: 50%, 50%;
  background-size: contain;
}
span.emoji-sizer {
  font-size: 1.375em;
  line-height: 1.013em;
  margin: -0.05em 0;
}
span.emoji-outer {
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-top: -2px;
  vertical-align: middle;
}
span.emoji-inner {
  display: inline-block;
  width: 100%;
  height: 100%;
  vertical-align: baseline;
  text-indent: -9999px;
  background: url(//onfocus.b-cdn.net/css/emoji.png);
  background-size: 4100%;
}

img.emoji { width: 1em; height: 1em; }

#wdt-emoji-footer {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding-bottom: 0.4rem;
  border-top: 1px solid rgba(0, 0, 0, 0.15);
  background: #f7f7f7;
}

#wdt-emoji-no-result {
  font-size: 10px;
  font-weight: 400;
  clear: both;
  padding: 20px;
  text-align: center;
  color: #bababa;
  display: none;
  &.wdt-show { display: block; margin: 0 5px; }
}

#wdt-emoji-search-result-title {
  display: none;
  &.wdt-show { display: block; margin: 0 5px; }
}

#wdt-emoji-preview {
  padding: 0.3rem 0 0 0.7rem;
  transition: opacity 0.1s ease-in 0.1s;
  opacity: 0;
}

#wdt-emoji-preview-img {
  font-size: 2rem;
  line-height: 2rem;
  float: left;
  width: 46px;
  height: 54px;
  padding: 0.6rem 0.5rem 0 0.1rem;
  vertical-align: middle;
  
  span.emoji-outer.emoji-sizer {
    position: relative;
    top: 3px;
    left: 4px;
    width: 40px;
    height: 40px;
  }
}

#wdt-emoji-preview-bundle {
  font-size: 17px;
  font-weight: bold;
  position: absolute;
  bottom: 19px;
  left: 14px;
  transition: opacity 0.1s ease-in 0.1s;
  opacity: 1;
  color: #989ba0;
}

#wdt-emoji-preview-text {
  font-size: 13px;
  position: relative;
  top: 9px;
  left: 10px !important;
  color: #777;
}

#wdt-emoji-preview-name {
  font-weight: bold;
  position: relative;
  left: 3px;
  color: #444;
}

.wdt-inline { display: inline; }
.wdt-search-on { display: none; }

.wdt-emoji-popup.preview-mode {
  #wdt-emoji-preview-bundle { opacity: 0; }
  #wdt-emoji-preview { opacity: 1; }
}

.wdt-emoji-popup-mobile-closer {
  font-size: 25px !important;
  font-weight: bold;
  line-height: 35px;
  position: absolute;
  top: -35px;
  left: 50%;
  visibility: hidden;
  width: 40px;
  height: 35px;
  transform: translateX(-50%);
  text-align: center;
  opacity: 0;
  color: #444;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-bottom-color: #e7543d;
  border-radius: 50% 50% 0 0;
  background-color: rgba(255, 255, 255, 0.8);
}


/* =========================================
   10. KEYFRAMES
   ========================================= */
@keyframes text-unfocus {
  from { filter: blur(0); }
  to { filter: blur(3px); }
}
@keyframes text-onfocus {
  from { filter: blur(3px); }
  to { filter: blur(0); }
}
@keyframes pulse {
  0% { opacity: 0.7; }
  100% { opacity: 0.9; }
}
@keyframes heartbeat {
  0% { transform: scale(1); transform-origin: center center; animation-timing-function: ease-out; }
  10% { transform: scale(0.91); animation-timing-function: ease-in; }
  17% { transform: scale(0.98); animation-timing-function: ease-out; }
  33% { transform: scale(0.87); animation-timing-function: ease-in; }
  45% { transform: scale(1); animation-timing-function: ease-out; }
}

/* =========================================
   11. MEDIA QUERIES
   ========================================= */
@media screen and (max-width: 750px) {
  html, body {
    overflow-x: hidden;
    background: #323131;
  }

  #copyright, #flickr_badge_uber_wrapper, #tophome, #topflourish, .tagline, td br, .fill, .nomobile { display: none; }

  #logo { margin-bottom: 0.07em; margin-left: 19px; }
  #infobox { font-size: 100%; padding-left: 50px; }

  #blog {
    width: 100%;
    border-radius: 0;
    min-height: 0;
    padding-top: 0;
    
    > .post.other { margin-top: 0; padding-top: 15px; }
    > .subtitle { margin-top: 0 !important; margin-bottom: 15px !important; padding-top: 10px; }
    > .post.photo { margin-top: 0; }
  }

  #bottom, #copyright, #footer, #header { width: 100%; margin: 0; padding: 0; }
  #header { padding-bottom: 5px; border-bottom: 5px solid #4f483A; }
  #footer { border-top: 5px solid #4f483A; }

  .navigation { width: 80%; padding: 1em; margin: 5px auto 15px auto; }

  .post.single { margin-bottom: 1.5em; }
  .post, .archive-title { margin-right: 22px; margin-left: 22px; margin-top: 0; }
  .post.other.notitle { margin-top: -10px; padding-top: 22px; }

  .post {
    img { max-width: 100%; height: auto; }
    img[width="640"], video[loop=loop] {
      max-width: none;
      height: auto;
      display: block;
      width: 100vw;
      margin-left: 50%;
      transform: translateX(-50%);
    }
    .embed { margin-bottom: 40px; }
    iframe[width="640"] {
      width: 100vw;
      height: 56.25vw;
      margin-left: 50%;
      transform: translateX(-50%);
    }
  }

  .post-byline { margin-right: 22px; }
  .subtitle { font-size: 1.294rem; margin-left: 22px; }
  .welcome { margin-top: 0; }

  table, tbody, td, th, thead, tr { display: block; max-width: 100%; }
  tr { border: 1px solid #fff; }
  td {
    border: none;
    position: relative;
    display: inline;
    padding-left: 0;
    font-size: 0.5em;
    
    div { background-color: #eee; margin-top: 5px; text-align: left; }
    &:before { position: absolute; top: 6px; left: 6px; width: 45%; padding-right: 10px; white-space: nowrap; }
  }

  .project {
    margin-bottom: 40px;
    clear: both;
    direction: rtl;
    .project-icon {
      display: inline; float: right; padding-top: 5px; padding-right: 0; text-align: right; direction: ltr !important;
      img { margin-top: 0; }
    }
    .project-text { display: inline; padding: 0; direction: ltr !important; }
  }
  
  #eat td {
    display: block; padding-left: 3px; padding-bottom: 10px; word-wrap: break-word;
    &[align=right] { text-align: left; padding-bottom: 5px; }
  }
}

@media screen and (max-width: 660px) {
  .post.photo.vert .post-text { padding: 0; background: none; }
  .post.photo.vert .post-text img { margin: 0; }
}

@media screen and (max-width: 480px) {
  .post img[height="640"] {
    max-width: none;
    height: auto;
    display: block;
    width: 100vw;
    margin-left: 50% !important;
    transform: translateX(-50%);
  }
  .recimg { float: none; margin-left: 0; margin-bottom: 8px; img { width: 100%; } }
  #footer .navigation { font-size: 0.8rem; }
  #galleryArchive .galleryThumb { display: inline-block; float: none; width: 100%; height: 100%; padding: 0; line-height: 0; }
}

@media screen and (max-width: 375px) {
  #logo { font-size: 2.094rem; margin-bottom: 0.5em; }
  #infobox .post-text { font-size: 1.2rem; }
  .navigation { font-size: 1.294rem; }
  .socmeed {
    display: inline-block; margin: 10px;
    svg { width: 50px; height: 50px; }
  }
}

/* Emoji Mobile Overrides */
@media only screen and (min-device-width: 320px) and (max-device-width: 480px) and (orientation: portrait) {
  .wdt-emoji-picker { display: none; }
  .wdt-emoji-tab { width: 24px; }
  .wdt-emoji { margin-right: 0 !important; }
  #wdt-emoji-footer { display: none; }
  .wdt-emoji-scroll-wrapper { height: 170px; }
  .wdt-emoji-popup { height: 206px; border-radius: 0; }
  #wdt-emoji-search { display: none; }
  .wdt-emoji-popup-mobile-closer { visibility: visible; opacity: 1; }
  .wdt-emoji-popup h3.sticky { width: 300px; }
}
@media only screen and (min-device-width: 375px) and (max-device-width: 667px) and (orientation: portrait) {
  .wdt-emoji { margin-right: -1px !important; }
  .wdt-emoji-tab { width: 30px; }
  .wdt-emoji-popup h3.sticky { width: 359px; }
}

/* =========================================
   12. EMOJI SPRITES
   ========================================= */
/*
   IMPORTANT: 
   Paste all 2,000+ lines of your `.emojia9`, `.emojiae`, etc. 
   background-position classes right here! 
   
   They do not require any refactoring and copy/pasting them directly
   will ensure every single emoji icon displays perfectly.
*/