domma-js 0.51.8 → 0.51.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Minimal CSS Bundle v0.51.8
2
+ * Domma Minimal CSS Bundle v0.51.9
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-10T22:52:26.709Z
5
+ * Built: 2026-10-11T10:11:06.013Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -11,11 +11,11 @@
11
11
  ============================================ */
12
12
 
13
13
  /*!
14
- * Domma Core CSS v0.51.8
14
+ * Domma Core CSS v0.51.9
15
15
  * Dynamic Object Manipulation & Modeling API
16
16
  * (c) 2026 Darryl Waterhouse & DCBW-IT
17
- * Built: 2026-10-10T22:52:26.555Z
18
- * Commit: 2c578d6
17
+ * Built: 2026-10-11T10:11:05.843Z
18
+ * Commit: c708495
19
19
  */
20
20
 
21
21
  /**
@@ -3499,126 +3499,96 @@ code, pre {
3499
3499
  /* Scribe Effect Keyframes */
3500
3500
 
3501
3501
  @keyframes dm-scribe-cursor-blink {
3502
- 0%, 100% {
3503
- opacity: 1;
3504
- }
3505
- 50% {
3506
- opacity: 0;
3507
- }
3502
+ 0%, 45%, 100% { opacity: 1; }
3503
+ 55%, 90% { opacity: 0; }
3508
3504
  }
3509
3505
 
3510
3506
  @keyframes dm-scribe-fade {
3511
- from {
3512
- opacity: 0;
3513
- transform: translateZ(0);
3514
- }
3515
- to {
3516
- opacity: 1;
3517
- transform: translateZ(0);
3518
- }
3507
+ from { opacity: 0; }
3508
+ to { opacity: 1; }
3519
3509
  }
3520
3510
 
3521
3511
  @keyframes dm-scribe-bounce {
3522
- 0% {
3523
- opacity: 0;
3524
- transform: translateY(-8px) translateZ(0);
3525
- }
3526
- 60% {
3527
- opacity: 1;
3528
- transform: translateY(2px) translateZ(0);
3529
- }
3530
- 80% {
3531
- transform: translateY(-1px) translateZ(0);
3532
- }
3533
- 100% {
3534
- opacity: 1;
3535
- transform: translateY(0) translateZ(0);
3536
- }
3512
+ 0% { opacity: 0; transform: translateY(-0.3em); }
3513
+ 60% { opacity: 1; transform: translateY(0.06em); }
3514
+ 80% { transform: translateY(-0.025em); }
3515
+ 100% { opacity: 1; transform: translateY(0); }
3537
3516
  }
3538
3517
 
3539
3518
  @keyframes dm-scribe-glow {
3540
- 0% {
3541
- opacity: 0;
3542
- transform: scale(0.8) translateZ(0);
3543
- filter: brightness(1);
3544
- }
3545
- 50% {
3546
- opacity: 1;
3547
- transform: scale(1.1) translateZ(0);
3548
- filter: brightness(1.5);
3549
- }
3550
- 100% {
3551
- opacity: 1;
3552
- transform: scale(1) translateZ(0);
3553
- filter: brightness(1);
3554
- }
3519
+ 0% { opacity: 0; text-shadow: 0 0 0.6em currentColor; }
3520
+ 40% { opacity: 1; text-shadow: 0 0 0.35em currentColor; }
3521
+ 100% { opacity: 1; text-shadow: 0 0 0 transparent; }
3555
3522
  }
3556
3523
 
3557
- /* Scribe Classes */
3558
-
3559
3524
  .dm-scribe-cursor {
3560
- display: inline;
3525
+ display: inline-block;
3561
3526
  white-space: pre;
3562
- font-weight: 600;
3563
- margin-left: 2px;
3564
- vertical-align: 0.08em;
3565
- animation: dm-scribe-cursor-blink 1s ease-in-out infinite;
3527
+ margin-left: 0.04em;
3528
+ vertical-align: baseline;
3529
+ animation: dm-scribe-cursor-blink 1.1s ease-in-out infinite;
3566
3530
  }
3567
3531
 
