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

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

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

[hidden] {
    display: none
}

html {
    font-size: 100%;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%
}

html,
button,
input,
select,
textarea {
    font-family: sans-serif
}

body {
    margin: 0
}

a:focus {
    outline: thin dotted
}

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

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

h2 {
    font-size: 1.5em;
    margin: .83em 0
}

h3 {
    font-size: 1.17em;
    margin: 1em 0
}

h4 {
    font-size: 1em;
    margin: 1.33em 0
}

h5 {
    font-size: .83em;
    margin: 1.67em 0
}

h6 {
    font-size: .67em;
    margin: 2.33em 0
}

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

b,
strong {
    font-weight: bold
}

blockquote {
    margin: 1em 40px
}

dfn {
    font-style: italic
}

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

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

p,
pre {
    margin: 1em 0
}

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

pre {
    white-space: pre;
    white-space: pre-wrap;
    word-wrap: break-word
}

q {
    quotes: none
}

q:before,
q:after {
    content: '';
    content: none
}

small {
    font-size: 80%
}

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

sup {
    top: -0.5em
}

sub {
    bottom: -0.25em
}

dl,
menu,
ol,
ul {
    margin: 1em 0
}

dd {
    margin: 0 0 0 40px
}

menu,
ol,
ul {
    padding: 0 0 0 40px
}

nav ul,
nav ol {
    list-style: none;
    list-style-image: none
}

img {
    border: 0;
    -ms-interpolation-mode: bicubic
}

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

figure {
    margin: 0
}

form {
    margin: 0
}

fieldset {
    border: 1px solid silver;
    margin: 0 2px;
    padding: .35em .625em .75em
}

legend {
    border: 0;
    padding: 0;
    white-space: normal;
    *margin-left: -7px
}

button,
input,
select,
textarea {
    font-size: 100%;
    margin: 0;
    vertical-align: baseline;
    *vertical-align: middle
}

button,
input {
    line-height: normal
}

button,
select {
    text-transform: none
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
    -webkit-appearance: button;
    cursor: pointer;
    *overflow: visible
}

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

input[type="checkbox"],
input[type="radio"] {
    box-sizing: border-box;
    padding: 0;
    *height: 13px;
    *width: 13px
}

input[type="search"] {
    -webkit-appearance: textfield;
    box-sizing: content-box
}

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

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

textarea {
    overflow: auto;
    vertical-align: top
}

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

@import url(http://fonts.googleapis.com/css?family=Cantarell);
@import url(http://fonts.googleapis.com/css?family=Lato:100,400,700);

html,
body {
    height: 100%;
}

#container {
    min-height: 100%;
    height: auto !important;
    position: relative;
}

#wrap {
    padding-bottom: 105px;
}

#footer {
    height: 105px;
    position: absolute;
    bottom: 0;
    width: 100%;
}

html,
button,
input,
select,
textarea {
    color: #222;
}

html {
    font-size: 1em;
    line-height: 1.4;
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}

audio,
canvas,
img,
video {
    vertical-align: middle;
}

fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

textarea {
    resize: vertical;
}

.browsehappy {
    background: #ccc;
    color: #000;
    margin: .2em 0;
    padding: .2em 0;
}

body {
    font-size: 1.125rem;
    line-height: 1.6;
    font-family: "Roboto", "Noto Sans JP", Cantarell, Helvetica, Helvetica Neue, Arial, sans-serif;
    position: relative;
    color: #636363;
}

.wrapper {
    width: 90%;
    margin: 0 5%;
}

body * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.main {
    background: #fff;
    z-index: 0;
    position: relative;
    padding: 1em 0 2em;
}

::-moz-selection,
::-moz-selection {
    background: #b3d4fc;
    text-shadow: none;
}

::-moz-selection,
::selection {
    background: #b3d4fc;
    text-shadow: none;
}

/* ===================
    ALL: Orange Theme
   =================== */

.header-container {
    background: rgb(255, 255, 255);
    position: relative;
    margin: auto;
}

h1.title {
    max-width: 480px;
    margin: 20px;
}

h1.title img {
    width: 100%;
}

h1.title a {
    max-width: 180px;
    margin: 20px;
    display: block
}

header.wrapper h2 {
    font-size: 3em;
    line-height: 1.4;
    vertical-align: bottom;
    padding-top: 1em;
    position: relative;
    margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: Lato, Helvetica, Helvetica Neue, Arial, sans-serif;
    font-size: 1em;
    margin: .5em auto 1em;
}

