:root{
–ink:#141C26;
–ink-2:#1B2634;
–ink-3:#243244;
–rule:#33455C;
–chalk:#E7EDF4;
–dim:#8BA0B8;
–dimmer:#5C7086;
–f-display:”Bricolage Grotesque”,system-ui,sans-serif;
–f-body:”Inter Tight”,system-ui,sans-serif;
–f-mono:”JetBrains Mono”,ui-monospace,monospace;
–t-accent:#CA53A8;
–t-accent-ink:#FFF2FB;
–t-second:#2B62D6;
–t-surface:#FBF3F8;
–t-raised:#FFFFFF;
–t-sunk:#F3E3EF;
–t-ink:#2E1B2A;
–t-ink-soft:#7A6174;
–t-line:#E6CFE0;
–t-good:#2E7D5E;
–t-warn:#D2604A;
–t-radius:14px;
–t-radius-sm:9px;
–t-shadow:0 2px 0 #E0CEB2, 0 10px 24px -14px rgba(80,55,25,.5);
–t-texture:radial-gradient(circle at 1px 1px,#E4D4B8 1px,transparent 0);
}
*{box-sizing:border-box}
html,body{margin:0}
body{
background:var(–ink);
color:var(–chalk);
font-family:var(–f-body);
-webkit-font-smoothing:antialiased;
line-height:1.5;
}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}:focus-visible{outline:2px solid #6FA8FF;outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.wp-site-blocks {
background-color: var(–t-surface) !important;
}
.spec-body {
background: var(–t-raised);
border: 1px solid var(–t-line);
border-radius: var(–t-radius);
box-shadow: var(–t-shadow);
transition: background-color .5s,border-color .5s,border-radius .5s;
}
.item-found-modal-overlay {
position: fixed;
background: #1b1a178c;
backdrop-filter: blur(3px);
display: none;
inset: 0;
}
.item-found-modal-overlay-on{
display: flex !important;
}
@keyframes learnIn {
0% {
opacity: 0;
transform: translateY(8px);
}
100% {
opacity: 1;
transform: none;
}
}
@keyframes heartbeat {
0% {
transform: scale(1);
}
14% {
transform: scale(1.02);
}
28% {
transform: scale(1);
}
42% {
transform: scale(1.02);
}
70% {
transform: scale(1);
}
100% {
transform: scale(1);
}
}
@keyframes ballPush {
0% {
transform: translateX(0) rotate(0);
}
100% {
transform: translateX(calc(100cqw – 62px)) rotate(760deg);
}
}
@keyframes ballRoll {
0% {
transform: translateX(0) rotate(0);
}
100% {
transform: translateX(calc(100cqw – 62px)) rotate(760deg);
}
}
@keyframes forceFlash {
0% {
opacity: 0;
transform: translateX(-14px);
}
22% {
opacity: 1;
transform: translateX(0);
}
70% {
opacity: 1;
}
100% {
opacity: 1;
}
}
@keyframes ballTravel{
from{ transform: translateX(0) rotate(0) }
to { transform: translateX(var(–run-dist, 60%)) rotate(var(–run-rot, 720deg))}
}
.sensei-demos.is-running .sensei-ball {
animation: ballTravel var(–run-dur, 2.4s)
cubic-bezier(.16, .66, .32, 1) forwards;
}
.sensei-demos.is-done .sensei-demo {
border-color: var(–t-accent);
}
.sensei-trial-image[data-role=”before”] { opacity: 1; z-index: 1; }
.sensei-trial-image[data-role=”after”] { opacity: 0; z-index: 2; }
.sensei-trial-image[data-role=”after”]{
transform: translate3d(0,-3%,0) scale(1.05);
}
.sensei-trial.is-done .sensei-trial-image[data-role=”after”]{
opacity: 1;
transform: translate3d(0,0,0);
}
.sensei-trial-image[data-role=”before”]{ transition: transform 600ms ease, opacity 200ms ease; }
.sensei-trial.is-running .sensei-trial-image[data-role=”before”]{
transform: scale(1.06);
transition: transform 1800ms ease-in-out;
}
.sensei-trial.is-done .sensei-trial-image[data-role=”before”]{
opacity: 0;
transition: opacity 200ms ease 900ms;
}
form[data-element_type=”e-form”]
[data-element_type=”e-form-success-message”],
form[data-element_type=”e-form”]
[data-element_type=”e-form-error-message”] {
display: none;
}
/* Show success only after successful submission */
form[data-element_type=”e-form”].form-state-success
[data-element_type=”e-form-success-message”] {
display: block;
}
/* Show error only after failed submission */
form[data-element_type=”e-form”].form-state-error
[data-element_type=”e-form-error-message”] {
display: block;
}
sensei-mat[aria-pressed=”true”] .sensei-mat__label{
opacity: .55;
}
sensei-mat[aria-pressed=”true”] .sensei-mat__box {
background: var(–t-good);
border-color: var(–t-good);
color: #fff;
}
let firstname = „Smalsuolis”;
try {
firstname =
JSON.parse(sessionStorage.getItem(„formData”))?.firstname ?? „Smalsuoli”;
} catch {
firstname = „Smalsuolis”;
}
const stateMachine = {
childName: firstname
};
/* ==========================================================
CORE
This section should stay the same across lesson pages.
========================================================== */
const $ = (selector, root = document) => root.querySelector(selector);
const $$ = (selector, root = document) => root.querySelectorAll(selector);
const CLASSES = {
hidden: ‘sensei-item-hidden’,
modalOpen: ‘item-found-modal-overlay-on’,
disabled: ‘sensei-choice-disabled’
};
function show(element) {
if (!element) return;
element.classList.remove(CLASSES.hidden);
}
function hide(element) {
if (!element) return;
element.classList.add(CLASSES.hidden);
}
function setText(element, content) {
if (!element) return;
// Prefer textContent when lesson content does not contain HTML.
element.innerHTML = content;
}
function getAction(name) {
return $(`[data-act=”${name}”]`);
}
function onAction(name, callback) {
const element = getAction(name);
if (!element) return null;
element.addEventListener(‘click’, callback);
return element;
}
function openModal(selector) {
const modal = $(selector);
if (!modal) return;
modal.classList.add(CLASSES.modalOpen);
}
function closeModal(selector) {
const modal = $(selector);
if (!modal) return;
modal.classList.remove(CLASSES.modalOpen);
}
/* ==========================================================
QUESSION ANSWER
========================================================== */
const questionAnswerParagraph = getAction(‘question-answer-appear’);
const sameForceBlock = getAction(‘sensei-the-same-force’);
const savokaBlock = getAction(‘savoka-block’);
let lessonConfigQuestions = {
1: `Teisingai! Gravitacija traukia kaladėlę žemyn net tada, kai ji stovi. Tiesiog stalas neleidžia jai kristi.`,
2: `Ji nejuda, bet gravitacija vis tiek ją veikia. Stalas laiko kaladėlę ir neleidžia jai kristi.`,
3: `Krisdama kaladėlė tik parodo gravitacijos poveikį. Gravitacija ją traukė ir tada, kai ji dar stovėjo.`
}
const revealQuestionAnswerFn = (i) => () => {
setText(questionAnswerParagraph, lessonConfigQuestions[i]);
show(questionAnswerParagraph);
show(sameForceBlock);
show(savokaBlock);
};
onAction(‘question-op-one’, revealQuestionAnswerFn(1));
onAction(‘question-op-two’, revealQuestionAnswerFn(2));
onAction(‘question-op-three’, revealQuestionAnswerFn(3));
/* ==========================================================
QUESSION ANSWER TWO
========================================================== */
const questionAnswerParagraphTwo = getAction(‘question-answer-appear-two’);
let lessonConfigQuestionsTwo = {
1: `Gravitacija veikė ir tada, kai kaladėlė krito. Ji veikia visą laiką.`,
2: `Krentant gravitaciją lengviausia pastebėti, bet ji veikė ir tada, kai kaladėlė stovėjo.`,
3: `Būtent! Gravitacija veikė visą laiką. Pasikeitė tik tai, ar kaladėlę kas nors laikė.`
}
const revealQuestionAnswerTwoFn = (i) => () => {
setText(questionAnswerParagraphTwo, lessonConfigQuestionsTwo[i]);
show(questionAnswerParagraphTwo);
};
onAction(‘question-test-op-one’, revealQuestionAnswerTwoFn(1));
onAction(‘question-test-op-two’, revealQuestionAnswerTwoFn(2));
onAction(‘question-test-op-three’, revealQuestionAnswerTwoFn(3));