/*!
Theme Name: Minuutje Stilte
Theme URI: https://underscores.me/
Author: Studio Rude Box
Author URI: https://studiorudebox.nl
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: minstil
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

/*########################################################################
    VARIABLES
########################################################################*/

:root {
    /* font family */
    --font-family-body   : "Bitter", serif;
    --font-family-heading: var(--font-family-body);
    --font-family-menu   : var(--font-family-body);
    
    /* font weights */
    --font-weight-heading      : 900;
    --font-weight-body         : 400;
    --font-weight-body-bold    : 700;
    --font-weight-menu         : 500;
    --font-weight-menu-active  : 600;

    /* line heights */
    --line-height-xs: 0.9;
    --line-height-sm: 1;
    --line-height-md: 1.2;
    --line-height-lg: 1.4;
    --line-height-xl: 1.6;
    --line-height-2xl: 2;    

    /* font sizes */
    /* @link https://utopia.fyi/type/calculator?c=320,16,1.25,1240,20,1.333,5,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */
    font-size           : 100%;
    --font-size-body-xs : clamp(0.64rem, 0.6179rem + 0.1104vw, 0.7035rem);
    --font-size-body-sm : clamp(0.8rem, 0.7521rem + 0.2395vw, 0.9377rem);
    --font-size-body-md : clamp(1rem, 0.913rem + 0.4348vw, 1.25rem);
    --font-size-body-lg : clamp(1.25rem, 1.1052rem + 0.7239vw, 1.6663rem);
    --font-size-body-xl : clamp(1.5625rem, 1.3334rem + 1.1454vw, 2.2211rem);
    --font-size-body-2xl: clamp(1.9531rem, 1.6026rem + 1.7524vw, 2.9607rem);
    --font-size-body-3xl: clamp(2.4414rem, 1.9178rem + 2.6178vw, 3.9467rem);
    --font-size-body-4xl: clamp(3.0518rem, 2.2834rem + 3.842vw, 5.2609rem);

    /* global colors */
    --color-1: rgb(33, 0, 36);
    --color-2: rgb(94, 15, 61);
    --color-3: rgb(144, 30, 68);
    --color-4: rgb(204, 69, 62);
    --color-5: rgb(255, 157, 0);
    --color-6: rgb(253, 242, 248);

    /* alias colors */
    --color-bg: var(--color-6);
    --color-bg-dark: var(--color-1);
    --color-text-body: var(--color-6);
    --color-text-body-dark: var(--color-1);
    --color-border: var(--color-6);

    /* break points */
    --breakpoint-sm: 40rem; /* 640 px */
    --breakpoint-md: 48rem; /* md: 768 px */
    --breakpoint-lg: 64rem; /* 1024 px */
    --breakpoint-xl: 80rem; /* 1280 px */
    --breakpoint-2xl: 96rem; /* 1536 px */
    --breakpoint-3xl: 112rem; /* 1792 px */

     /* shadow */
    --shadow: 0.9px 0.6px 2.2px rgba(35, 31, 32, 0.02),
        2.1px 1.5px 5.3px rgba(35, 31, 32, 0.028),
        3.9px 2.9px 10px rgba(35, 31, 32, 0.035),
        6.9px 5.1px 17.9px rgba(35, 31, 32, 0.042),
        13px 9.6px 33.4px rgba(35, 31, 32, 0.05),
        31px 23px 80px rgba(35, 31, 32, 0.07);
    
    /* general */
    --padding-y-wrapper: 2em;
    --header-height: 4em;
    --footer-height: var(--header-height);
    --border-radius-xs : 0.2em;
    --border-radius-sm : 0.4em;
    --border-radius-md : 0.6em;
    --border-radius-lg : 0.8em;
    --border-radius-xl : 1.6em;
    --border-radius-2xl: 2.4em;

    /* animation timing functions */
    --timing-function-snappy: cubic-bezier(0.645, 0.045, 0.355, 1.000);
    --timing-function-subtle: cubic-bezier(0.22, 1, 0.36, 1);
}

/*########################################################################
    ANIMATIONS
########################################################################*/