/* ==============
    MOBILE: Main
   ============== */

.main article h1 {
    font-size: 2em;
}

.main .aside {
    padding: 0px 5% 10px;
}

.footer-container .footer {
    padding: 20px 0;
    font-size: 70%;
    line-height: 1;
    text-align: right;
}


/* ==========================================================================
   Author's custom styles
   ========================================================================== */


.attent {
    font-size: .875rem;
}

#bg {
    display: none;
}

.main {
    background: none;
    position: relative;
    padding: .1px 1rem;
}

.main-container {
    background: inherit;
}

#footer {
    text-shadow: 1px 1px 5px #ccc;
    background: #fff;
    color: #888;
}

h3 {
    font-size: 2.175rem;
    text-shadow: 0 0 10px rgba(0, 0, 0, .5);
    margin: 0 0 .5em;
    text-align: center;
}

address {
    font-style: normal;
}

small.copy {
    text-align: center;
    font-size: .75rem;
    display: block;
}

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

.section:after {
    clear: both;
    content: "";
    display: block;
}

.section {
    border: 1px solid rgba(255, 255, 255, .15);
    box-shadow: 0 0  10px 1px rgba(0, 0, 0, .3);
    z-index: 5;
    background: rgba(255, 255, 255, .5);
    margin: 0 auto 4vh;
    padding: 1em 1em 2rem;
}

svg {
    height: 0;
    width: 0;
    position: absolute;
    top: 0;
    left: 0;
}

.ir {
    background-color: transparent;
    border: 0;
    overflow: hidden;
    text-indent: -9999px;
}

.ir:before {
    content: "";
    display: block;
    width: 0;
    height: 150%;
}

.hidden {
    display: none !important;
    visibility: hidden;
}

.visuallyhidden {
    border: 0;
    clip: rect(0000);
    height: 1px;
    overflow: hidden;
    position: absolute;
    width: 1px;
    margin: -1px;
    padding: 0;
}

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    overflow: visible;
    position: static;
    width: auto;
    margin: 0;
}

.invisible {
    visibility: hidden;
}

.clearfix:before,
.clearfix:after {
    content: " ";
    display: table;
}

.clearfix:after {
    clear: both;
}

.clearfix {
    zoom: 1;
}

.en-markup-crop-options {
    top: 18px !important;
    left: 50% !important;
    margin-left: -100px !important;
    width: 200px !important;
    border: 2px rgba(255, 255, 255, .38) solid !important;
    border-radius: 4px !important;
}

.en-markup-crop-options div div:first-of-type {
    margin-left: 0 !important;
}


.main {
    line-height: 2;
    padding-bottom: 1rem;
}

/* work */
#work ul {
    padding-top: 0;
    margin-top: 0;
}

#work .bg-code {
    background-size: contain;
}

/* contact */
#contact .attention {
    text-align: center;
    font-size: 13px;
}

#contact table {
    margin: auto;
    width: 90%;
}

#contact input[type=number],
#contact input[type=tel],
#contact input[type=email] {
    width: 20em;
    max-width: 90%;
    margin-bottom: 10px;
}

#contact input[type=text],
#contact textarea {
    width: 90%;
    margin-bottom: 10px;
}

#contact input[type=number],
#contact input[type=tel],
#contact input[type=email],
#contact input[type=text] {
    min-height: 40px;
}

#contact textarea {
    min-height: 200px;
}

#contact .button,
#contact input[type=submit] {
    text-align: center;
    margin: 15px auto;
}

#contact input[type=submit],
#contact input[type=button],
#contact button {
    border-radius: 5px;
    border: #a9a9a9 1px solid;
    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2), 0 0 2px rgba(0, 0, 0, 0.3);
    padding: 0 8px;
    cursor: pointer;
    min-height: 40px;
    min-width: 200px;
    color: #333;
    font-weight: bold;
    background: #f5f5f5;
    text-shadow: 1px 1px 0px #fff;
    outline: none;
}

#contact input[type=submit]:disabled,
#contact input[type=button]:disabled,
#contact button:disabled {
    color: #e3e3e3;
    background: #fff;
    border: #e3e3e3 1px solid;
    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1);

}

#contact input[type=submit]:focus,
#contact input[type=button]:focus {
    border: solid 3px #20b2aa;
    position: relative;
    top: -2px;
    left: -2px;
    margin-bottom: 8px;

}

#contact th {
    text-align: right;
    padding: 6px;
    width: 1px;
    white-space: nowrap;
}

