html,body{margin:0;height:100%;overflow:hidden;background:#05060a}#app{width:100%;height:100%;position:relative}canvas{display:block;width:100%;height:100%}.ember-title{position:absolute;left:var(--title-x, 50%);top:var(--title-y, 60%);transform:translate(-50%,-50%);text-align:var(--title-align, center);max-width:var(--title-max, 900px);pointer-events:none;-webkit-user-select:none;user-select:none;mix-blend-mode:screen;animation:ember-flicker var(--title-flicker-speed, 3s) infinite}.ember-title__sparks{position:absolute;inset:-40px;width:calc(100% + 80px);height:calc(100% + 80px);pointer-events:none;mix-blend-mode:screen}.ember-title__line{display:block;font-family:var(--title-font, "Cinzel", "Cormorant Garamond", "Times New Roman", serif);font-weight:700;font-size:var(--title-size, 72px);line-height:var(--title-line-height, .95);letter-spacing:var(--title-tracking, 4px);text-transform:uppercase;background-image:linear-gradient(120deg,#ffd2a000,rgba(255,210,160,var(--title-light-intensity, .25)) 45%,#ffd2a000 70%),linear-gradient(180deg,var(--title-grad-from, #f2a056) 0%,var(--title-grad-mid, #f7d68f) 55%,var(--title-grad-to, #b54410) 100%);background-size:220% 220%,100% 100%;background-position:-120% 0%,0 0;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:var(--title-stroke-width, 2px) var(--title-stroke-color, rgba(20, 10, 6, .55));text-shadow:0 6px 18px rgba(0,0,0,.55),0 0 var(--title-glow, 26px) var(--title-glow-color, rgba(255, 120, 40, .35))}.ember-title--lit .ember-title__line{animation:ember-light var(--title-light-speed, 6s) ease-in-out infinite}.ember-title__sub{display:block;margin-top:10px;font-family:Cormorant Garamond,Times New Roman,serif;font-size:calc(var(--title-size, 72px) * .22);letter-spacing:calc(var(--title-tracking, 4px) * .6);text-transform:uppercase;color:#f5dcc8b3;text-shadow:0 0 18px rgba(255,120,40,.25)}@keyframes ember-flicker{0%{filter:drop-shadow(0 0 var(--title-glow, 26px) var(--title-glow-color, rgba(255, 120, 40, .35)));opacity:.96}45%{filter:drop-shadow(0 0 calc(var(--title-glow, 26px) * (1 + var(--title-flicker-intensity, .05))) var(--title-glow-color, rgba(255, 120, 40, .35)));opacity:1}to{filter:drop-shadow(0 0 var(--title-glow, 26px) var(--title-glow-color, rgba(255, 120, 40, .35)));opacity:.97}}@keyframes ember-light{0%{background-position:-120% 0%,0 0;filter:brightness(1)}45%{background-position:-10% 10%,0 0;filter:brightness(1.08)}to{background-position:120% -10%,0 0;filter:brightness(1)}}