*,
*::after,
*::before {
    transition: color 100ms ease-out,
        background-color 100ms ease-out,
        border-color 100ms ease-out,
        padding 100ms ease-out,
        margin 100ms ease-out,
        height 100ms ease-out,
        width 100ms ease-out,
        min-height 100ms ease-out,
        min-width 100ms ease-out;
}

.origin-center {transform-origin: center center;}

@keyframes spinClockwise {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes spinCounter {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(-360deg);
    }
}

@keyframes turnInClockwise {
    from {
        transform: rotate(-60deg);
    }

    to {
        transform: rotate(0deg);
    }
}

@keyframes turnInCounter {
    from {
        transform: rotate(60deg);
    }

    to {
        transform: rotate(0deg);
    }
}

@keyframes fadeInScale {
    0% {
        opacity: 0;
        transform: scale(0);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes fadeOutScale {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    100% {
        opacity: 0;
        transform: scale(0);
    }
}

@keyframes fadeOutTop {
    0% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(-100%);
    }
}

@keyframes fadeOutBottom {
    0% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(100%);
    }
}

@keyframes popPlanet
{
    0% 
    {
        transform: scale(1);
        opacity: 1;
    }
    40% 
    {
        transform: scale(1.2);
        opacity: 1;
    }
    100% 
    {
        transform: scale(0);
        opacity: 0.5;
    }
}

@keyframes growPlanet
{
    0% 
    {
        transform: scale(0);
        opacity: 0.5;
    }
    100% 
    {
        transform: scale(1);
        opacity: 1;
    }
}

/*########################################################################
    GLOBAL STYLING
########################################################################*/

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}


html,
body {
    position: relative;
    font-family: var(--font-family-body);
    font-weight: var(--font-weight-body);
    font-size: var(--font-size-body-md);
    line-height: var(--line-height-xl);
    min-height: 100vh;
    background: var(--color-bg);
    color: var(--color-text-body);
    scroll-behavior: smooth;
    overflow-x: hidden;
}

h1, h2, h3, h4 {
    font-family: var(--font-family-heading);
    color: var(--color-text-heading);
    line-height: var(--line-height-sm);
}

h1 {
    font-size: var(--font-size-body-4xl);
    font-weight: var(--font-weight-heading);
    letter-spacing: -0.04em;
    margin: 0 0 .25em 0;
}

h2 {
    position: relative;
    font-size:  var(--font-size-body-3xl);
    font-weight: var(--font-weight-heading);
    letter-spacing: -0.04em;
    padding-bottom: 0.25em;
    margin: 1em 0 0 0;
}

h3 {
    font-size: var(--font-size-body-2xl);
    font-weight: var(--font-weight-heading);
    margin: 1em 0 0 0;
}

h4 {
    font-size: var(--font-size-body-xl);
    font-weight: var(--font-weight-heading);
    margin: 1em 0 0 0;
}

h1:first-child,
h2:first-child,
h3:first-child,
h4:first-child {
    margin-top: 0;
}

p {
    margin-bottom: 0.75em;
}

p:empty {
    margin: 0;
    padding: 0;
}

p:empty {
    margin: 0;
    padding: 0;
}

svg,
img[src$=".svg"] {
    display: block;
}

img {
    display: block;
    width: 100%;
    height: auto;
}

figcaption {
    font-size: var(--font-size-body-sm);
    color: var(--color-neutral-200);
}

a,
a:visited {
    color: currentColor;
    font-weight: var(--font-weight-body-bold);
    text-decoration: none;
    border-bottom: 1px solid var(--color-6);
    padding-bottom: 2px;
}

a.no-underline {
    border-bottom: none;
    padding-bottom: 0;
}

*:focus {
    outline: none;
}

ol, ul {
    padding: 0.75em 0 0.75em 1em;
}

ul:not(.list-none) li::before { /* custom list dot */
    content: '';
    border: 1px solid var(--color-text-body);
    border-radius: 100%;
    display: block;
    height: 0.4em;
    width: 0.4em;
    position: absolute;
    top: 0.6em;
    left: -2rem;
}