#contact .description {
    text-align: center;
}

#contact .error {
    color: #f09;
}

#loaderMask {
    font-family: 'Cantarell', Helvetica, Helvetica Neue, Arial, sans-serif;
    text-align: center;
    padding-top: 30%;
}

#loaderMask span {
    font-size: 5em;
}

#contact input[type=number],
#contact input[type=tel],
#contact input[type=email],
#contact input[type=text],
#contact textarea {
    border-radius: 5px;
    border: #a9a9a9 1px solid;
    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2), 0 0 2px rgba(0, 0, 0, 0.3);
    /*width:200px;*/
    /*min-height:25px;*/
    padding: 0 3px;
}

#contact input[type=number]:focus,
#contact input[type=tel]:focus,
#contact input[type=email]:focus,
#contact input[type=text]:focus,
#contact textarea:focus {
    border: solid 3px #20b2aa;
    position: relative;
    top: -2px;
    left: -2px;
    margin-bottom: 8px;
}

#contact input[type=number],
#contact input[type=tel],
#contact input[type=email],
#contact input[type=text],
#contact textarea,
#contact select {
    outline: none;
}

#contact label.requierd {
    position: relative;
}

#contact label.requierd:after {
    position: absolute;
    top: -0.5em;
    left: -0.5em;
    content: '*';
    color: red;
    line-height: 1;
}

p {
    margin: 0 auto 1em;
}

.wbr {
    display: inline-block;
}

dl.policyList dt {
    font-weight: 700;

}

dl.policyList dd {
    margin: 0 0 0 1em;
}

dl.dl-table dt {
    font-weight: 700;
}

dl.dl-table dd {
    margin: 0;
}

@media only screen and (min-width: 768px) {
    dl.dl-table {
        display: table;
        width: 100%;
    }

    dl.dl-table div {
        display: table-row;
    }

    dl.dl-table dt,
    dl.dl-table dd {
        display: table-cell;
    }

    dl.dl-table dt {
        vertical-align: top;
        width: 13em;

    }
}

nav li>a,
nav li>span {
    padding: 0.5em 1em 0.5em 1.5em;
    line-height: 1;
    display: inline-block;
    white-space: nowrap;
    position: relative;
    border: 1px solid;
    border-radius: 100px;
    text-decoration: none;
    -webkit-transition-duration: .4s;
    transition-duration: .4s;
    color: currentColor;
}

nav li>a:hover,
nav li>a:focus {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
}

nav li>a:before,
nav li>span:before {
    position: absolute;
    top: 0;
    left: .5em;
    bottom: 0;
    margin: auto;
    content: "";
    border: solid;
    border-width: 1px 1px 0 0;
    width: .5em;
    height: .5em;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

nav ul li {
    display: inline-block;
    margin: 0 .5em;
}



@media only screen and (min-width: 280px) {
    #bg {
        z-index: -1;
        position: fixed;
        width: 100%;
        opacity: .3;
        display: block;
    }
}

@media only screen and (min-width: 480px) {
    .oldie nav a {
        margin: 0 0.7%;
    }
}

@media only screen and (max-width: 768px) {
    #work .bg-code {
        background: none;
    }
}

@media only screen and (min-width: 1140px) {
    .wrapper {
        max-width: 1280px;
        margin: 0 auto;
    }
}

/*
print
*/
@media print {
    * {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    a,
    a:visited {
        text-decoration: underline;
    }

    a[href]:after {
        content: " ("attr(href) ")";
    }

    abbr[title]:after {
        content: " ("attr(title) ")";
    }

    .ir a:after,
    a[href^="javascript:"]:after,
    a[href^="#"]:after {
        content: "";
    }

    pre,
    blockquote {
        border: 1px solid #999;
        page-break-inside: avoid;
    }

    thead {
        display: table-header-group;
    }

    tr,
    img {
        page-break-inside: avoid;
    }

    img {
        max-width: 100% !important;
    }

    @page {
        margin: 0.5cm;
    }

    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }

    h2,
    h3 {
        page-break-after: avoid;
    }

    .top .splash {
        opacity: 0;
        display: none;
    }

    #container {
        opacity: 1;
        visibility: visible;
        display: block;
    }
}

#description.section {
    border: 0;
    box-shadow: none;
    text-align: center;
    padding: 3rem 0;
    max-width: 640px;
}


.top .splash {
    position: fixed;
    opacity: 1;
    transition: opacity 1.6s ease-in-out;
    display: block;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    left: 0px;
    top: 0px;
}

