body { font-family: 'Montserrat', sans-serif; } @layer from-quill-editor { .ql-editor blockquote, .ql-editor h1, .ql-editor h2, .ql-editor h3, .ql-editor h4, .ql-editor h5, .ql-editor h6, .ql-editor ol, .ql-editor p, .ql-editor pre, .ql-editor ul { counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9 } .ql-editor ol, .ql-editor ul { padding-left: 1.5em } .ql-editor ol>li, .ql-editor ul>li { list-style-type: none } .ql-editor ul>li:before { content: "\2022" } .ql-editor li:before { display: inline-block; white-space: nowrap; width: 1.2em } .ql-editor li:not(.ql-direction-rtl):before { margin-left: -1.5em; margin-right: .3em; text-align: right } .ql-editor li.ql-direction-rtl:before { margin-left: .3em; margin-right: -1.5em } .ql-editor ol li:not(.ql-direction-rtl), .ql-editor ul li:not(.ql-direction-rtl) { padding-left: 1.5em } .ql-editor ol li.ql-direction-rtl, .ql-editor ul li.ql-direction-rtl { padding-right: 1.5em } .ql-editor ol li { counter-increment: list-0; counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9 } .ql-editor ol li:before { content: counter(list-0, decimal) ". " } .ql-editor ol li.ql-indent-1 { counter-increment: list-1 } .ql-editor ol li.ql-indent-1:before { content: counter(list-1, lower-alpha) ". " } .ql-editor ol li.ql-indent-1 { counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9 } .ql-editor ol li.ql-indent-2 { counter-increment: list-2 } .ql-editor ol li.ql-indent-2:before { content: counter(list-2, lower-roman) ". " } .ql-editor ol li.ql-indent-2 { counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9 } .ql-editor ol li.ql-indent-3 { counter-increment: list-3 } .ql-editor ol li.ql-indent-3:before { content: counter(list-3, decimal) ". " } .ql-editor ol li.ql-indent-3 { counter-reset: list-4 list-5 list-6 list-7 list-8 list-9 } .ql-editor ol li.ql-indent-4 { counter-increment: list-4 } .ql-editor ol li.ql-indent-4:before { content: counter(list-4, lower-alpha) ". " } .ql-editor ol li.ql-indent-4 { counter-reset: list-5 list-6 list-7 list-8 list-9 } .ql-editor ol li.ql-indent-5 { counter-increment: list-5 } .ql-editor ol li.ql-indent-5:before { content: counter(list-5, lower-roman) ". " } .ql-editor ol li.ql-indent-5 { counter-reset: list-6 list-7 list-8 list-9 } .ql-editor ol li.ql-indent-6 { counter-increment: list-6 } .ql-editor ol li.ql-indent-6:before { content: counter(list-6, decimal) ". " } .ql-editor ol li.ql-indent-6 { counter-reset: list-7 list-8 list-9 } .ql-editor ol li.ql-indent-7 { counter-increment: list-7 } .ql-editor ol li.ql-indent-7:before { content: counter(list-7, lower-alpha) ". " } .ql-editor ol li.ql-indent-7 { counter-reset: list-8 list-9 } .ql-editor ol li.ql-indent-8 { counter-increment: list-8 } .ql-editor ol li.ql-indent-8:before { content: counter(list-8, lower-roman) ". " } .ql-editor ol li.ql-indent-8 { counter-reset: list-9 } .ql-editor ol li.ql-indent-9 { counter-increment: list-9 } .ql-editor ol li.ql-indent-9:before { content: counter(list-9, decimal) ". " } .ql-editor .ql-indent-1:not(.ql-direction-rtl) { padding-left: 3em } .ql-editor li.ql-indent-1:not(.ql-direction-rtl) { padding-left: 4.5em } .ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right { padding-right: 3em } .ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right { padding-right: 4.5em } .ql-editor .ql-indent-2:not(.ql-direction-rtl) { padding-left: 6em } .ql-editor li.ql-indent-2:not(.ql-direction-rtl) { padding-left: 7.5em } .ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right { padding-right: 6em } .ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right { padding-right: 7.5em } .ql-editor .ql-indent-3:not(.ql-direction-rtl) { padding-left: 9em } .ql-editor li.ql-indent-3:not(.ql-direction-rtl) { padding-left: 10.5em } .ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right { padding-right: 9em } .ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right { padding-right: 10.5em } .ql-editor .ql-indent-4:not(.ql-direction-rtl) { padding-left: 12em } .ql-editor li.ql-indent-4:not(.ql-direction-rtl) { padding-left: 13.5em } .ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right { padding-right: 12em } .ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right { padding-right: 13.5em } .ql-editor .ql-indent-5:not(.ql-direction-rtl) { padding-left: 15em } .ql-editor li.ql-indent-5:not(.ql-direction-rtl) { padding-left: 16.5em } .ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right { padding-right: 15em } .ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right { padding-right: 16.5em } .ql-editor .ql-indent-6:not(.ql-direction-rtl) { padding-left: 18em } .ql-editor li.ql-indent-6:not(.ql-direction-rtl) { padding-left: 19.5em } .ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right { padding-right: 18em } .ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right { padding-right: 19.5em } .ql-editor .ql-indent-7:not(.ql-direction-rtl) { padding-left: 21em } .ql-editor li.ql-indent-7:not(.ql-direction-rtl) { padding-left: 22.5em } .ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right { padding-right: 21em } .ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right { padding-right: 22.5em } .ql-editor .ql-indent-8:not(.ql-direction-rtl) { padding-left: 24em } .ql-editor li.ql-indent-8:not(.ql-direction-rtl) { padding-left: 25.5em } .ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right { padding-right: 24em } .ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right { padding-right: 25.5em } .ql-editor .ql-indent-9:not(.ql-direction-rtl) { padding-left: 27em } .ql-editor li.ql-indent-9:not(.ql-direction-rtl) { padding-left: 28.5em } .ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right { padding-right: 27em } .ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right { padding-right: 28.5em } .ql-editor .ql-align-center { text-align: center } .ql-editor .ql-align-justify { text-align: justify } .ql-editor .ql-align-right { text-align: right } } @layer from-quill-editor-overrides { .ql-editor { padding-block: 1.5rem; padding-inline: 2rem; padding-inline: clamp(.5rem, 2.5vw, 3rem); padding-inline: clamp(20px, 5vw, 35px) } .ql-editor>:where(:not(:first-child)) { margin-block-start: var(--flow-space, 1.5rem) } .ql-editor :where(ul, ol)>:where(:not(:first-child)) { margin-block-start: .25rem } .ql-editor :is(ol, ul) { padding: 0 } .ql-editor>p+:is(ul, ol) { margin-block-start: .25rem } } @layer accessibility { :where(:focus-visible) { outline: 3px solid #000; outline-offset: 3px } .sr-only { clip: rect(0, 0, 0, 0); border: 0; height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px } .skip-to-content { background-color: hsl(var(--clr-darker-hsl)); border-radius: 8px; color: hsl(var(--clr-light-hsl)); display: block; left: 0; margin-inline: auto; margin: 0 auto !important; max-width: max-content; opacity: 0; outline-offset: 1px; padding: .5em 1em; position: fixed; right: 0; text-decoration: none; top: 1.5rem; transform: translateY(calc(-100% - 5rem - 1px)); transition: transform .25s ease-in; z-index: 9999 } .skip-to-content:hover { background-color: hsl(var(--clr-light-hsl)); color: hsl(var(--clr-darker-hsl)) } .skip-to-content:focus { opacity: 1; transform: translateY(0) } } @layer accessibility { @media (prefers-reduced-motion:reduce) { *, :after, :before { animation-duration: .1ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: auto !important } .animate { animation: none !important } } } @layer buttons { .button, .ql-html-buttonCancel, .ql-html-buttonOk { align-items: center; appearance: none; -webkit-appearance: none; -moz-appearance: none; background: var(--clr-500); border: none; border-radius: 8px; color: #fff; cursor: pointer; display: flex; font-family: Montserrat', sans-serif; font-size: 16px; font-weight: 400; gap: 0; justify-content: center; letter-spacing: .025em; line-height: 26px; margin: 0; max-width: max-content; overflow: hidden; padding: 10px 35px; padding-inline: clamp(20px, 5vw, 35px); padding-inline: clamp(20px, 2vw, 35px); text-decoration: none; transition: outline .4s cubic-bezier(.22, 1, .36, 1); -webkit-user-select: none; user-select: none } .button:hover:not([disabled]), .ql-html-buttonCancel:hover:not([disabled]), .ql-html-buttonOk:hover:not([disabled]) { background: var(--clr-600) } .button:active:not([disabled]), .ql-html-buttonCancel:active:not([disabled]), .ql-html-buttonOk:active:not([disabled]) { background: var(--clr-700); transform: translate(2px 3px); transform: scale(.975); transition: transform .3s cubic-bezier(.22, 1, .36, 1), outline .4s cubic-bezier(.22, 1, .36, 1), background-color .2s linear } .button[disabled], .ql-html-buttonCancel[disabled], .ql-html-buttonOk[disabled] { cursor: default; filter: grayscale(.75) contrast(.75) brightness(.96); transition: all .4s cubic-bezier(.22, 1, .36, 1) } .button.icon-button { gap: 0; padding: 0; place-self: center } .button.icon-button>* { align-items: center; align-items: space-evenly; display: inline-flex; display: flex; gap: .5ex; height: 100%; justify-content: center; padding: 10px 35px; padding-inline: clamp(20px, 2.5vw, 35px); padding-inline: clamp(20px, min(2.5vw, 1.5em), 35px) } .button.icon-button .icon { background-color: transparent; background-color: rgba(0, 0, 0, .16); font-size: 1.5em; padding-inline: clamp(20px, min(2.5vw, 1.5em), 24px) } .button.icon-button .icon.small-padding { padding-inline: 10px } .button, .ql-html-buttonCancel, .ql-html-buttonOk { --clr-500: var(--clr-blue-desaturated-500); --clr-600: var(--clr-blue-desaturated-600); --clr-700: var(--clr-blue-desaturated-700) } .button.primary, .ql-html-buttonOk { --clr-500: var(--clr-blue-500); --clr-600: var(--clr-blue-600); --clr-700: var(--clr-blue-700) } .button.danger { --clr-500: var(--clr-red-500); --clr-600: var(--clr-red-600); --clr-700: var(--clr-red-700) } .button.success { --clr-500: var(--clr-green-desaturated-500); --clr-600: var(--clr-green-desaturated-600); --clr-700: var(--clr-green-desaturated-700) } .button.warning, .ql-html-buttonCancel { --clr-500: var(--clr-red-desaturated-500); --clr-600: var(--clr-red-desaturated-600); --clr-700: var(--clr-red-desaturated-700) } .invert-colors .button { background: var(--clr-600); border: 1px solid hsla(0, 0%, 100%, .1); filter: invert(1) hue-rotate(180deg); outline-color: #fff } .invert-colors .button:hover:not([disabled]) { background: var(--clr-700) } .invert-colors .button:active:not([disabled]) { background: var(--clr-500) } .invert-colors .button[disabled] { cursor: default; filter: grayscale(.75) contrast(.75) brightness(.96) invert(1) hue-rotate(180deg) } .invert-colors .button>* { background-color: rgba(0, 0, 0, .16) } .invert-colors .button .icon { background-color: transparent; border-inline-start: 1px solid hsla(0, 0%, 100%, .05) } } @layer utility { .flexi { align-items: center; display: flex; flex-wrap: wrap; gap: clamp(20px, 5vw, 35px); justify-content: flex-start } .flow>:where(:not(:first-child)) { margin-block-start: var(--flow-space, 1em) } .hidden { display: none !important } @media (max-width:30em) { .hide-small { display: none !important } } @media (max-width:50em) { .hide-medium { display: none !important } } .sr-only { clip: rect(0, 0, 0, 0); border: 0; height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px } .border-top { border-top: 1px solid hsl(var(--clr-primary-hsl)/.25); margin-block-start: 2rem; padding-block-start: 2.5rem } .margin-top { margin-block-start: 3rem } .d-block { display: blok } } @layer forms { :where(input:is([type=text], [type=email], [type=password]), textarea) { appearance: none; background-color: hsl(var(--clr-light-hsl)/.6); border: 1.5px solid hsl(var(--clr-dark-hsl)/.5); border-radius: .25rem; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06); color: hsl(var(--clr-dark-hsl)/1); font-size: 1rem; mix-blend-mode: luminosity; outline-offset: 0; outline-width: 1.5px; padding-block: .35rem; padding-inline: .75rem; position: relative; transition: all .3s cubic-bezier(.22, 1, .36, 1) } :where(input:is([type=text], [type=email], [type=password]), textarea):focus { background-color: hsl(var(--clr-light-hsl)/1); border: 1.5px solid hsl(var(--clr-darker-hsl)/.8); color: hsl(var(--clr-darker-hsl)/1) } :where(input:is([type=text], [type=email], [type=password]), textarea)::placeholder { color: hsl(var(--clr-dark-hsl)/.75) } :where(input:is([type=text], [type=email], [type=password]), textarea):focus::placeholder { color: hsl(var(--clr-dark-hsl)/.75) } label { color: var(--clr-blue-desaturated-700); font-weight: 600; letter-spacing: -.0175em } label:has(svg) { align-items: center; column-gap: .25em; display: flex; justify-content: center } label:has(svg) svg { color: var(--clr-blue-700); height: 1.5rem; width: 1.5rem } } @layer contract-typography { :root { --step--2: clamp(0.56rem, calc(0.8rem - 0.51vw), 0.69rem); --step--1: clamp(0.75rem, calc(0.9rem - 0.32vw), 0.83rem); --step-0: clamp(1.00rem, 1rem, 1.00rem); --step-1: clamp(1.20rem, calc(1.1rem + 0.51vw), 1.33rem); --step-2: clamp(1.44rem, calc(1.18rem + 1.3vw), 1.78rem); --step-3: clamp(1.73rem, calc(1.23rem + 2.47vw), 2.37rem); --step-4: clamp(2.07rem, calc(1.24rem + 4.18vw), 3.16rem); --step-5: clamp(2.49rem, calc(1.16rem + 6.63vw), 4.21rem) } #content { background: #fff; margin: 2rem 2rem 6rem; margin-inline: 0; margin-inline: auto; max-width: calc(100% - 2rem); max-width: 100%; padding: 0 2em; padding-inline: 2rem; width: clamp(10rem, 60rem, 80rem); width: 52em; width: 210mm } #content, #main { font-family: Montserrat', sans-serif; font-size: var(--step-0); line-height: 1.5; line-height: 1.75 } ul, li { font-family: 'Montserrat', sans-serif; } p { font-family: 'Montserrat', sans-serif; margin-bottom: .25rem !important; } h2, h3, h4, h5, h6 { margin-block-start: 1.25em; margin-bottom: .1rem !important; } h1, h2 { border-style: solid; border-width: 3px 0 1px; font-family: 'Montserrat', sans-serif; font-size: var(--step-2); font-weight: 400; letter-spacing: .1em; ;;margin-block-end: 2rem;;; ;;;;margin-block-start: 0.5rem;;;;; ;;;padding: .25em 0;;;; position: relative; text-align: center } h1, h2 { line-height: 1.2em; text-transform: uppercase } h2 { font-family: Montserrat', sans-serif; font-family: Open Sans, sans-serif; font-size: var(--step-1); font-variation-settings: "wdth" 75; font-weight: 600; letter-spacing: .025em } h3, h4, h5, h6 { font-weight: 700 } } @layer signatures { .compiled-signatures { display: flex; flex-wrap: wrap; gap: 2rem; justify-content: space-around } .compiled-signature { align-items: start; display: grid; font-size: .75em; max-width: min(50%, 330px); max-width: clamp(calc(50% - 2rem), 348px, 100%); min-width: 300px; min-width: 200px } .compiled-signature img { background: #fff; border: 1px solid rgba(3, 33, 48, .25); margin-block: .15rem } #dev_signature, #hk { display: block; max-width: min(333px, 100%); max-width: min(370px, 100%) } #dev_signature[src=null] { display: none } .date-ip { font-family: Montserrat', sans-serif; font-size: 1.2em; font-variation-settings: "wdth" 75; font-weight: 400; letter-spacing: .025em; line-height: 1.2em } #ui-unsigned { margin: 0 } #ui-signed { clear: both } #content>:not(#ui-unsigned, #dev_signature) { transition: opacity .3s ease-out } #signature-container { display: grid; gap: 1.5rem; place-items: start } @media (min-width:40rem) { #signature-container { place-items: end } } #canvas-container { aspect-ratio: 188/58.66; background: #fff; isolation: isolate; max-width: 100%; position: relative; transition: max-width .4s cubic-bezier(.22, 1, .36, 1), margin .6s ease-in-out; -webkit-user-select: none; user-select: none; width: 100% } #canvas-container:before { border-bottom: 2px solid #61594f; content: ""; display: block; height: 0; inset: 70% 7.5% 0 7.5%; opacity: .95; pointer-events: none; position: absolute; z-index: -1 } } @layer signatures { @media (max-width:40em) { #canvas-container { aspect-ratio: 200/80 } } } @layer signatures { #generator-signature-pad, #signature-pad { border: 2px dashed rgba(3, 33, 48, .75); box-shadow: inset 0 0 5px 1px #ddd; height: 100%; left: 0; position: absolute; top: 0; width: 100% } #signature-controls { align-items: flex-start; display: flex; flex-direction: row; gap: 1.5rem; justify-content: center; width: 100% } .loading-signed { align-items: center; justify-content: center } @media (min-width:40rem) { .loading-signed { justify-content: center } } .loading-signed:not(.hidden) { display: flex } .to-go { opacity: 1; transform: none; transition: all .2s cubic-bezier(.26, .53, .74, 1.48), scale 1s ease-out } .to-go.gone { opacity: 0; transform: translateY(-20px) } #canvas-container.just-signed { max-width: 333px } @media (min-width:40rem) { #canvas-container.just-signed { margin-top: calc(-330px - 2rem) } } #canvas-container.just-signed #signature-pad { border: 1px dashed rgba(3, 33, 48, .25); box-shadow: inset 0 0 2px 1px hsla(0, 0%, 87%, .25) } #canvas-container.just-signed:before { opacity: 0 } } @layer modal { .modal { --shadow-color: 200 3% 15%; --shadow-strength: 5%; --shadow-6: 0 -1px 2px 0 hsl(var(--shadow-color)/calc(var(--shadow-strength) + 2%)), 0 3px 2px -2px hsl(var(--shadow-color)/calc(var(--shadow-strength) + 3%)), 0 7px 5px -2px hsl(var(--shadow-color)/calc(var(--shadow-strength) + 3%)), 0 12px 10px -2px hsl(var(--shadow-color)/calc(var(--shadow-strength) + 4%)), 0 22px 18px -2px hsl(var(--shadow-color)/calc(var(--shadow-strength) + 5%)), 0 41px 33px -2px hsl(var(--shadow-color)/calc(var(--shadow-strength) + 6%)), 0 100px 80px -2px hsl(var(--shadow-color)/calc(var(--shadow-strength) + 7%)); border: 3px solid hsl(var(--shadow-color)); border-radius: 1.5rem; box-shadow: var(--shadow-6); margin-block-start: auto; max-width: calc(100% - 1rem); padding: 0; position: fixed; z-index: 999 } .modal::backdrop { -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); background-image: linear-gradient(132deg, rgba(31, 39, 41, .6), rgba(35, 41, 47, .6)); cursor: pointer } .close-button { border-radius: 50%; height: 32px; margin: 1rem 0 0; max-width: 32px; padding: 0; position: relative; vertical-align: top; width: 32px } .close-button:active { background-color: #000; transition: none } .close-button:before { height: 2px; width: 50% } .close-button:after { height: 50%; width: 2px } .close-button:after, .close-button:before { background-color: currentColor; content: ""; display: block; left: 50%; position: absolute; top: 50%; transform: translateX(-50%) translateY(-50%) rotate(45deg); transform-origin: center center } .qr-code-container { display: grid; gap: 1rem; justify-items: end; margin-block-end: 3.5rem; margin-inline: 1rem } #generator-qr-code, #qr-code { display: block; image-rendering: pixelated; margin: auto; max-width: 90%; width: min(500px, 90vw) } } @layer animated-entrances { @media (prefers-reduced-motion:reduce) { .animate { animation: none !important } } } @layer animated-entrances { .delay-1 { animation-delay: .6s } .delay-2 { animation-delay: .7s } .delay-3 { animation-delay: .8s } .delay-4 { animation-delay: .9s } .delay-5 { animation-delay: 1s } .delay-6 { animation-delay: 1.1s } .delay-7 { animation-delay: 1.2s } .delay-8 { animation-delay: 1.3s } .delay-9 { animation-delay: 1.4s } .delay-10 { animation-delay: 1.5s } .delay-11 { animation-delay: 1.6s } .delay-12 { animation-delay: 1.7s } .delay-13 { animation-delay: 1.8s } .delay-14 { animation-delay: 1.9s } .delay-15 { animation-delay: 2s } .delay-16 { animation-delay: 2.1s } :where(.animate) { animation-delay: .5s; animation-duration: .75s; animation-fill-mode: backwards; animation-name: animate-fade; animation-timing-function: cubic-bezier(.26, .53, .74, 1.48) } :where(.animate).fade { animation-name: animate-fade; animation-timing-function: ease } :where(.animate).pop { animation-name: animate-pop } :where(.animate).blur { animation-name: animate-blur; animation-timing-function: ease } :where(.animate).glow { animation-name: animate-glow; animation-timing-function: ease } :where(.animate).grow { animation-name: animate-grow } :where(.animate).splat { animation-name: animate-splat } :where(.animate).roll { animation-name: animate-roll } :where(.animate).flip { animation-name: animate-flip; perspective: 1000px; transform-style: preserve-3d } :where(.animate).spin { animation-name: animate-spin; perspective: 1000px; transform-style: preserve-3d } :where(.animate).slide { animation-name: animate-slide } :where(.animate).drop { animation-name: animate-drop; animation-timing-function: cubic-bezier(.77, .14, .91, 1.25) } :where(.animate).drop-up { animation-name: animate-drop-up; animation-timing-function: cubic-bezier(.77, .14, .91, 1.25) } } @layer animated-entrances { @media screen { @keyframes animate-fade { 0% { opacity: 0 } to { opacity: 1 } } @keyframes animate-pop { 0% { opacity: 0; transform: scale(.5) } to { opacity: 1; transform: scale(1) } } @keyframes animate-blur { 0% { filter: blur(15px); opacity: 0 } to { filter: blur(0); opacity: 1 } } @keyframes animate-glow { 0% { filter: brightness(3) saturate(3); opacity: 0; transform: scale(.8) } to { filter: brightness(1) saturate(1); opacity: 1; transform: scale(1) } } @keyframes animate-grow { 0% { opacity: 0; transform: scaleY(0); visibility: hidden } to { opacity: 1; transform: scale(1) } } @keyframes animate-splat { 0% { opacity: 0; transform: scale(0) rotate(20deg) translateY(-30px) } 70% { opacity: 1; transform: scale(1.1) rotate(15deg) } 85% { opacity: 1; transform: scale(1.1) rotate(15deg) translateY(-10px) } to { opacity: 1; transform: scale(1) rotate(0) translate(0) } } @keyframes animate-roll { 0% { opacity: 0; transform: scale(0) rotate(1turn) } to { opacity: 1; transform: scale(1) rotate(0deg) } } @keyframes animate-flip { 0% { opacity: 0; transform: rotateX(-120deg) scale(.9) } to { opacity: 1; transform: rotateX(0deg) scale(1) } } @keyframes animate-spin { 0% { opacity: 0; transform: rotateY(-120deg) scale(.9) } to { opacity: 1; transform: rotateY(0deg) scale(1) } } @keyframes animate-slide { 0% { opacity: 0; transform: translateY(20px) } to { opacity: 1; transform: translate(0) } } @keyframes animate-drop { 0% { opacity: 0; transform: translateY(-300px) scale(.9, 1.1) } 95% { opacity: 1; transform: translate(0) scale(.9, 1.1) } 96% { opacity: 1; transform: translate(10px) scale(1.2, .9) } 97% { opacity: 1; transform: translate(-10px) scale(1.2, .9) } 98% { opacity: 1; transform: translate(5px) scale(1.1, .9) } 99% { opacity: 1; transform: translate(-5px) scale(1.1, .9) } to { opacity: 1; transform: translate(0) scale(1) } } @keyframes animate-drop-up { 0% { opacity: 0; transform: translateY(300px) scale(.9, 1.1) } 95% { opacity: 1; transform: translate(0) scale(.9, 1.1) } 96% { opacity: 1; transform: translate(-10px) scale(1.2, .9) } 97% { opacity: 1; transform: translate(10px) scale(1.2, .9) } 98% { opacity: 1; transform: translate(-5px) scale(1.1, .9) } 99% { opacity: 1; transform: translate(5px) scale(1.1, .9) } to { opacity: 1; transform: translate(0) scale(1) } } } } details { --clr-500: var(--clr-blue-500); --clr-600: var(--clr-blue-600); --clr-700: var(--clr-blue-700); --clr-500-desaturated: var(--clr-blue-desaturated-500); --clr-600-desaturated: var(--clr-blue-desaturated-600); --clr-700-desaturated: var(--clr-blue-desaturated-700); max-height: 1.5em; overflow: hidden; transition: all .4s ease-in-out } details[open] { max-height: 90vh } details[open] summary { padding-block-end: .5em } details.danger { --clr-primary-hsl: var(--clr-danger-hsl); --clr-500: var(--clr-red-500); --clr-600: var(--clr-red-600); --clr-700: var(--clr-red-700); --clr-500-desaturated: var(--clr-red-desaturated-500); --clr-600-desaturated: var(--clr-red-desaturated-600); --clr-700-desaturated: var(--clr-red-desaturated-700) } details.success { --clr-primary-hsl: var(--clr-success-hsl); --clr-500: var(--clr-green-500); --clr-600: var(--clr-green-600); --clr-700: var(--clr-green-700); --clr-500-desaturated: var(--clr-green-desaturated-500); --clr-600-desaturated: var(--clr-green-desaturated-600); --clr-700-desaturated: var(--clr-green-desaturated-700) } details.warning { --clr-primary-hsl: var(--clr-warning-hsl); --clr-500: var(--clr-brown-500); --clr-600: var(--clr-brown-600); --clr-700: var(--clr-brown-700); --clr-500-desaturated: var(--clr-brown-desaturated-500); --clr-600-desaturated: var(--clr-brown-desaturated-600); --clr-700-desaturated: var(--clr-brown-desaturated-700) } details>summary { color: var(--clr-500); cursor: pointer; font-family: inherit; font-size: 16px; font-weight: 700; letter-spacing: -.025em; line-height: 26px; max-width: min-content; transition: outline .4s cubic-bezier(.22, 1, .36, 1); -webkit-user-select: auto; user-select: auto; white-space: nowrap } details>summary:hover { background: none; color: var(--clr-700) } details>summary:focus-visible { border-radius: 8px; color: #000; outline: none; text-decoration: underline; text-decoration-thickness: 2; text-underline-position: under } details>summary:focus-visible::marker { color: inherit } details>summary::marker { color: var(--clr-600-desaturated); color: hsl(var(--clr-primary-hsl)/.8) } details>summary:hover::marker { color: inherit } details>summary:active { transform: scale(.975); transition: transform .3s cubic-bezier(.22, 1, .36, 1), outline .4s cubic-bezier(.22, 1, .36, 1), background-color .2s linear } details>:nth-child(2):last-child { background: hsl(var(--clr-primary-hsl)/.1); border: 1.5px solid hsl(var(--clr-primary-hsl)/.075); border-radius: 8px; gap: 1rem; justify-content: flex-start; padding: .75rem 1rem 1rem; position: relative } details>:nth-child(2):last-child label { color: var(--clr-700-desaturated); font-weight: 600; letter-spacing: -.0175em } details>:nth-child(2):last-child>p:last-child:not([class]) { color: var(--clr-500-desaturated) } table {border-collapse: collapse;width: 100%;margin: 3px 0;font-size: 13px;} th, td {border: 1px solid #ddd;padding: 2px 5px;vertical-align: top;font-weight:normal;} th { background: #f6f6f6; text-align: left; } /* force first column to 30% across all rows */ table { table-layout: fixed; } /* makes width rules respected */ th:first-child, td:first-child { width: 30%; white-space: nowrap; } th:nth-child(2), td:nth-child(2) { width: 70%; word-break: break-word; }