li {
    position: relative;
    margin-left: 2rem;
}

strong {
    font-weight: var(--font-weight-body-bold);
}

blockquote {
    margin: 0.75em 0 1.25em 0;
    font-style: italic;
}

hr {
    margin: 1em 0;
    border: 0;
    border-top: 1px solid var(--color-border);
}

hr.flat {margin: 0;}

small {
    font-size: var(--font-size-body-sm);
}

/* box for 1920 x 1080 */
.hd-box {
    position: relative;
    padding-top: 56.25%;
}

.rounded {
    border-radius: var(--border-radius-sm) !important;    
}

/* WCAG focus visible */
:focus-visible,
.focusable-container:focus-within {
    outline: auto !important;
    outline-offset: 4px;
}

/*########################################################################
    BODY
########################################################################*/

body { min-height: 100dvh; }

body#body-default {
    background: url(img/bg-rainbow-vortex.svg);
    background-size: cover;
}

body#body-article {
    background: var(--color-bg-dark);
}

/*########################################################################
    HEADER
########################################################################*/

header#masthead.site-header nav {
    height: var(--header-height);
    width: 100%;
    padding: 0 1em;
}

header#masthead.site-header nav a { 
    text-decoration: none;
    border-bottom: none;
    padding-bottom: 0;
}

#header-menu { gap: 1em; }
#header-menu li:not(.current-menu-item) a { opacity: 0.5; }
#header-menu a:hover,
#header-menu a:focus-visible { text-decoration: underline; }

/* article header */
#body-article header#masthead.site-header {
    min-height: 38rem;
    background: url(img/bg-rainbow-vortex.svg);
    background-size: cover;
    background-attachment: fixed;
    overflow: hidden;
}

#body-article header#masthead.site-header .logo-header svg {
    height: 18em;
    width: auto;
    aspect-ratio: 1 / 1;
    opacity: 0.87;
}

#body-article header#masthead.site-header .logo-header * { fill: var(--color-text-body); }

#body-article header#masthead.site-header .drip-transition {
    height: calc(1 * var(--header-height));
    width: 100%;
    margin-top: var(--header-height);
    mask-image: url(img/bg-drips.svg);
    mask-position: left bottom;
    mask-repeat: repeat-x;
    mask-size: cover;
    background-color: var(--color-bg-dark);
}

@media (min-width: 48rem) {
    
    #body-article header#masthead.site-header .drip-transition {
        height: calc(2 * var(--header-height));
        mask-size: contain;
    }
}

/*########################################################################
    SECTIONS
########################################################################*/

section {position: relative;}

section .section-heading {
    width: 100%;
    gap: 1em 4em;
}

section .section-heading h1 {
    max-width: 10ch;
    margin: 0;
    text-wrap: balance;
    text-shadow: var(--shadow);
}

section .section-heading .heading-wrapper h1 {text-align: center;}
section .section-heading .lead p { margin: 0; }
section .section-heading .lead {
    text-align: center;
    max-width: 32ch;
    text-wrap: balance;
}

section.main { width: 100%; }

@media (min-width: 48rem) {
    
    section .section-heading .heading-wrapper h1 {text-align: right;}
    section .section-heading .lead-wrapper .lead {text-align: left;}
}

/*########################################################################
#	CONTENT WRAPPER
########################################################################*/

.content-wrapper {
    position: relative;
    width: 100%;
    max-width: 100%;
    padding: var(--padding-y-wrapper) 1em;
    row-gap: 2em;
    grid-template-columns: 1fr;
}

@media (min-width: 48rem) { .content-wrapper { max-width: var(--breakpoint-md); padding: var(--padding-y-wrapper) 2em;} }  /* md: 48em */
@media (min-width: 64rem) { .content-wrapper { max-width: var(--breakpoint-lg); padding: var(--padding-y-wrapper) 2em; } } /* lg: 64em */
@media (min-width: 80rem) { .content-wrapper { max-width: var(--breakpoint-xl); padding: var(--padding-y-wrapper) 2em;} } /* xl: 80em */
@media (min-width: 96rem) { .content-wrapper { padding: var(--padding-y-wrapper) 2em;} } /* 2xl: 96em */