.top .splash.is-hidden {
    opacity: 0;
    display: none;
    pointer-events: none;
}


.top .splash div#animation_container {
/*    background-color: rgba(255, 255, 255, 1.00);
    width: 100vw !important;
    height: 100vh !important;
    aspect-ratio: 1024 / 764;


    background-color: rgba(255, 255, 255, 1.00);*/
    width: 100vw !important;
    height: 100vh !important;
    /* aspect-ratio: 1024 / 764; */
    display: grid;
    align-items: center;
    background: #20b5ff;
}

.top .splash canvas#canvas {
    /*position: absolute;
    display: block;
    background-color: rgb(255, 255, 255);
    width: 100vw !important;
    height: 100vh !important;
    object-fit: cover;*/

    position: absolute;
    display: block;
    background-color: rgb(255, 255, 255);
    object-fit: contain;
    max-width: 100vw;
    max-height: 100vh;
    height: auto !important;
    width: 100% !important;
}

.top .splash div#dom_overlay_container {
    pointer-events: none;
    overflow: hidden;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0px;
    top: 0px;
    display: none;
}

.top .splash div#_preload_div_ {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    height: 64px !important;
    width: 64px !important;
    text-align: center;
}

.top .splash div#_preload_div_ img {
    vertical-align: middle;
    max-height: 100%;
}


.top #container {
    opacity: 0;
    visibility: hidden;
    transition: opacity 1.6s ease-in-out;
}

.top #container.is-visible {
    opacity: 1;
    visibility: visible;
}


@media (min-width:768px) {
    .work__section {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-start;
        gap: 4rem;
        justify-content: center;
    }

    .work__section .work__section--block {
        width: calc(50% - 2.5rem);
    }
}

@media (min-width:1024px) {
    .work__section .work__section--block {
        width: calc(33% - 2.5rem);
    }
}

.work__section .work__section--block {
    display: grid;
    grid-template-areas:
        'thumb'
        'title'
        'summary';
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
}


.work__section--block h4 {
    font-size: 1.5rem;
    line-height: 1;
    grid-area: title;
    text-align: center;
    width: 100%;
}

.work__section--block h4 span {
    display: block;
    font-weight: 100;
    font-size: .8125rem;
    margin-top: .25rem;
    padding-top: .25rem;
    width: 100%;
    border-top: 1px solid
}

.work__section--block .thumb {
    grid-area: thumb;
}

.work__section--block .thumb img {

    max-width: 300px;
    height: auto;
    display: block;
    margin: auto;
    border: 1px solid #b2c6ff;
    border-radius: 200px;
    object-fit: contain;
    aspect-ratio: 1 / 1;
}

.work__section--block dl {
    grid-area: summary;
    /* display:table; */
}

.work__section--block dl>div {
    margin-bottom: 1rem;
    /* display:table-row; */
}

.work__section--block dl>div:last-child {
    margin-bottom: 0;
}

.work__section--block dl dt {
    /* display:table-cell; */
    font-weight: 700;
    color: #20b5ff;
    font-size: .875rem;
    line-height: 1.2;
    margin-bottom: .5rem;
}

.work__section--block dl dd {
    line-height: 1.4;
    margin-left: 1rem;
    font-size: 0.8125rem;

    /* display:table-cell; */
}

#about.section {
    border: 0;
    box-shadow: none;
    text-align: center;
    padding: 3rem 0;
    max-width: 640px;
}

#about.section p em{
  font-style: normal;
  font-size: 1.125em;
  font-weight: 900
}

#about.section hr{
  margin: 3rem 0;
}
    .lang-switcher {
      margin-bottom: 2em;
      display: flex;
      gap: 0.25rem;
      position: absolute;
      top: 1rem;
      right: 1rem;
      z-index: 1;
    }

    .lang-switcher a {
      display: inline-grid;
      border: 1.4px solid #007acc;
      border-radius: 100px;
      text-decoration: none;
      color: #007acc;
      background: #f8f8f8;
      transition: background 0.2s ease;
      width: 3em;
      height: 3em;
      align-content: center;
      justify-content: center;
      align-items: center;
      font-size: .75rem;
      font-weight: 700;
    }

    .lang-switcher a.active {
      background: #007acc;
      color: #fff;
      pointer-events: none;
      cursor: default;
    }

    .lang-switcher a:hover:not(.active) {
      background: #e0e0e0;
    }