|
|
|
@ -308,8 +308,8 @@ main, .modal-panel { |
|
|
|
} |
|
|
|
|
|
|
|
@keyframes wave-slide-in { |
|
|
|
from { transform: translateX(100%); } |
|
|
|
to { transform: translateX(0); } |
|
|
|
from { translate: 100% 0; } |
|
|
|
to { translate: 0 0; } |
|
|
|
} |
|
|
|
|
|
|
|
@keyframes wave-slide-out { |
|
|
|
@ -322,6 +322,11 @@ main, .modal-panel { |
|
|
|
to { transform: translateX(0); } |
|
|
|
} |
|
|
|
|
|
|
|
@keyframes screen-slide-up { |
|
|
|
from { transform: translateY(100dvh); } |
|
|
|
to { transform: translateY(0); } |
|
|
|
} |
|
|
|
|
|
|
|
@keyframes answers-sink { |
|
|
|
from { opacity: 1; transform: translateY(0); } |
|
|
|
to { opacity: 0; transform: translateY(1.5rem); } |
|
|
|
@ -332,6 +337,21 @@ main, .modal-panel { |
|
|
|
to { opacity: 1; transform: translateY(0); } |
|
|
|
} |
|
|
|
|
|
|
|
@keyframes answers-slide-up { |
|
|
|
from { transform: translateY(100%); } |
|
|
|
to { transform: translateY(0); } |
|
|
|
} |
|
|
|
|
|
|
|
@keyframes indicator-blink { |
|
|
|
from { background-color: var(--clr-green); } |
|
|
|
to { background-color: var(--clr-white); } |
|
|
|
} |
|
|
|
|
|
|
|
@keyframes hero-rise { |
|
|
|
from { opacity: 0; transform: translateY(1.5rem); } |
|
|
|
to { opacity: 1; transform: translateY(0); } |
|
|
|
} |
|
|
|
|
|
|
|
@media (max-width: 1023.98px) and (prefers-reduced-motion: no-preference) { |
|
|
|
.start .hero-container { |
|
|
|
overflow: clip; |
|
|
|
@ -372,8 +392,9 @@ main, .modal-panel { |
|
|
|
overflow: clip; |
|
|
|
} |
|
|
|
|
|
|
|
.facts-modal .hero-container svg.ico-wave { |
|
|
|
.facts-modal .carousel-frame > svg.ico-wave { |
|
|
|
animation: wave-slide-in var(--dur-base) var(--ease-out) both; |
|
|
|
transition: bottom var(--dur-base) var(--ease-out); |
|
|
|
} |
|
|
|
|
|
|
|
.facts-modal .is-entering { |
|
|
|
@ -381,26 +402,27 @@ main, .modal-panel { |
|
|
|
overflow: clip; |
|
|
|
} |
|
|
|
|
|
|
|
.facts-modal .is-entering .carousel-frame, |
|
|
|
.facts-modal .is-entering .carousel, |
|
|
|
.facts-modal .is-entering .carousel > li > .hero-container { |
|
|
|
flex: 0 0 auto; |
|
|
|
transition: height var(--dur-base) var(--ease-out); |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="slide-left"] main { |
|
|
|
html:is([data-screen-transition="slide-left"], [data-screen-transition="slide-up"]) main { |
|
|
|
view-transition-name: game; |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="slide-left"]::view-transition-old(root), |
|
|
|
html[data-screen-transition="slide-left"]::view-transition-new(root), |
|
|
|
html[data-screen-transition="slide-left"]::view-transition-old(game), |
|
|
|
html[data-screen-transition="slide-left"]::view-transition-new(game) { |
|
|
|
html:is([data-screen-transition="slide-left"], [data-screen-transition="slide-up"])::view-transition-old(root), |
|
|
|
html:is([data-screen-transition="slide-left"], [data-screen-transition="slide-up"])::view-transition-new(root), |
|
|
|
html:is([data-screen-transition="slide-left"], [data-screen-transition="slide-up"])::view-transition-old(game), |
|
|
|
html:is([data-screen-transition="slide-left"], [data-screen-transition="slide-up"])::view-transition-new(game) { |
|
|
|
mix-blend-mode: normal; |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="slide-left"]::view-transition-old(root), |
|
|
|
html[data-screen-transition="slide-left"]::view-transition-new(root), |
|
|
|
html[data-screen-transition="slide-left"]::view-transition-old(game) { |
|
|
|
html:is([data-screen-transition="slide-left"], [data-screen-transition="slide-up"])::view-transition-old(root), |
|
|
|
html:is([data-screen-transition="slide-left"], [data-screen-transition="slide-up"])::view-transition-new(root), |
|
|
|
html:is([data-screen-transition="slide-left"], [data-screen-transition="slide-up"])::view-transition-old(game) { |
|
|
|
animation: none; |
|
|
|
} |
|
|
|
|
|
|
|
@ -408,6 +430,26 @@ main, .modal-panel { |
|
|
|
animation: screen-slide-in var(--dur-base) var(--ease-out) both; |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="slide-up"]::view-transition-new(game) { |
|
|
|
animation: screen-slide-up var(--dur-base) var(--ease-out) both; |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="slide-up"] main.results { |
|
|
|
background-color: var(--clr-sand-light); |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="slide-up"] .results-tagline svg.ico-wave { |
|
|
|
opacity: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.results.is-settling .results-tagline { |
|
|
|
overflow: clip; |
|
|
|
} |
|
|
|
|
|
|
|
.results.is-settling .results-tagline svg.ico-wave { |
|
|
|
animation: wave-slide-in var(--dur-fast) var(--ease-out) both; |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="answer"] .hero-container { |
|
|
|
view-transition-name: hero; |
|
|
|
} |
|
|
|
@ -437,6 +479,109 @@ main, .modal-panel { |
|
|
|
animation: answers-rise calc(var(--dur-base) * 0.6) var(--ease-out) |
|
|
|
calc(var(--dur-base) * 0.4) both; |
|
|
|
} |
|
|
|
|
|
|
|
.good_answer > .answers-container, |
|
|
|
.bad_answer > .answers-container { |
|
|
|
transition: transform var(--dur-base) var(--ease-in), |
|
|
|
margin-block-end var(--dur-base) var(--ease-in); |
|
|
|
} |
|
|
|
|
|
|
|
.good_answer > .stage-header-container, |
|
|
|
.bad_answer > .stage-header-container { |
|
|
|
transition: margin-block-start var(--dur-base) var(--ease-in); |
|
|
|
} |
|
|
|
|
|
|
|
.good_answer.is-finishing > .stage-header-container, |
|
|
|
.bad_answer.is-finishing > .stage-header-container { |
|
|
|
margin-block-start: calc(var(--header-shift, 0px) * -1); |
|
|
|
} |
|
|
|
|
|
|
|
.good_answer.is-exiting .stage-progress li.done + li:not(.done), |
|
|
|
.bad_answer.is-exiting .stage-progress li.done + li:not(.done) { |
|
|
|
animation: indicator-blink calc(var(--dur-base) * 2) steps(2, jump-none) infinite; |
|
|
|
} |
|
|
|
|
|
|
|
.good_answer .hero-container article, |
|
|
|
.bad_answer .hero-container article, |
|
|
|
.good_answer .hero-container video, |
|
|
|
.bad_answer .hero-container video { |
|
|
|
transition: opacity var(--dur-base) var(--ease-out); |
|
|
|
} |
|
|
|
|
|
|
|
.good_answer.is-exiting, |
|
|
|
.bad_answer.is-exiting { |
|
|
|
overflow: clip; |
|
|
|
} |
|
|
|
|
|
|
|
.good_answer.is-exiting > .answers-container, |
|
|
|
.bad_answer.is-exiting > .answers-container { |
|
|
|
transform: translateY(100%); |
|
|
|
margin-block-end: calc(var(--exit-shift, 0px) * -1); |
|
|
|
} |
|
|
|
|
|
|
|
.good_answer.is-exiting .hero-container article, |
|
|
|
.bad_answer.is-exiting .hero-container article { |
|
|
|
opacity: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.good_answer.is-exiting .hero-container video, |
|
|
|
.bad_answer.is-exiting .hero-container video { |
|
|
|
opacity: 1; |
|
|
|
} |
|
|
|
|
|
|
|
.good_answer.is-exiting .hero-container svg.ico-wave, |
|
|
|
.bad_answer.is-exiting .hero-container svg.ico-wave { |
|
|
|
animation: wave-slide-out var(--dur-fast) var(--ease-in) both; |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="stage-in"] .stage-header-container { |
|
|
|
view-transition-name: stage-header; |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="stage-in"] .hero-container { |
|
|
|
view-transition-name: hero; |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="stage-in"] .stage .answers-container { |
|
|
|
view-transition-name: answers; |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="stage-in"] .stage .hero-container svg.ico-wave { |
|
|
|
opacity: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.stage.is-settling .hero-container { |
|
|
|
overflow: clip; |
|
|
|
} |
|
|
|
|
|
|
|
.stage.is-settling .hero-container svg.ico-wave { |
|
|
|
animation: wave-slide-in var(--dur-fast) var(--ease-out) both; |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="stage-in"]::view-transition-group(stage-header), |
|
|
|
html[data-screen-transition="stage-in"]::view-transition-group(hero), |
|
|
|
html[data-screen-transition="stage-in"]::view-transition-old(stage-header), |
|
|
|
html[data-screen-transition="stage-in"]::view-transition-new(stage-header) { |
|
|
|
animation-duration: var(--dur-base); |
|
|
|
animation-timing-function: var(--ease-out); |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="stage-in"]::view-transition-old(hero) { |
|
|
|
height: 100%; |
|
|
|
object-fit: cover; |
|
|
|
object-position: top; |
|
|
|
animation: none; |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="stage-in"]::view-transition-new(hero) { |
|
|
|
animation: hero-rise var(--dur-base) var(--ease-out) both; |
|
|
|
} |
|
|
|
|
|
|
|
html[data-screen-transition="stage-in"]::view-transition-new(answers) { |
|
|
|
animation: answers-slide-up var(--dur-base) var(--ease-out) both; |
|
|
|
mix-blend-mode: normal; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.facts { |
|
|
|
@ -512,6 +657,10 @@ main, .modal-panel { |
|
|
|
img { |
|
|
|
display: none; |
|
|
|
} |
|
|
|
|
|
|
|
video { |
|
|
|
opacity: 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.hero-container article { |
|
|
|
@ -564,11 +713,29 @@ main, .modal-panel { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.hero-container, .carousel { |
|
|
|
.hero-container, .carousel, .carousel-frame { |
|
|
|
flex: 1 1 0; |
|
|
|
min-height: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.carousel-frame { |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
position: relative; |
|
|
|
overflow: clip; |
|
|
|
|
|
|
|
> svg.ico-wave { |
|
|
|
position: absolute; |
|
|
|
right: 0; |
|
|
|
bottom: var(--slide-copy-height, 0px); |
|
|
|
width: 190px; |
|
|
|
height: 96px; |
|
|
|
display: block; |
|
|
|
fill: var(--clr-bg, var(--clr-green)); |
|
|
|
pointer-events: none; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.hero-container { |
|
|
|
display: grid; |
|
|
|
grid-template: 1fr / 1fr; |
|
|
|
@ -590,7 +757,7 @@ main, .modal-panel { |
|
|
|
background-color: transparent; |
|
|
|
} |
|
|
|
|
|
|
|
&:has(video) { |
|
|
|
.intro &:has(video) { |
|
|
|
color: var(--clr-white); |
|
|
|
|
|
|
|
& h2 { |
|
|
|
@ -1119,7 +1286,8 @@ dialog::backdrop { |
|
|
|
--clr-action: var(--clr-green); |
|
|
|
|
|
|
|
.hero-container, |
|
|
|
.carousel { |
|
|
|
.carousel, |
|
|
|
.carousel-frame { |
|
|
|
flex: 0 0 auto; |
|
|
|
} |
|
|
|
|
|
|
|
@ -1127,7 +1295,7 @@ dialog::backdrop { |
|
|
|
height: min(30vh, 320px); |
|
|
|
} |
|
|
|
|
|
|
|
.hero-container svg.ico-wave { |
|
|
|
.carousel-frame > svg.ico-wave { |
|
|
|
transform: translateY(1px); |
|
|
|
} |
|
|
|
|
|
|
|
|