/*########################################################################
#	UI ELEMENTS
########################################################################*/

button {
    background: transparent;
    border: 0;
    font-size: inherit;
    color: inherit;
    cursor: pointer;
}

button:disabled {
    opacity: 0.5;
    cursor: auto;
}

.button {
    transition: transform 180ms var(--timing-function-subtle);
}

.button:not(:disabled):hover,
.button:not(:disabled):focus-visible {
    transform: scale(1.04);
}

.btn-outline {
    padding: 0.55em 2em;
    border-radius: var(--border-radius-xl);
    font-size: var(--font-size-body-md);
    font-weight: var(--font-weight-body-bold);
    font-family: var(--font-family-body);
    border: 2px solid currentColor;
    background: transparent;
    cursor: pointer;
}

@media (hover: hover) {
    .btn-outline:hover {
        background-color: var(--color-6);
        color: var(--color-1);
        border-color: var(--color-6);
    }
}

.btn-active {
    background-color: var(--color-6);
    color: var(--color-1);
    border-color: var(--color-6);
}

.btn-inactive {
    opacity: 0.4;
}

.select-outline {
    padding: 0.55em 2em 0.55em 0.75em;
    border-radius: var(--border-radius-sm);
    font-size: var(--font-size-body-md);
    font-weight: var(--font-weight-body-bold);
    font-family: var(--font-family-body);
    border: 2px solid var(--color-6);
    color: var(--color-6);
    background: transparent;
    cursor: pointer;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23fdf2f8'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.65em center;
}

.select-outline:disabled {
    opacity: 0.4;
    cursor: default;
}

.select-outline option {
    background: var(--color-1);
    color: var(--color-6);
}

a.card {
    column-gap: 1em;
    color: var(--color-text-body-dark);
    text-decoration: none;
    height: 100%;
    padding: 1em 1.5em;
    border-radius: 0.75em;
    background: var(--color-bg);
    box-shadow: var(--shadow);
}

a.card svg {
    height: 2em;
    width: auto;
}

a.card .overline {
    font-size: var(--font-size-body-sm);
    font-weight: 600;
    opacity: 0.65;
    line-height: var(--line-height-lg);
}

a.card h3 {
    font-size: var(--font-size-body-md);
    font-weight: 800;
    margin: 0.25em 0;
}

a.card .description {
    font-weight: 400;
}

a.card .sub {
    font-size: var(--font-size-body-sm);
    font-weight: 400;
    opacity: 0.9;
    line-height: var(--line-height-sm);
}

/*########################################################################
    FOOTER
########################################################################*/

footer#colophon { height: var(--footer-height);}
footer#colophon .footer-wrapper { width: 100%; }
footer#colophon .colofon-text {
    text-align: center;
    text-wrap: balance;
    font-size: var(--font-size-body-sm);
}

footer#colophon .colofon-text p { margin: 0;}

/*########################################################################
    BREADCRUMBS
########################################################################*/

.breadcrumbs .breadcrumb-path {
    font-size: var(--font-size-body-md);
    vertical-align: middle;
}
.breadcrumbs .breadcrumb-home,
.breadcrumbs .breadcrumb-category {
    color: var(--color-5);
}

.breadcrumbs .breadcrumb-sep {
    display: inline-block;
    padding: 0 0.25em;
    color: var(--color-brand-500);
    font-weight: var(--font-weight-body-bold);
}

.breadcrumbs .breadcrumb-path svg {color: var(--color-brand-500);}

.breadcrumbs a.breadcrumb-path:not(:last-of-type),
.breadcrumbs .breadcrumb-current,
.breadcrumbs .breadcrumb-sep {
    display: none; /* only show the page one step back */
}

@media (min-width: 40em) {
    
    .breadcrumbs .breadcrumb-path svg {display: none;}
    
    .breadcrumbs a.breadcrumb-path,
    .breadcrumbs a.breadcrumb-path:not(:last-of-type),
    .breadcrumbs .breadcrumb-current,
    .breadcrumbs .breadcrumb-sep {
        display: flex; /* only show the page one step back */
    } 
}