3568
- .dm-scribe-cursor.dm-scribe-cursor-no-blink {
3532
+ .dm-scribe-cursor.dm-scribe-cursor-no-blink,
3533
+ .dm-scribe-cursor.dm-scribe-cursor-active {
3569
3534
  animation: none;
3570
3535
  opacity: 1;
3571
3536
  }
3572
3537
 
3573
- /* Cursor Types */
3574
- .dm-scribe-cursor-caret {
3575
- /* Default - thin vertical line */
3576
- }
3577
-
3578
3538
  .dm-scribe-cursor-block {
3579
- padding: 0;
3580
3539
  background: currentColor;
3581
- color: var(--dm-background, #fff);
3582
- opacity: 0.8;
3583
3540
  font-size: 0.7em;
3584
- line-height: 0.9;
3585
- }
3586
-
3587
- .dm-scribe-cursor-block.dm-scribe-cursor-no-blink {
3588
- opacity: 0.6;
3541
+ line-height: 1;
3589
3542
  }
3590
3543
 
3591
3544
  .dm-scribe-cursor-underline {
3592
- border-bottom: 2px solid currentColor;
3593
- padding: 0;
3545
+ border-bottom: 0.08em solid currentColor;
3594
3546
  min-width: 0.5em;
3547
+ line-height: 1;
3595
3548
  }
3596
3549
 
3597
- /* Unit base styling (shared across modes) */
3550
+ /* Transformable units inherit the surrounding typography. Sentences stay
3551
+ inline so long passages can wrap within narrow containers. */
3598
3552
  .dm-scribe-char,
3599
- .dm-scribe-word,
3553
+ .dm-scribe-word {
3554
+ display: inline-block;
3555
+ white-space: pre-wrap;
3556
+ vertical-align: baseline;
3557
+ }
3558
+
3600
3559
  .dm-scribe-sentence {
3601
3560
  display: inline;
3602
- white-space: pre;
3603
- font-weight: 600;
3604
- will-change: transform, opacity;
3605
- backface-visibility: hidden;
3606
- -webkit-font-smoothing: antialiased;
3607
- -moz-osx-font-smoothing: grayscale;
3608
- transform: translateZ(0);
3561
+ white-space: pre-wrap;
3562
+ }
3563
+
3564
+ .dm-scribe-space {
3565
+ display: inline;
3566
+ }
3567
+
3568
+ .dm-scribe-sentence.dm-scribe-transform-unit {
3569
+ display: inline-block;
3570
+ max-width: 100%;
3609
3571
  }
3610
3572
 
3611
- /* Effect classes (shared across modes) */
3612
3573
  .dm-scribe-fade {
3613
- animation: dm-scribe-fade 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
3574
+ animation: dm-scribe-fade 0.22s ease-out both;
3614
3575
  }
3615
3576
 
3616
3577
  .dm-scribe-bounce {
3617
- animation: dm-scribe-bounce 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
3578
+ animation: dm-scribe-bounce 0.38s ease-out both;
3618
3579
  }
3619
3580
 
3620
3581
  .dm-scribe-glow {
3621
- animation: dm-scribe-glow 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
3582
+ animation: dm-scribe-glow 0.5s ease-out both;
3583
+ }
3584
+
3585
+ @media (prefers-reduced-motion: reduce) {
3586
+ .dm-scribe-cursor,
3587
+ .dm-scribe-fade,
3588
+ .dm-scribe-bounce,
3589
+ .dm-scribe-glow {
3590
+ animation: none;
3591
+ }
3622
3592
  }
3623
3593
 
3624
3594
  /* =================================================================
@@ -4976,11 +4946,11 @@ body.dm-cloaked.dm-ready {
4976
4946
  ============================================ */
4977
4947
 
4978
4948
  /*!
4979
- * Domma Grid CSS v0.51.8
4949
+ * Domma Grid CSS v0.51.9
4980
4950
  * Dynamic Object Manipulation & Modeling API
4981
4951
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4982
- * Built: 2026-10-10T22:52:26.559Z
4983
- * Commit: 2c578d6
4952
+ * Built: 2026-10-11T10:11:05.847Z
4953
+ * Commit: c708495
4984
4954
  */
4985
4955
 
4986
4956
  /**
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Flags v0.51.8
2
+ * Domma Flags v0.51.9
3
3
  * Nation flags as inline SVG (opt-in module)
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-10T22:52:11.469Z
6
- * Commit: 2c578d6
5
+ * Built: 2026-10-11T10:10:49.611Z
6
+ * Commit: c708495
7
7
  *
8
8
  * Requires: domma.min.js
9
9
  */
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Flags v0.51.8
2
+ * Domma Flags v0.51.9
3
3
  * Nation flags as inline SVG (opt-in module)
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-10T22:52:11.469Z
6
- * Commit: 2c578d6
5
+ * Built: 2026-10-11T10:10:49.611Z
6
+ * Commit: c708495
7
7
  *
8
8
  * Requires: domma.min.js
9
9
  */
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Domma Syntax Highlighter v0.51.8
2
+ * Domma Syntax Highlighter v0.51.9
3
3
  * Lightweight code syntax highlighting for JavaScript, HTML, and CSS
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-10T22:52:11.466Z
6
- * Commit: 2c578d6
5
+ * Built: 2026-10-11T10:10:49.607Z
6
+ * Commit: c708495
7
7
  */
8
8
  !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).DommaSyntax={})}(this,function(t){"use strict";const e={javascript:[{type:"comment",pattern:/\/\*[\s\S]*?\*\//g},{type:"comment",pattern:/\/\/.*/g},{type:"template-string",pattern:/`(?:\\.|[^`\\])*`/g},{type:"string",pattern:/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g},{type:"keyword",pattern:/\b(const|let|var|function|return|if|else|for|while|do|break|continue|switch|case|default|try|catch|finally|throw|async|await|class|extends|static|new|this|super|import|export|from|as|default|yield|typeof|instanceof|in|of|delete|void)\b/g},{type:"boolean",pattern:/\b(true|false|null|undefined|NaN|Infinity)\b/g},{type:"number",pattern:/\b\d+\.?\d*([eE][+-]?\d+)?\b/g},{type:"function",pattern:/\b([a-zA-Z_$][\w$]*)\s*(?=\()/g},{type:"class-name",pattern:/\b[A-Z][\w$]*\b/g},{type:"operator",pattern:/[+\-*/%=<>!&|^~?:]+|===|!==|==|!=|<=|>=|&&|\|\||<<|>>|>>>/g},{type:"punctuation",pattern:/[{}[\]();,.]/g}],html:[{type:"comment",pattern:/<!--[\s\S]*?-->/g},{type:"doctype",pattern:/<!DOCTYPE[^>]*>/gi},{type:"tag-open",pattern:/<\/?[a-zA-Z][\w-]*/g},{type:"tag-close",pattern:/\/?>/g},{type:"attr-name",pattern:/\s+[a-zA-Z:@][\w:.-]*(?=\s*=)/g},{type:"attr-value",pattern:/=\s*"[^"]*"|=\s*'[^']*'/g},{type:"entity",pattern:/&[#\w]+;/g}],css:[{type:"comment",pattern:/\/\*[\s\S]*?\*\//g},{type:"at-rule",pattern:/@[\w-]+/g},{type:"selector",pattern:/[.#]?[a-zA-Z][\w-]*(?=\s*[{,])/g},{type:"property",pattern:/\b[\w-]+(?=\s*:)/g},{type:"string",pattern:/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/g},{type:"function",pattern:/\b[\w-]+(?=\()/g},{type:"important",pattern:/!important\b/g},{type:"number",pattern:/\b\d+\.?\d*(px|em|rem|%|vh|vw|pt|cm|mm|in|pc|ex|ch|vmin|vmax|fr)?\b/g},{type:"color",pattern:/#[\da-fA-F]{3,8}\b/g},{type:"punctuation",pattern:/[{}:;,()]/g}]};function n(t){const e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};return t.replace(/[&<>"']/g,t=>e[t])}class a{constructor(){this.config={autoDetect:!0,preserveOriginal:!0,selector:".code-block",showLanguageBadge:!1,languagePrefix:"language-"}}highlight(t,a=null){const r="string"==typeof t?document.querySelector(t):t;if(!r||r.hasAttribute("data-syntax-highlighted"))return!1;if(!a&&this.config.autoDetect){const t=Array.from(r.classList).find(t=>t.startsWith(this.config.languagePrefix));t&&(a=t.substring(this.config.languagePrefix.length))}if(!a||!e[a])return!1;const o=r.textContent||"";this.config.preserveOriginal&&r.setAttribute("data-original-code",o);const i=function(t,a){const r=e[a];if(!r)return n(t);const o=[];for(const{type:e,pattern:n}of r){if("html"===a&&"entity"===e)continue;let r;for(n.lastIndex=0;null!==(r=n.exec(t));)o.push({start:r.index,end:r.index+r[0].length,text:r[0],type:e})}o.sort((t,e)=>t.start-e.start);const i=[];let s=0;for(const t of o)t.start>=s&&(i.push(t),s=t.end);let c="",p=0;for(const e of i)e.start>p&&(c+=n(t.substring(p,e.start))),c+=`<span class="syntax-${e.type}">${n(e.text)}</span>`,p=e.end;return p<t.length&&(c+=n(t.substring(p))),c}(o,a);return r.innerHTML=i,r.setAttribute("data-syntax-highlighted","true"),r.setAttribute("data-language",a),this.config.showLanguageBadge&&this.addLanguageBadge(r,a),!0}scan(t={}){const e=t.selector||this.config.selector,n=document.querySelectorAll(e);let a=0;return n.forEach(e=>{this.highlight(e,t.language||null)&&(this.addCopyButton(e),a++)}),a}register(t,n){t&&Array.isArray(n)?e[t]=n:console.error("SyntaxHighlighter: Invalid language registration")}configure(t){return t?(Object.assign(this.config,t),this.config):{...this.config}}addLanguageBadge(t,e){if(t.querySelector(".syntax-language-badge"))return;const n=document.createElement("div");n.className="syntax-language-badge",n.textContent=e.toUpperCase(),t.style.position="relative",t.insertBefore(n,t.firstChild)}getLanguages(){return Object.keys(e)}isLanguageSupported(t){return t in e}addCopyButton(t){if(t.parentElement&&t.parentElement.classList.contains("code-block-wrapper"))return;const e=document.createElement("div");e.className="code-block-wrapper";const n=document.createElement("button");n.className="code-block-copy",n.setAttribute("aria-label","Copy code to clipboard"),n.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>',n.addEventListener("click",async()=>{const e=t.getAttribute("data-original-code")||t.textContent;try{if(navigator.clipboard&&navigator.clipboard.writeText)await navigator.clipboard.writeText(e);else{const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)}n.classList.add("copied"),n.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg>',setTimeout(()=>{n.classList.remove("copied"),n.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>'},2e3)}catch(t){console.error("Failed to copy code:",t)}}),t.parentNode.insertBefore(e,t),e.appendChild(t),e.appendChild(n)}}const r=new a;"undefined"!=typeof document&&("loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{r.scan()}):setTimeout(()=>r.scan(),0)),"undefined"!=typeof window&&(window.Domma&&(window.Domma.syntax=r),window.DommaSyntax=r),t.LANGUAGES=e,t.SyntaxHighlighter=a,t.default=r,t.syntax=r,Object.defineProperty(t,"__esModule",{value:!0})});
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Core CSS v0.51.8
2
+ * Domma Core CSS v0.51.9
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-10-10T22:52:26.555Z
6
- * Commit: 2c578d6
5
+ * Built: 2026-10-11T10:11:05.843Z
6
+ * Commit: c708495
7
7
  */
8
8
 
9
9
  /**
@@ -3487,126 +3487,96 @@ code, pre {
3487
3487
  /* Scribe Effect Keyframes */
3488
3488
 
3489
3489
  @keyframes dm-scribe-cursor-blink {
3490
- 0%, 100% {
3491
- opacity: 1;
3492
- }
3493
- 50% {
3494
- opacity: 0;
3495
- }
3490
+ 0%, 45%, 100% { opacity: 1; }
3491
+ 55%, 90% { opacity: 0; }
3496
3492
  }
3497
3493
 
3498
3494
  @keyframes dm-scribe-fade {
3499
- from {
3500
- opacity: 0;
3501
- transform: translateZ(0);
3502
- }
3503
- to {
3504
- opacity: 1;
3505
- transform: translateZ(0);
3506
- }
3495
+ from { opacity: 0; }
3496
+ to { opacity: 1; }
3507
3497
  }
3508
3498
 
3509
3499
  @keyframes dm-scribe-bounce {
3510
- 0% {
3511
- opacity: 0;
3512
- transform: translateY(-8px) translateZ(0);
3513
- }
3514
- 60% {
3515
- opacity: 1;
3516
- transform: translateY(2px) translateZ(0);
3517
- }
3518
- 80% {
3519
- transform: translateY(-1px) translateZ(0);
3520
- }
3521
- 100% {
3522
- opacity: 1;
3523
- transform: translateY(0) translateZ(0);
3524
- }
3500
+ 0% { opacity: 0; transform: translateY(-0.3em); }
3501
+ 60% { opacity: 1; transform: translateY(0.06em); }
3502
+ 80% { transform: translateY(-0.025em); }
3503
+ 100% { opacity: 1; transform: translateY(0); }
3525
3504
  }
3526
3505
 
3527
3506
  @keyframes dm-scribe-glow {
3528
- 0% {
3529
- opacity: 0;
3530
- transform: scale(0.8) translateZ(0);
3531
- filter: brightness(1);
3532
- }
3533
- 50% {
3534
- opacity: 1;
3535
- transform: scale(1.1) translateZ(0);
3536
- filter: brightness(1.5);
3537
- }
3538
- 100% {
3539
- opacity: 1;
3540
- transform: scale(1) translateZ(0);
3541
- filter: brightness(1);
3542
- }
3507
+ 0% { opacity: 0; text-shadow: 0 0 0.6em currentColor; }
3508
+ 40% { opacity: 1; text-shadow: 0 0 0.35em currentColor; }
3509
+ 100% { opacity: 1; text-shadow: 0 0 0 transparent; }
3543
3510
  }
3544
3511
 
3545
- /* Scribe Classes */
3546
-
3547
3512
  .dm-scribe-cursor {
3548
- display: inline;
3513
+ display: inline-block;
3549
3514
  white-space: pre;
3550
- font-weight: 600;
3551
- margin-left: 2px;
3552
- vertical-align: 0.08em;
3553
- animation: dm-scribe-cursor-blink 1s ease-in-out infinite;
3515
+ margin-left: 0.04em;
3516
+ vertical-align: baseline;
3517
+ animation: dm-scribe-cursor-blink 1.1s ease-in-out infinite;
3554
3518
  }
3555
3519
 
3556
- .dm-scribe-cursor.dm-scribe-cursor-no-blink {
3520
+ .dm-scribe-cursor.dm-scribe-cursor-no-blink,
3521
+ .dm-scribe-cursor.dm-scribe-cursor-active {
3557
3522
  animation: none;
3558
3523
  opacity: 1;
3559
3524
  }
3560
3525
 
3561
- /* Cursor Types */
3562
- .dm-scribe-cursor-caret {
3563
- /* Default - thin vertical line */
3564
- }
3565
-
3566
3526
  .dm-scribe-cursor-block {
3567
- padding: 0;
3568
3527
  background: currentColor;
3569
- color: var(--dm-background, #fff);
3570
- opacity: 0.8;
3571
3528
  font-size: 0.7em;
3572
- line-height: 0.9;
3573
- }
3574
-
3575
- .dm-scribe-cursor-block.dm-scribe-cursor-no-blink {
3576
- opacity: 0.6;
3529
+ line-height: 1;
3577
3530
  }
3578
3531
 
3579
3532
  .dm-scribe-cursor-underline {
3580
- border-bottom: 2px solid currentColor;
3581
- padding: 0;
3533
+ border-bottom: 0.08em solid currentColor;
3582
3534
  min-width: 0.5em;
3535
+ line-height: 1;
3583
3536
  }
3584
3537
 
3585
- /* Unit base styling (shared across modes) */
3538
+ /* Transformable units inherit the surrounding typography. Sentences stay
3539
+ inline so long passages can wrap within narrow containers. */
3586
3540
  .dm-scribe-char,
3587
- .dm-scribe-word,
3541
+ .dm-scribe-word {
3542
+ display: inline-block;
3543
+ white-space: pre-wrap;
3544
+ vertical-align: baseline;
3545
+ }
3546
+
3588
3547
  .dm-scribe-sentence {
3589
3548
  display: inline;
3590
- white-space: pre;
3591
- font-weight: 600;
3592
- will-change: transform, opacity;
3593
- backface-visibility: hidden;
3594
- -webkit-font-smoothing: antialiased;
3595
- -moz-osx-font-smoothing: grayscale;
3596
- transform: translateZ(0);
3549
+ white-space: pre-wrap;
3550
+ }
3551
+
3552
+ .dm-scribe-space {
3553
+ display: inline;
3554
+ }
3555
+
3556
+ .dm-scribe-sentence.dm-scribe-transform-unit {
3557
+ display: inline-block;
3558
+ max-width: 100%;
3597
3559
  }
3598
3560
 
3599
- /* Effect classes (shared across modes) */
3600
3561
  .dm-scribe-fade {
3601
- animation: dm-scribe-fade 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
3562
+ animation: dm-scribe-fade 0.22s ease-out both;
3602
3563
  }
3603
3564
 
3604
3565
  .dm-scribe-bounce {
3605
- animation: dm-scribe-bounce 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
3566
+ animation: dm-scribe-bounce 0.38s ease-out both;
3606
3567
  }
3607
3568
 
3608
3569
  .dm-scribe-glow {
3609
- animation: dm-scribe-glow 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
3570
+ animation: dm-scribe-glow 0.5s ease-out both;
3571
+ }
3572
+
3573
+ @media (prefers-reduced-motion: reduce) {
3574
+ .dm-scribe-cursor,
3575
+ .dm-scribe-fade,
3576
+ .dm-scribe-bounce,
3577
+ .dm-scribe-glow {
3578
+ animation: none;
3579
+ }
3610
3580
  }
3611
3581
 
3612
3582
  /* =================================================================