/*
 * THE 25TH HOUR — FULL MOON / ANOMALY 025
 * Isolated: all selectors are prefixed fm2 or scoped to body.fm2-active.
 * Unrelated layouts, login, save form, Gmail, other modes remain untouched.
 */
.fm2-sky,
.fm2-awakening,
.fm2-particles { pointer-events:none; }
.fm2-sky { position:fixed;inset:0;z-index:0;visibility:hidden;opacity:0;overflow:hidden;isolation:isolate;transition:opacity 1.45s ease,visibility 1.45s; }
body.fm2-active .fm2-sky {visibility:visible;opacity:1;}
body.fm2-active > .masthead,
body.fm2-active > main,
body.fm2-active > footer {position:relative;z-index:2;}
.fm2-night {position:absolute;inset:0;background:radial-gradient(ellipse at 76% 16%,rgba(56,131,163,.28),transparent 34%),radial-gradient(ellipse at 18% 73%,rgba(7,83,105,.35),transparent 49%),linear-gradient(180deg,rgba(1,5,17,.96),rgba(2,14,34,.94) 49%,rgba(0,8,20,.98));}
.fm2-aura{position:absolute;inset:-12%;background:radial-gradient(ellipse at 67% 28%,rgba(24,131,173,.19),transparent 37%);filter:blur(55px);animation:fm2-aurora 20s ease-in-out infinite alternate;}
.fm2-stars{position:absolute;inset:0;}
.fm2-star{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:#bde5ec;opacity:.37;box-shadow:0 0 9px 2px rgba(114,181,214,.33);animation:fm2-twinkle 5s ease-in-out var(--d) infinite alternate;}
.fm2-star:nth-child(9n){background:white;box-shadow:0 0 12px 2px rgba(190,236,251,.56);}
.fm2-forest{position:absolute;left:-7%;width:114%;bottom:-4%;background-repeat:repeat-x;background-position:center bottom;background-size:auto 100%;}
.fm2-forest-far{height:52%;opacity:.54;filter:blur(2px);background-image:url('fullmoon-pines.svg');transform:scaleX(1.13);}
.fm2-forest-near{height:39%;background-image:url('fullmoon-pines.svg');background-size:auto 160%;filter:brightness(.35) saturate(.55);opacity:.77;transform:scaleX(-1);}
.fm2-fog{position:absolute;bottom:-24%;left:-22%;width:155%;height:52%;filter:blur(37px);border-radius:50%;background:radial-gradient(ellipse at 23% 43%,rgba(82,168,189,.29),transparent 48%),radial-gradient(ellipse at 82% 53%,rgba(62,140,163,.23),transparent 37%);animation:fm2-fog 24s ease-in-out infinite alternate;}
.fm2-fog-b{bottom:-33%;opacity:.7;animation-direction:alternate-reverse;animation-duration:33s;}
.fm2-cloud{position:absolute;width:min(650px,65vw);height:180px;filter:blur(17px);opacity:.67;transform:translateX(-28vw);background:radial-gradient(ellipse at 22% 57%,rgba(40,78,106,.85),transparent 48%),radial-gradient(ellipse at 60% 46%,rgba(70,101,127,.80),transparent 49%),radial-gradient(ellipse at 90% 60%,rgba(26,61,88,.77),transparent 54%);animation:fm2-cloud-float 37s linear infinite alternate;}
.fm2-cloud-a{top:6%;left:-10%;}.fm2-cloud-b{top:20%;right:-17%;opacity:.5;animation-duration:48s;animation-direction:alternate-reverse;}
.fm2-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 47% 40%,transparent 24%,rgba(0,4,12,.68) 100%);}
.fm2-pair{position:absolute;display:flex;gap:12px;opacity:0;animation:fm2-forest-eyes 13s ease-in-out infinite;}
.fm2-pair i{display:block;width:5px;height:9px;background:#9ed6c3;border-radius:45%;box-shadow:0 0 12px 3px rgba(131,247,221,.38);}
.fm2-pair-a{left:8%;bottom:13%;animation-delay:5.9s}.fm2-pair-b{right:12%;bottom:28%;scale:.75;animation-delay:9.1s}

/* Cinematic opening: replayed on each NEW selection; never blocks clicks. */
.fm2-awakening{position:fixed;inset:0;z-index:20;overflow:hidden;visibility:hidden;opacity:0;isolation:isolate;}
.fm2-awakening.fm2-playing{visibility:visible;animation:fm2-ceremony 4.7s ease-out both;}
.fm2-veil{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 43%,rgba(2,24,44,.91),rgba(0,3,16,.96) 72%);}
.fm2-veil::after{content:'';position:absolute;inset:0;opacity:.24;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(165,227,240,.10) 4px,transparent 5px);}
.fm2-portal{position:absolute;left:50%;top:42%;width:clamp(270px,39vmin,430px);aspect-ratio:1;transform:translate(-50%,-50%);filter:drop-shadow(0 0 14px rgba(36,146,188,.27));}
.fm2-orbit{position:absolute;inset:-8%;border:1px solid rgba(105,219,229,.49);border-radius:50%;box-shadow:0 0 15px rgba(87,185,211,.13),inset 0 0 15px rgba(87,185,211,.1);animation:fm2-spin 22s linear infinite;}
.fm2-orbit::after{content:'';position:absolute;inset:12px;border:1px dashed rgba(128,211,224,.56);border-radius:50%;}
.fm2-orbit-outer{background:conic-gradient(from 10deg,transparent 0 13%,rgba(135,232,236,.26) 15%,transparent 17% 31%,rgba(135,232,236,.29) 33%,transparent 34% 57%,rgba(135,232,236,.29) 59%,transparent 61% 85%,rgba(135,232,236,.3) 87%,transparent 89%);}
.fm2-orbit-inner{inset:-24%;border-color:rgba(124,184,210,.29);border-style:dashed;animation-direction:reverse;animation-duration:32s;}
.fm2-orbit-inner::after{inset:18px;border-style:solid;opacity:.3;}
.fm2-portal-arc{position:absolute;left:-14%;width:128%;text-align:center;font:12px 'Courier New',monospace;letter-spacing:5px;color:#8bd6e9;opacity:.85;text-shadow:0 0 11px rgba(73,189,218,.65);white-space:nowrap;}
.fm2-portal-arc-a{top:-19%;}.fm2-portal-arc-b{bottom:-19%;}
.fm2-moon{position:relative;aspect-ratio:1;border-radius:50%;pointer-events:none;}
.fm2-disc{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain;filter:drop-shadow(0 0 13px rgba(149,238,245,.76)) drop-shadow(0 0 42px rgba(42,173,206,.47));user-select:none;}
.fm2-pupil{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transform:translate3d(var(--eye-x,0px),var(--eye-y,0px),0);filter:drop-shadow(0 0 1px rgba(4,20,26,.4));}
.fm2-lid{position:absolute;inset:2%;border-radius:50%;background:#092034;transform:scaleY(0);transform-origin:50% 49%;opacity:0;}
.fm2-blink .fm2-lid{animation:fm2-blink .28s ease-in-out 1;}
.fm2-portal-moon{width:70%;margin:15%;transform:scale(.7);opacity:0;animation:fm2-moon-awake 3.3s cubic-bezier(.16,.75,.25,1) .22s both;}
.fm2-portal-moon .fm2-pupil{animation:fm2-eye-open 1.5s ease-out .6s both;}
.fm2-omen-text{position:absolute;top:115%;left:-30%;width:160%;text-align:center;display:flex;flex-direction:column;gap:5px;color:#a1dce7;text-shadow:0 0 12px rgba(80,174,203,.55);animation:fm2-omen 3.4s ease-out .65s both;}
.fm2-omen-text span{font:11px 'Courier New',monospace;letter-spacing:4px;}
.fm2-omen-text strong{font:clamp(22px,5vmin,43px)/1.3 Georgia,serif;letter-spacing:7px;color:#e3ece5;font-weight:normal;}
.fm2-omen-text small{font:9px/1.6 'Courier New',monospace;letter-spacing:2.2px;}
.fm2-scanline{position:absolute;top:-30%;width:100%;height:1px;background:rgba(174,237,247,.65);box-shadow:0 0 27px 5px rgba(64,195,218,.32);animation:fm2-scan 2s ease-out .8s 1 both;}

/* Eye over the book: always at the top-right empty margin, never over controls. */
.fm2-anchor{position:absolute;z-index:3;top:21px;right:24px;width:clamp(103px,12vw,166px);aspect-ratio:1;pointer-events:none;opacity:0;transform:translateY(21px) scale(.77) rotate(-9deg);transition:opacity 1.2s ease,transform 1.2s cubic-bezier(.15,.86,.19,1);}
body.fm2-active .fm2-anchor{opacity:1;transform:translateY(0) scale(1) rotate(0);transition-delay:2.7s;}
.fm2-anchor-moon{width:100%;height:100%;}
.fm2-anchor::before{content:'';position:absolute;inset:-17%;border-radius:50%;border:1px dashed rgba(60,117,127,.42);box-shadow:0 0 32px rgba(79,154,172,.15);animation:fm2-spin 29s linear infinite;}
.fm2-anchor::after{content:'';position:absolute;inset:-7%;border:1px solid rgba(65,132,155,.19);border-radius:50%;}
.fm2-anchor-sparks{position:absolute;left:-13%;bottom:-15%;width:126%;text-align:center;font:12px Georgia,serif;letter-spacing:15px;color:#486b76;opacity:.65;}
.fm2-anchor-sparks span{font-size:19px;color:#4a8495;}

/* Ink sigil seeps through parchment but has minimal contrast behind legible text. */
.fm2-watermark{position:absolute;z-index:0;right:12%;bottom:12%;width:230px;aspect-ratio:1;opacity:0;transform:rotate(-30deg) scale(.62);transition:opacity 1.5s ease,transform 2.7s ease;pointer-events:none;}
body.fm2-active .fm2-watermark{opacity:.20;transform:rotate(-12deg) scale(1);transition-delay:2.15s;}
.fm2-ring{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border:5px double #346170;border-radius:50%;box-shadow:inset 0 0 0 12px rgba(50,97,112,.12),inset 0 0 0 15px rgba(39,81,101,.36);transform:rotate(-15deg);}
.fm2-ring::before{content:'';position:absolute;inset:18px;border:2px dashed #39717c;border-radius:50%;}
.fm2-rune{position:absolute;top:15%;font:15px Georgia,serif;letter-spacing:4px;white-space:nowrap;color:#235565;}
.fm2-ring b{font:42px Georgia,serif;letter-spacing:-3px;color:#225163;}
.fm2-ring small{font:8px 'Courier New',monospace;letter-spacing:2px;color:#225163;}
.fm2-message{position:relative;z-index:1;display:flex;align-items:center;gap:12px;overflow:hidden;max-height:0;opacity:0;transform:translateY(-9px);padding:0 12px;border-left:2px solid transparent;color:#315464;font:italic 14px/1.5 Georgia,serif;transition:max-height .7s ease,opacity .7s ease,margin .7s ease,padding .7s ease,transform .7s ease;}
body.fm2-active .fm2-message{max-height:85px;opacity:1;transform:translateY(0);margin:-9px 0 13px;padding:9px 12px;border-color:#477a8a;transition-delay:2.8s;}
.fm2-message-star{font:31px Georgia,serif;color:#4b8493;}
.fm2-message small{display:block;font:10px/1.7 'Courier New',monospace;letter-spacing:.2px;margin-top:2px;color:#5d6870;}
body.fm2-active #choose .leaf{background-color:#bdc9bd;transition:background-color 1.3s ease;}
body.fm2-active #choose .details-leaf > *:not(.fm2-watermark):not(.fm2-anchor){position:relative;z-index:1;}
body.fm2-active #choose .details-leaf{background-image:radial-gradient(circle at 86% 9%,rgba(121,199,218,.15),transparent 37%),radial-gradient(ellipse at 10% 0%,#aa7a3336,transparent 50%),radial-gradient(ellipse at 90% 100%,#b78a3c38,transparent 55%),repeating-linear-gradient(0deg,#72572404 0 1px,transparent 1px 4px);}
body.fm2-active .journal-shell{box-shadow:0 32px 96px rgba(0,0,0,.94),4px 5px 0 #ac9874,0 0 38px rgba(54,157,189,.3);transition:box-shadow 1.4s ease;}
body.fm2-active .journal-shell::before{content:'';position:absolute;inset:-2px;pointer-events:none;z-index:3;border:2px solid rgba(79,155,177,.25);box-shadow:inset 0 0 20px rgba(31,121,163,.14);animation:fm2-border-pulse 6s ease-in-out infinite alternate;}
body.fm2-active #choose .time-option input[value="full_moon"]:checked+span{background:#18374b;border-color:#7cb8be;color:#e1f7ee;box-shadow:0 0 0 1px rgba(73,159,183,.3),0 0 19px rgba(42,147,179,.35);transition:background .4s ease,box-shadow .4s ease;}
body.fm2-active .fireflies i{background:#aae8eb;box-shadow:0 0 15px 5px rgba(101,210,223,.36);}

/* Leaf drift and one spectacular bat flock; after the burst only ambient effects persist. */
.fm2-particles{position:fixed;inset:0;z-index:8;overflow:hidden;visibility:hidden;}
body.fm2-active .fm2-particles{visibility:visible;}
.fm2-leaf{position:absolute;left:0;top:var(--top);width:21px;height:37px;opacity:.20;transform-origin:center;animation:fm2-leaf-drift var(--dur) linear var(--delay) infinite;filter:drop-shadow(0 2px 2px rgba(0,0,0,.3));}
.fm2-leaf svg{width:100%;height:100%;fill:#243d3c;}
.fm2-leaf:nth-child(4n) svg{fill:#927a4c;}
.fm2-bat{position:absolute;top:var(--top);left:0;display:block;width:var(--size);aspect-ratio:116/57;opacity:0;animation:fm2-bat-flight var(--dur) cubic-bezier(.3,.12,.77,.92) var(--delay) 1 forwards;}
.fm2-bat svg{width:100%;height:100%;fill:#020912;filter:drop-shadow(0 0 3px rgba(13,28,41,.7));animation:fm2-flap .2s ease-in-out infinite alternate;}

@keyframes fm2-aurora{to{transform:translateX(8%) scale(1.08);opacity:.5}}
@keyframes fm2-twinkle{0%{opacity:.1;transform:scale(.7)}100%{opacity:.67;transform:scale(1.3)}}
@keyframes fm2-fog{to{transform:translateX(12%) translateY(-8%);opacity:.63}}
@keyframes fm2-cloud-float{from{transform:translateX(-18vw)}to{transform:translateX(31vw)}}
@keyframes fm2-forest-eyes{0%,43%,51%,100%{opacity:0}46%,49%{opacity:.86}}
@keyframes fm2-spin{to{transform:rotate(360deg)}}
@keyframes fm2-ceremony{0%{opacity:0}9%{opacity:1}66%{opacity:1}100%{opacity:0;visibility:hidden}}
@keyframes fm2-moon-awake{0%{opacity:0;transform:scale(.4) rotate(-8deg)}26%{opacity:1;transform:scale(1.06)}40%{transform:scale(.98)}100%{opacity:1;transform:scale(1)}}
@keyframes fm2-eye-open{0%,39%{clip-path:inset(49% 0 49% 0)}58%,100%{clip-path:inset(0 0 0 0)}}
@keyframes fm2-omen{0%,24%{opacity:0;transform:translateY(16px)}48%,84%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-8px)}}
@keyframes fm2-scan{0%{opacity:0;top:-10%}10%{opacity:.4}98%{opacity:0;top:110%}100%{opacity:0}}
@keyframes fm2-blink{0%,100%{opacity:0;transform:scaleY(0)}35%,54%{opacity:.9;transform:scaleY(1)}68%{opacity:.2;transform:scaleY(.12)}}
@keyframes fm2-border-pulse{to{opacity:.38;box-shadow:inset 0 0 15px rgba(47,121,167,.08)}}
@keyframes fm2-leaf-drift{0%{opacity:0;transform:translate3d(-10vw,-8vh,0) rotate(var(--tilt)) scale(var(--scale))}10%{opacity:.17}86%{opacity:.20}100%{opacity:0;transform:translate3d(110vw,30vh,0) rotate(calc(var(--tilt) + 670deg)) scale(var(--scale))}}
@keyframes fm2-bat-flight{0%{opacity:0;transform:translate3d(-18vw,15px,0) scale(.6) rotate(-8deg)}12%{opacity:.9}75%{opacity:.8}100%{opacity:0;transform:translate3d(118vw,var(--drift),0) scale(1.05) rotate(10deg)}}
@keyframes fm2-flap{from{transform:scaleY(.61)}to{transform:scaleY(1.13)}}

@media(max-width:900px){
  .fm2-anchor{right:17px;top:19px;width:104px;}
  .fm2-watermark{width:175px;bottom:17%;right:5%;}
}
@media(max-width:700px){
  .fm2-anchor{top:17px;right:12px;width:91px;}
  .fm2-anchor::before{inset:-10%;}
  .fm2-anchor-sparks{font-size:10px;letter-spacing:9px;}
  .fm2-message{font-size:12px;}
  .fm2-message small{font-size:9px;}
  .fm2-watermark{width:155px;bottom:12%;right:6%;}
  .fm2-portal{width:min(59vw,280px);top:40%;}
  .fm2-portal-arc{font-size:9px;letter-spacing:2px;}
  .fm2-omen-text strong{font-size:21px;letter-spacing:2px;}
  .fm2-omen-text small{font-size:7px;letter-spacing:1px;}
  .fm2-forest-far{height:43%;}
  .fm2-forest-near{height:31%;}
  .fm2-leaf{width:14px;height:27px;opacity:.26;}
}
@media(max-width:370px){.fm2-anchor{width:74px;top:13px;right:8px;}.fm2-anchor-sparks{display:none}}
@media(prefers-reduced-motion:reduce){
  .fm2-sky,.fm2-anchor,.fm2-message,.fm2-watermark{transition:none!important;}
  .fm2-awakening,.fm2-particles{display:none!important;}
  .fm2-sky *,.fm2-anchor *,body.fm2-active .journal-shell::before{animation:none!important;}
  body.fm2-active .fm2-anchor{transition-delay:0s!important;}
  body.fm2-active .fm2-message{transition-delay:0s!important;}
  body.fm2-active .fm2-watermark{transition-delay:0s!important;}
}

/* ==============================================================
   ANOMALY 025 / CHAPTER THREE: THE FOREST IS LISTENING
   Everything here is additive; only fm-prefixed nodes are affected.
   ============================================================== */

/* The exact moon from the reference becomes a character, not a sticker. */
.fm3-moon-trigger{
  position:relative;display:block;width:100%;height:100%;padding:0;margin:0;
  border:0;border-radius:50%;background:transparent;color:inherit;
  cursor:pointer;pointer-events:none;
  -webkit-tap-highlight-color:transparent;
}
body.fm2-active.fm3-settled .fm3-moon-trigger { pointer-events:auto; }
.fm3-moon-trigger:focus-visible {outline:3px solid #84dce3;outline-offset:8px;}
.fm3-moon-trigger:hover .fm2-disc {filter:drop-shadow(0 0 21px rgba(174,244,246,.9)) drop-shadow(0 0 44px rgba(61,192,220,.65));}
.fm3-moon-trigger .fm2-disc {transition:filter .4s ease;}
.fm2-anchor.fm3-startled .fm3-moon-trigger {animation:fm3-recoil .7s cubic-bezier(.16,.85,.24,1) both;}
.fm3-moon-reply{
  position:absolute;right:70%;top:70%;width:max-content;max-width:185px;
  padding:8px 11px;border:1px solid rgba(52,101,120,.65);border-radius:3px;
  background:#e3e3cd;color:#315363;box-shadow:2px 4px 14px rgba(0,0,0,.18);
  font:italic 14px/1.35 Georgia,serif;
  opacity:0;visibility:hidden;pointer-events:none;
  transform:rotate(-5deg) translateY(8px);
  transition:opacity .2s ease,transform .25s ease,visibility .2s;
}
.fm2-anchor.fm3-speaking .fm3-moon-reply {opacity:1;visibility:visible;transform:rotate(-5deg) translateY(0);}

/* THE SECOND PUNCH: a focused iris, a double wave, a reactive forest. */
.fm3-shock-ring,.fm3-second-ring{
  position:absolute;inset:16%;border:2px solid rgba(170,244,245,.9);
  border-radius:50%;opacity:0;pointer-events:none;
  box-shadow:0 0 35px 12px rgba(101,213,224,.19),inset 0 0 19px rgba(101,213,224,.21);
}
.fm2-awakening.fm2-playing .fm3-shock-ring {animation:fm3-shock-wave 1.15s cubic-bezier(.12,.52,.16,1) 2.25s both;}
.fm2-awakening.fm2-playing .fm3-second-ring {animation:fm3-shock-wave 1.25s cubic-bezier(.12,.52,.16,1) 2.47s both;}
.fm2-awakening.fm3-lock .fm2-portal-moon .fm2-pupil path {
  transform-box:fill-box;transform-origin:center;
  animation:fm3-focus .65s ease-out .05s both;
}
body.fm3-shock #choose .journal-shell {animation:fm3-journal-jolt .48s ease-out both;}
.fm3-gust {
  position:absolute;inset:-10%;opacity:0;transform:translateX(-24%);
  background:repeating-linear-gradient(150deg,transparent 0 19px,rgba(115,198,212,.12) 20px 21px,transparent 23px 66px);
  filter:blur(13px);pointer-events:none;
}
.fm2-sky.fm3-alert .fm3-gust {animation:fm3-gust 1.06s ease-out both;}
.fm2-sky.fm3-alert .fm2-pair {animation:fm3-eyes-answer 1.05s ease-in-out both;}
.fm2-sky.fm3-alert .fm2-forest-near {animation:fm3-trees-answer .8s ease-out both;}
.fm2-sky.fm3-alert .fm2-fog-a {animation:fm3-fog-answer 1.1s ease-out both;}

/* Creature in the far edge of the forest: seen once, only briefly. */
.fm3-watcher{
  position:absolute;bottom:6%;left:2.6%;width:clamp(70px,10vw,142px);
  aspect-ratio:160/190;opacity:0;visibility:hidden;
  transform:translateY(32px) scale(.82);filter:drop-shadow(0 0 7px #000);
  transition:opacity .5s ease,transform 1.2s ease,visibility .5s;
}
.fm3-watcher svg{display:block;width:100%;height:100%;}
.fm3-watcher svg ellipse{filter:drop-shadow(0 0 8px rgba(130,255,215,.85));}
.fm2-sky.fm3-watcher-visible .fm3-watcher {opacity:.86;visibility:visible;transform:translateY(0) scale(1);}

/* The message is written into the journal, not merely displayed. */
body.fm2-active .fm2-message {
  max-height:156px;opacity:1;transform:translateY(0);
  margin:-8px 0 4px;padding:9px 11px;
  border-color:#477a8a;transition-delay:3.5s;
  background:linear-gradient(92deg,rgba(43,91,112,.11),transparent 92%);
}
.fm2-message .fm2-message-star {align-self:flex-start;font-size:27px;line-height:1.2;}
.fm3-ink-text{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;}
.fm3-note-label{font:8px/1.4 'Courier New',monospace;letter-spacing:1.4px;color:#627d83;white-space:normal;}
.fm3-note-first{
  display:block;font:italic 19px/1.35 Georgia,serif;font-weight:normal;color:#7e302e;
  clip-path:inset(0 100% 0 0);
}
.fm3-note-second{
  display:block;font:italic 12px/1.45 Georgia,serif;color:#394e55;
  clip-path:inset(0 100% 0 0);
}
.fm3-note-bottom{display:block;font:9px/1.5 'Courier New',monospace;letter-spacing:.5px;color:#617478;opacity:0;}
body.fm2-active .fm3-note-first{animation:fm3-ink-reveal .95s steps(18,end) 4.7s both;}
body.fm2-active .fm3-note-second{animation:fm3-ink-reveal 1.3s steps(35,end) 5.68s both;}
body.fm2-active .fm3-note-bottom{animation:fm3-bottom-note .65s ease 6.8s both;}

/* A cipher you can discover by hovering, focusing, or touching. */
.fm3-secret{display:flex;align-items:flex-start;flex-wrap:wrap;gap:5px 12px;min-height:0;max-height:0;opacity:0;overflow:hidden;transition:max-height .45s ease,opacity .45s ease,margin .45s ease;}
body.fm2-active .fm3-secret {max-height:90px;opacity:1;margin:0 0 8px;transition-delay:6.1s;}
.fm3-cipher{
  font:10px/1.5 'Courier New',monospace;color:#4a7e8b;letter-spacing:1.4px;
  border:0;border-bottom:1px dashed rgba(67,115,128,.52);background:none;padding:2px 4px;
  cursor:help;text-align:left;
}
.fm3-cipher span{font-size:13px;}
.fm3-cipher:hover,.fm3-cipher:focus-visible {color:#8e3533;}
.fm3-decoded {
  display:inline;max-height:0;max-width:0;opacity:0;overflow:hidden;
  font:italic 11px/1.5 Georgia,serif;color:#643b40;
  transition:max-width .45s ease,max-height .45s ease,opacity .45s ease;
}
.fm3-secret.fm3-open .fm3-decoded,
.fm3-cipher:hover + .fm3-decoded,
.fm3-cipher:focus-visible + .fm3-decoded {
  max-height:75px;max-width:330px;opacity:1;
}

@keyframes fm3-recoil {
  0%,100% {transform:scale(1) rotate(0)}
  24% {transform:scale(.88) rotate(-9deg)}
  51% {transform:scale(1.06) rotate(4deg)}
  73% {transform:scale(.99) rotate(-2deg)}
}
@keyframes fm3-focus{
  0%{transform:scaleX(1.25) scaleY(1.04)}
  38%{transform:scaleX(.54) scaleY(.9)}
  100%{transform:scaleX(.84) scaleY(1)}
}
@keyframes fm3-shock-wave {
  0%{opacity:0;transform:scale(.72);border-width:4px}
  18%{opacity:.8}
  100%{opacity:0;transform:scale(3.2);border-width:1px}
}
@keyframes fm3-journal-jolt {
  0%,100%{transform:translate3d(0,0,0)}
  23%{transform:translate3d(-2px,1px,0)}
  55%{transform:translate3d(2px,-1px,0)}
  78%{transform:translate3d(-1px,0,0)}
}
@keyframes fm3-gust{0%{opacity:0;transform:translateX(-25%)}32%{opacity:.8}100%{opacity:0;transform:translateX(25%)}}
@keyframes fm3-eyes-answer {0%,8%,90%,100%{opacity:0}34%,72%{opacity:.92}}
@keyframes fm3-trees-answer {0%,100%{transform:scaleX(-1)}38%{transform:scaleX(-1) skewX(-1.4deg)}72%{transform:scaleX(-1) skewX(1deg)}}
@keyframes fm3-fog-answer{0%,100%{transform:translateX(0);opacity:1}55%{transform:translateX(8%);opacity:.44}}
@keyframes fm3-ink-reveal {0%{clip-path:inset(0 100% 0 0)}100%{clip-path:inset(0 0 0 0)}}
@keyframes fm3-bottom-note {from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:700px){
  .fm3-moon-reply{right:0;top:103%;font-size:11px;padding:5px 7px;}
  .fm3-watcher{left:1.5%;bottom:5%;width:69px;}
  body.fm2-active .fm2-message{max-height:190px;margin:0 0 4px;}
  .fm3-note-first{font-size:16px;}
  .fm3-note-second{font-size:11px;}
  .fm3-note-label{font-size:7px;letter-spacing:.7px;}
  .fm3-note-bottom{font-size:8px;}
  body.fm2-active .fm3-secret{max-height:110px;}
  .fm3-decoded{font-size:10px;}
}
@media(prefers-reduced-motion:reduce){
  .fm3-shock-ring,.fm3-second-ring,.fm3-gust,.fm3-watcher {display:none!important;}
  .fm3-moon-trigger,.fm3-moon-reply,.fm3-secret,.fm3-decoded {animation:none!important;transition:none!important;}
  body.fm2-active .fm3-note-first,body.fm2-active .fm3-note-second{animation:none!important;clip-path:none!important;}
  body.fm2-active .fm3-note-bottom{animation:none!important;opacity:1!important;}
}

/* Keep decorative flyers from producing a sideways scrollbar on small phones. */
.fm2-particles,.fm2-sky{contain:paint;max-width:100vw;}
body.fm2-active{overflow-x:clip;}
.fm2-pair-c{left:25%;bottom:10%;scale:.65;animation-delay:3.1s;}
.fm3-shadow-pass{position:absolute;z-index:3;top:26%;left:12%;width:27%;aspect-ratio:116/57;opacity:0;pointer-events:none;}
.fm3-shadow-pass svg{display:block;width:100%;height:100%;fill:#041421;filter:blur(.6px);}
.fm2-awakening.fm2-playing .fm3-shadow-pass{animation:fm3-silhouette-cross 1.1s ease-in-out 2.9s both;}
@keyframes fm3-silhouette-cross{
  0%{opacity:0;transform:translate3d(-90px,10px,0) rotate(-8deg) scale(.55)}
  25%,68%{opacity:.82}
  100%{opacity:0;transform:translate3d(170px,-36px,0) rotate(8deg) scale(1.1)}
}
@media(prefers-reduced-motion:reduce){.fm3-shadow-pass{display:none!important}}
/* Root-level clipping prevents off-screen particles from widening mobile pages. */
html:has(body.fm2-active){overflow-x:hidden;}