/*########################################################################
    ARTICLES
########################################################################*/

.article-wrapper { 
    max-width: 75ch;
    padding-top: calc(2 * var(--padding-y-wrapper));
}

.article-wrapper article .article-meta {
    font-size: var(--font-size-body-sm);
    margin-bottom: 1em;
    opacity: 0.8;
}

#section-article-header .section-heading h1 {
    text-align: center;
    width: 100%;
    max-width: none;
}

@media (min-width: 64rem) { #section-article-header .section-heading h1 {text-align: left;} }

.article-wrapper article h2 { font-size: var(--font-size-body-2xl); }
.article-wrapper article h3 { font-size: var(--font-size-body-xl); }

/* animations */
#section-article-header .triangle,
#section-article-header .orbit-1,
#section-article-header .orbit-3 { animation: turnInClockwise 800ms var(--timing-function-subtle) forwards; }
#section-article-header .orbit-2 { animation: turnInCounter 800ms var(--timing-function-subtle) forwards; }
#section-article-header .planet { animation: fadeInScale 800ms var(--timing-function-subtle) forwards; }
#section-article-header .circle-part { animation: fadeInScale 800ms var(--timing-function-subtle) forwards; }

/*########################################################################
    PASTIME
########################################################################*/

/* page */
#pastime-story-section .pastime-stories {
    gap: 1em;
    grid-template-columns: auto;
}

/* single pages */
#pastime-single-section article p:first-child::first-letter {
    font-size: calc(var(--font-size-body-md) * 5 );
    font-weight: 900;
    float: left; 
    line-height: var(--line-height-sm);
    margin-right: 0.2em;
}

@media (min-width: 64rem) { #pastime-story-section .pastime-stories { grid-template-columns: 1fr 1fr; } }

/*########################################################################
    TIMER
########################################################################*/

#timer-section {
    --base-duration: .3s;
    --trajectory-bg: rgba(255, 157, 0, 0.5);
}

#timer-section .fadein {
    opacity: 0;
    animation: fadeInScale calc(var(--base-duration) * 2) var(--timing-function-snappy) both;
    animation-delay: calc(var(--animation-order) * 100ms);
}

#timer-section .fadeout {
    animation: fadeOutScale calc(var(--base-duration) * 2) var(--timing-function-snappy) both;
    animation-delay: calc(var(--animation-order) * 100ms);
}

#timer-section h1 {
    grid-row: 1;
    grid-column: 1;
}

#timer-section #progressIndicator { transition: transform 1s var(--timing-function-snappy); }

#timer-section #progressIndicator #progressBg {
    fill: var(--trajectory-bg);
    stroke: var(--color-text-body);
    stroke-width: 4px;
    opacity: 0;
}

#timer-section #progressIndicator #progressState {
    fill: none;
    stroke: var(--color-text-body);
    stroke-width: 10px;
    stroke-linecap: round;
    transition: stroke-dashoffset 1s linear;
    transform: rotate(-90deg);
}

#timer-section .orbit-1.spin { animation: spinCounter 60s linear infinite; animation-play-state: running; }
#timer-section .orbit-2.spin { animation: spinCounter 80s linear infinite; animation-play-state: running; }
#timer-section .orbit-3.spin { animation: spinCounter 40s linear infinite; animation-play-state: running; }
#timer-section .counter .orbit.paused { animation-play-state: paused; }

#timer-section .trajectory {
    fill: var(--trajectory-bg);
    fill-opacity: 0.25;
    stroke: var(--color-text-body);
    stroke-width: 4px;
    stroke-opacity: 0.25;
    transition: fill 100ms ease-out, stroke 100ms ease-out, fill-opacity 100ms ease-out, stroke-opacity 100ms ease-out;
}

#timer-section .planet {
    fill: var(--color-text-body);
    stroke: none;
    outline: 2px solid rgba(255, 255, 255, 0.2);
    outline-offset: 4px;
    border-radius: 50%;
    cursor: pointer;
    transition: fill 100ms ease-out, stroke 100ms ease-out;
}

#timer-section .planet:hover { outline: 2px solid currentColor; }
#timer-section .pop-planet { animation: popPlanet 0.5s ease-in-out forwards; }
#timer-section .grow-planet { animation: growPlanet 0.5s var(--timing-function-snappy) forwards; }

/* game mode */
#timer-section.gamemode .planet {
    fill: var(--color-3);
    stroke: var(--color-text-body);
    stroke-width: 4px;
}

#timer-section.gamemode .hud-indicator {
    fill: var(--color-3);
    stroke: var(--color-text-body);
    stroke-width: 4px;
}

#timer-section.gamemode .planet.in-solution,
#timer-section .hud-indicator.in-solution { fill: var(--color-text-body); }

#timer-section.gamemode .planet.correct,
#timer-section .hud-indicator.correct {
    fill: var(--color-1);
    stroke: var(--color-5);
}

#timer-section.gamemode .trajectory.correct { 
    stroke: var(--color-1); 
    stroke-opacity: 0.5;
}

/* timer inner part */
#timer-section #inner-part {
    position: relative;
    grid-row: 1;
    grid-column: 1;
    width: 15%;
    max-width: 4rem;
    height: auto;
    aspect-ratio: 1 / 1;
    z-index: 6;
}

#timer-section #inner-part .hud-contruction {
    fill: none;
    stroke: var(--color-text-body);
    stroke-width: 2rem;
    stroke-opacity: 0.5;
}

/* timer */
#timer-section .counter {
    grid-row: 1;
    grid-column: 1;
    width: 100%;
    max-width: 32rem;
    height: auto;
}

#timer-section .inner-img,
#timer-section .inner-img svg {
    width: 100%;
    height: 100%;
}

/* #timer-section .inner-img svg {
    width: 100%;
    height: 100%;
} */

@media (min-width: 48rem) { /* md: 48em */

    #timer-section #timer { font-size: var(--font-size-body-3xl); }
}

/* manifest heading */
#timer-section #manifest-heading h1 {
    font-size: var(--font-size-body-2xl);
    font-weight: var(--font-weight-body);
    max-width: 24ch;
    text-wrap: balance;
    text-align: center;
}

/*########################################################################
    MANIFEST
########################################################################*/

#manifest-section .button-wrapper {
    background: rgba(255, 255, 255, 0.1);
    gap: 2em;
    padding: 1em;
    margin: 1em 0;
    border-radius: var(--border-radius-md);
}

#manifest-section .i-feel-lucky-btn.roll { animation: spinClockwise 0.9s var(--timing-function-snappy) both; }
#manifest-section #quote-wrapper { 
    overflow: hidden;
    padding: 2em 0;
    min-height: 12em;
}

#manifest-section blockquote { 
    gap: 0.5em;
    grid-row: 1;
    grid-column: 1;
}
#manifest-section blockquote.move-out {animation: fadeOutTop 0.5s var(--timing-function-snappy) forwards;}
#manifest-section blockquote.move-in {animation: fadeInScale 0.5s var(--timing-function-snappy) forwards;}

#manifest-section .meaning-lapse-nr-wrapper { color: var(--color-5); }
#manifest-section .meaning-lapse-text {
    font-size: var(--font-size-body-2xl);
    line-height: var(--line-height-sm);
}

@media (min-width: 48rem) { /* md: 48em */
    #manifest-section #quote-wrapper { min-height: 18em; }
    #manifest-section .meaning-lapse-text { font-size: var(--font-size-body-3xl); }
}

/*########################################################################
    DOWNLOADS
########################################################################*/

#downloads-body-section .downloads { gap: 1em; }

/*########################################################################
    I DON'T FEEL LUCKY
########################################################################*/

#idfl-section .i-feel-unlucky-btn.roll { animation: spinClockwise 0.9s var(--timing-function-snappy) both; }
#idfl-section .move-out {animation: fadeOutBottom 0.5s var(--timing-function-snappy) forwards;}
#idfl-section .move-in {animation: fadeInScale 0.5s var(--timing-function-snappy) forwards;}