Skip to content

Instantly share code, notes, and snippets.

@klauspost
Created October 20, 2022 14:38
Show Gist options
  • Save klauspost/1ad67d68c0c310b1ce396753ef9571f3 to your computer and use it in GitHub Desktop.
Save klauspost/1ad67d68c0c310b1ce396753ef9571f3 to your computer and use it in GitHub Desktop.
css-reorder-experiment
package main
import (
"bytes"
"fmt"
"math"
"os"
"github.com/klauspost/compress/gzip"
"github.com/klauspost/compress/zstd"
)
func main() {
sample := sample1
// This is NOt correct, replace with your own block splitter.
var buf bytes.Buffer
enc, _ := gzip.NewWriterLevel(&buf, gzip.BestCompression)
enc.Write([]byte(sample))
enc.Close()
fmt.Printf("gzip before: %d -> %d\n", len(sample), buf.Len())
const verbose = false
const maxSize = 1 << 10
blocks := bytes.Split([]byte(sample), []byte("\n\n"))
fmt.Printf("blocks: %v\n", len(blocks))
startWith := 0
biggest := 0
selfSize := make([]int, 0, len(blocks))
var dst []byte
z, _ := zstd.NewWriter(nil, zstd.WithEncoderCRC(false), zstd.WithSingleSegment(true), zstd.WithNoEntropyCompression(true), zstd.WithAllLitEntropyCompression(false), zstd.WithWindowSize(4<<10))
for i, block := range blocks {
if len(block) > biggest {
biggest = len(block)
startWith = i
}
sz := len(block)
// Sometimes better, sometimes worse.
if false {
// Compress to reduce self-compressed
dst = z.EncodeAll(block, dst[:0])
var hdr zstd.Header
hdr.Decode(dst)
sz = hdr.FirstBlock.CompressedSize
}
selfSize = append(selfSize, sz)
}
output := make([]byte, 0, len(sample))
tmp := make([]byte, 0, len(sample))
output = append(output, blocks[startWith]...)
tmp = append(tmp, blocks[startWith]...)
tmp = append(tmp, '\n', '\n')
blocks[startWith] = nil
if verbose {
fmt.Println("block", startWith, "->")
}
for {
smallest := math.MaxInt32
smallestIdx := -1
tmpSz := len(tmp)
for i, block := range blocks {
if block == nil {
continue
}
tmp = append(tmp[:tmpSz], block...)
dst = z.EncodeAll(tmp, dst[:0])
if size := len(dst) - selfSize[i]; size <= smallest {
if verbose {
fmt.Println("block", i, "size:", size, "block:", len(block), "self:", selfSize[i])
}
// If equal take the biggest block
if size != smallest || len(block) > len(blocks[smallestIdx]) {
smallestIdx = i
smallest = size
}
}
}
if smallestIdx == -1 {
// done
break
}
if verbose {
fmt.Printf("block %d extra size %d ->\n", smallestIdx, smallest)
}
output = append(output, '\n', '\n')
//output = append(output, []byte(fmt.Sprintf("%d:", smallestIdx))...)
output = append(output, blocks[smallestIdx]...)
tmp = append(tmp, blocks[smallestIdx]...)
tmp = append(tmp, '\n', '\n')
if len(tmp) > maxSize {
tmp = tmp[len(tmp)-maxSize:]
}
blocks[smallestIdx] = nil
}
if verbose {
fmt.Println("done")
}
buf.Reset()
enc.Reset(&buf)
enc.Write(output)
enc.Close()
fmt.Printf("gzip after: %d -> %d\n", len(output), buf.Len())
os.WriteFile("output.css", output, os.ModePerm)
os.WriteFile("output.css.gz", buf.Bytes(), os.ModePerm)
}
// ! tailwindcss v3.1.8 | MIT License | https://tailwindcss.com
var sample1 = `
*,:after,:before {
box-sizing: border-box;
border: 0 solid #e6e4e2
}
:after,:before {
--tw-content: ""
}
html {
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
font-family: Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji
}
body {
margin: 0;
line-height: inherit
}
hr {
height: 0;
color: inherit;
border-top-width: 1px
}
abbr:where([title]) {
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted
}
h1,h2,h3,h4,h5,h6 {
font-size: inherit;
font-weight: inherit
}
a {
color: inherit;
text-decoration: inherit
}
b,strong {
font-weight: bolder
}
code,kbd,pre,samp {
font-family: SF Mono,SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;
font-size: 1em
}
small {
font-size: 80%
}
sub,sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline
}
sub {
bottom: -.25em
}
sup {
top: -.5em
}
table {
text-indent: 0;
border-color: inherit;
border-collapse: collapse
}
button,input,optgroup,select,textarea {
font-family: inherit;
font-size: 100%;
font-weight: inherit;
line-height: inherit;
color: inherit;
margin: 0;
padding: 0
}
button,select {
text-transform: none
}
[type=button],[type=reset],[type=submit],button {
-webkit-appearance: button;
background-color: transparent;
background-image: none
}
:-moz-focusring {
outline: auto
}
:-moz-ui-invalid {
box-shadow: none
}
progress {
vertical-align: baseline
}
::-webkit-inner-spin-button,::-webkit-outer-spin-button {
height: auto
}
[type=search] {
-webkit-appearance: textfield;
outline-offset: -2px
}
::-webkit-search-decoration {
-webkit-appearance: none
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit
}
summary {
display: list-item
}
blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre {
margin: 0
}
fieldset {
margin: 0
}
fieldset,legend {
padding: 0
}
menu,ol,ul {
list-style: none;
margin: 0;
padding: 0
}
textarea {
resize: vertical
}
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
opacity: 1;
color: #b6b0ad
}
input::-moz-placeholder, textarea::-moz-placeholder {
opacity: 1;
color: #b6b0ad
}
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
opacity: 1;
color: #b6b0ad
}
input::-ms-input-placeholder, textarea::-ms-input-placeholder {
opacity: 1;
color: #b6b0ad
}
input::placeholder,textarea::placeholder {
opacity: 1;
color: #b6b0ad
}
[role=button],button {
cursor: pointer
}
:disabled {
cursor: default
}
audio,canvas,embed,iframe,img,object,svg,video {
display: block;
vertical-align: middle
}
img,video {
max-width: 100%;
height: auto
}
@font-face {
font-family: Inter;
font-weight: 400;
font-style: normal;
font-display: swap;
src: url(/files/fonts/Inter-Regular.woff2) format("woff2"),url(/files/fonts/Inter-Regular.woff) format("woff")
}
@font-face {
font-family: Inter;
font-weight: 400;
font-style: italic;
font-display: swap;
src: url(/files/fonts/Inter-Italic.woff2) format("woff2"),url(/files/fonts/Inter-Italic.woff) format("woff")
}
@font-face {
font-family: Inter;
font-weight: 500;
font-style: normal;
font-display: swap;
src: url(/files/fonts/Inter-Medium.woff2) format("woff2"),url(/files/fonts/Inter-Medium.woff) format("woff")
}
@font-face {
font-family: Inter;
font-weight: 500;
font-style: italic;
font-display: swap;
src: url(/files/fonts/Inter-MediumItalic.woff2) format("woff2"),url(/files/fonts/Inter-MediumItalic.woff) format("woff")
}
@font-face {
font-family: Inter;
font-weight: 600;
font-style: normal;
font-display: swap;
src: url(/files/fonts/Inter-SemiBold.woff2) format("woff2"),url(/files/fonts/Inter-SemiBold.woff) format("woff")
}
@font-face {
font-family: Inter;
font-weight: 600;
font-style: italic;
font-display: swap;
src: url(/files/fonts/Inter-SemiBoldItalic.woff2) format("woff2"),url(/files/fonts/Inter-SemiBoldItalic.woff) format("woff")
}
html {
--tw-bg-opacity: 1;
background-color: rgb(255 255 255/var(--tw-bg-opacity));
font-family: Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;
font-size: .875rem;
line-height: 1.25rem;
--tw-text-opacity: 1;
color: rgb(52 52 51/var(--tw-text-opacity));
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale
}
@media (min-width: 768px) {
html {
font-size:1rem;
line-height: 1.5rem
}
}
html {
letter-spacing: -.015em;
line-height: 1.4;
text-rendering: optimizeLegibility;
scroll-behavior: smooth;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: transparent
}
body {
display: flex;
height: 100%;
flex-direction: column;
justify-content: flex-start;
font-size: 1rem;
line-height: 1.5rem
}
hr {
--tw-border-opacity: 1;
border-color: rgb(246 244 242/var(--tw-border-opacity));
border-top: 1px rgb(246 244 242/var(--tw-border-opacity));
border-style: solid
}
::-moz-selection {
background-color: rgba(97,122,255,.2)
}
::selection {
background-color: rgba(97,122,255,.2)
}
details summary {
cursor: pointer
}
mark {
border-radius: .125rem;
background-color: rgba(255,204,0,.4);
color: inherit
}
*,:after,:before {
--tw-border-spacing-x: 0;
--tw-border-spacing-y: 0;
--tw-translate-x: 0;
--tw-translate-y: 0;
--tw-rotate: 0;
--tw-skew-x: 0;
--tw-skew-y: 0;
--tw-scale-x: 1;
--tw-scale-y: 1;
--tw-pan-x: ;
--tw-pan-y: ;
--tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity;
--tw-ordinal: ;
--tw-slashed-zero: ;
--tw-numeric-figure: ;
--tw-numeric-spacing: ;
--tw-numeric-fraction: ;
--tw-ring-inset: ;
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: rgb(74 125 221/0.5);
--tw-ring-offset-shadow: 0 0 transparent;
--tw-ring-shadow: 0 0 transparent;
--tw-shadow: 0 0 transparent;
--tw-shadow-colored: 0 0 transparent;
--tw-blur: ;
--tw-brightness: ;
--tw-contrast: ;
--tw-grayscale: ;
--tw-hue-rotate: ;
--tw-invert: ;
--tw-saturate: ;
--tw-sepia: ;
--tw-drop-shadow: ;
--tw-backdrop-blur: ;
--tw-backdrop-brightness: ;
--tw-backdrop-contrast: ;
--tw-backdrop-grayscale: ;
--tw-backdrop-hue-rotate: ;
--tw-backdrop-invert: ;
--tw-backdrop-opacity: ;
--tw-backdrop-saturate: ;
--tw-backdrop-sepia:
}
::-webkit-backdrop {
--tw-border-spacing-x: 0;
--tw-border-spacing-y: 0;
--tw-translate-x: 0;
--tw-translate-y: 0;
--tw-rotate: 0;
--tw-skew-x: 0;
--tw-skew-y: 0;
--tw-scale-x: 1;
--tw-scale-y: 1;
--tw-pan-x: ;
--tw-pan-y: ;
--tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity;
--tw-ordinal: ;
--tw-slashed-zero: ;
--tw-numeric-figure: ;
--tw-numeric-spacing: ;
--tw-numeric-fraction: ;
--tw-ring-inset: ;
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: rgb(74 125 221/0.5);
--tw-ring-offset-shadow: 0 0 transparent;
--tw-ring-shadow: 0 0 transparent;
--tw-shadow: 0 0 transparent;
--tw-shadow-colored: 0 0 transparent;
--tw-blur: ;
--tw-brightness: ;
--tw-contrast: ;
--tw-grayscale: ;
--tw-hue-rotate: ;
--tw-invert: ;
--tw-saturate: ;
--tw-sepia: ;
--tw-drop-shadow: ;
--tw-backdrop-blur: ;
--tw-backdrop-brightness: ;
--tw-backdrop-contrast: ;
--tw-backdrop-grayscale: ;
--tw-backdrop-hue-rotate: ;
--tw-backdrop-invert: ;
--tw-backdrop-opacity: ;
--tw-backdrop-saturate: ;
--tw-backdrop-sepia:
}
::backdrop {
--tw-border-spacing-x: 0;
--tw-border-spacing-y: 0;
--tw-translate-x: 0;
--tw-translate-y: 0;
--tw-rotate: 0;
--tw-skew-x: 0;
--tw-skew-y: 0;
--tw-scale-x: 1;
--tw-scale-y: 1;
--tw-pan-x: ;
--tw-pan-y: ;
--tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity;
--tw-ordinal: ;
--tw-slashed-zero: ;
--tw-numeric-figure: ;
--tw-numeric-spacing: ;
--tw-numeric-fraction: ;
--tw-ring-inset: ;
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: rgb(74 125 221/0.5);
--tw-ring-offset-shadow: 0 0 transparent;
--tw-ring-shadow: 0 0 transparent;
--tw-shadow: 0 0 transparent;
--tw-shadow-colored: 0 0 transparent;
--tw-blur: ;
--tw-brightness: ;
--tw-contrast: ;
--tw-grayscale: ;
--tw-hue-rotate: ;
--tw-invert: ;
--tw-saturate: ;
--tw-sepia: ;
--tw-drop-shadow: ;
--tw-backdrop-blur: ;
--tw-backdrop-brightness: ;
--tw-backdrop-contrast: ;
--tw-backdrop-grayscale: ;
--tw-backdrop-hue-rotate: ;
--tw-backdrop-invert: ;
--tw-backdrop-opacity: ;
--tw-backdrop-saturate: ;
--tw-backdrop-sepia:
}
.icon {
pointer-events: none;
height: 1.5rem;
width: 1.5rem;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
stroke: currentColor;
stroke-width: 2;
fill: none;
stroke-linecap: round;
stroke-linejoin: round
}
.link {
--tw-text-opacity: 1;
color: rgb(74 125 221/var(--tw-text-opacity));
transition-property: color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s
}
.link:hover {
--tw-text-opacity: 1;
color: rgb(73 100 149/var(--tw-text-opacity))
}
.link-underline {
text-decoration: underline;
-webkit-text-decoration-skip: objects
}
.section-link {
display: inline-block;
font-weight: 500;
--tw-text-opacity: 1;
color: rgb(73 100 149/var(--tw-text-opacity));
transition-property: color,background-color,border-color,fill,stroke,opacity,box-shadow,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;
transition-duration: .2s;
transition-timing-function: cubic-bezier(.4,0,.2,1)
}
.section-link:hover {
--tw-text-opacity: 1;
color: rgb(42 64 103/var(--tw-text-opacity))
}
.section-link:after {
display: inline-block;
transition-property: -webkit-transform;
transition-property: transform;
transition-property: transform, -webkit-transform;
transition-duration: .2s;
transition-timing-function: cubic-bezier(.4,0,.2,1);
content: "\2192";
margin-left: .35rem
}
.section-link:hover:after {
--tw-translate-x: 0.25rem;
-webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.button {
display: inline-block;
cursor: pointer;
border-radius: .25rem;
border-width: 1px;
border-color: transparent;
text-align: center;
vertical-align: middle;
font-size: 1rem;
line-height: 1.5rem
}
.button:active {
color: currentColor
}
.button {
padding: .375rem .75rem
}
.button:focus-visible {
box-shadow: 0 0 0 .2rem rgba(0,123,255,.25);
outline: 0
}
.button-large {
padding: .5rem 1.25rem;
font-size: 1.125rem;
line-height: 1.75rem
}
.button-primary {
--tw-bg-opacity: 1;
background-color: rgb(74 125 221/var(--tw-bg-opacity));
font-weight: 500;
--tw-text-opacity: 1;
color: rgb(255 255 255/var(--tw-text-opacity));
transition-property: color,background-color,border-color,fill,stroke,opacity,box-shadow,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;
transition-duration: .15s;
transition-timing-function: cubic-bezier(.4,0,.2,1)
}
.button-primary:hover {
--tw-bg-opacity: 1;
background-color: rgb(77 120 200/var(--tw-bg-opacity))
}
.button-primary:active {
--tw-text-opacity: 1
}
.button-primary:active,.button-primary:disabled {
--tw-bg-opacity: 1;
background-color: rgb(73 100 149/var(--tw-bg-opacity));
color: rgb(255 255 255/var(--tw-text-opacity))
}
.button-primary:disabled {
--tw-text-opacity: 0.5
}
.button-border {
border-color: rgb(36 36 36/var(--tw-border-opacity));
--tw-border-opacity: 0.2;
font-weight: 500;
--tw-text-opacity: 1;
color: rgb(102 99 97/var(--tw-text-opacity));
transition-property: color,background-color,border-color,fill,stroke,opacity,box-shadow,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;
transition-duration: .15s;
transition-timing-function: cubic-bezier(.4,0,.2,1)
}
.button-border:hover {
--tw-border-opacity: 0.4;
--tw-text-opacity: 1;
color: rgb(36 36 36/var(--tw-text-opacity))
}
.button-shade {
--tw-bg-opacity: 1;
background-color: rgb(52 52 51/var(--tw-bg-opacity));
font-weight: 500;
--tw-text-opacity: 1;
color: rgb(255 255 255/var(--tw-text-opacity));
transition-property: color,background-color,border-color,fill,stroke,opacity,box-shadow,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;
transition-duration: .15s;
transition-timing-function: cubic-bezier(.4,0,.2,1)
}
.button-shade:active,.button-shade:hover {
--tw-bg-opacity: 1;
background-color: rgb(36 36 36/var(--tw-bg-opacity))
}
.button-shade:active {
--tw-text-opacity: 1;
color: rgb(255 255 255/var(--tw-text-opacity))
}
.button-shade:disabled {
--tw-bg-opacity: 1;
background-color: rgb(36 36 36/var(--tw-bg-opacity));
color: rgb(255 255 255/var(--tw-text-opacity));
--tw-text-opacity: 0.5
}
.Tooltip {
z-index: 50;
max-width: 20rem;
border-radius: .375rem;
--tw-bg-opacity: 1;
background-color: rgb(52 52 51/var(--tw-bg-opacity));
padding: .5rem .75rem;
text-align: center;
font-size: .875rem;
line-height: 1.25rem;
line-height: 1.375;
--tw-text-opacity: 1;
color: rgb(230 228 226/var(--tw-text-opacity))
}
.Tooltip p+p {
margin-top: .75rem
}
.radio {
position: relative;
display: flex;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
align-items: center;
justify-content: center;
border-width: 1px;
border-style: solid;
vertical-align: middle;
transition-property: color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s;
border-color: rgba(0,0,0,.15);
box-shadow: 0 1px 1px rgba(0,0,0,.05);
width: 18px;
height: 18px
}
.radio,.radio:after {
border-radius: 9999px;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255/var(--tw-bg-opacity))
}
.radio:after {
display: block;
height: .5rem;
width: .5rem;
--tw-scale-x: .75;
--tw-scale-y: .75;
-webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
opacity: 0;
transition-property: all;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s;
content: ""
}
.radio:enabled:checked {
--tw-bg-opacity: 1;
background-color: rgb(74 125 221/var(--tw-bg-opacity));
box-shadow: inset 0 0 4px rgba(0,0,0,.08),0 0 2px rgba(0,0,0,.08)
}
.radio:checked:after {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1)
}
input.input {
outline: 2px solid transparent;
outline-offset: 2px
}
.input {
display: block;
border-radius: .25rem;
border-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(214 210 204/var(--tw-border-opacity));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255/var(--tw-bg-opacity));
background-clip: padding-box;
padding: .25rem .75rem;
font-size: 1rem;
line-height: 1.5rem;
font-weight: 400;
line-height: 1.5;
--tw-text-opacity: 1;
color: rgb(36 36 36/var(--tw-text-opacity))
}
.input:focus {
--tw-border-opacity: 1;
border-color: rgb(74 125 221/var(--tw-border-opacity));
outline: 2px solid transparent;
outline-offset: 2px
}
.input {
height: calc(1.5em + .75rem + 2px)
}
.input:focus {
box-shadow: 0 0 0 .2rem rgba(0,123,255,.25)
}
select.select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none
}
.select {
display: block;
border-radius: .25rem;
border-width: 1px;
border-color: rgb(230 228 226/var(--tw-border-opacity));
background-clip: padding-box;
background-repeat: no-repeat;
font-size: 1rem;
line-height: 1.5rem;
font-weight: 400;
line-height: 1.5;
height: calc(1.5em + .75rem + 2px);
padding: .375rem 2.25rem .375rem .75rem;
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23666361' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
background-position: right .5rem center
}
.select,.select:focus {
--tw-border-opacity: 1;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255/var(--tw-bg-opacity));
--tw-text-opacity: 1;
color: rgb(36 36 36/var(--tw-text-opacity))
}
.select:focus {
border-color: rgb(128 189 255/var(--tw-border-opacity));
box-shadow: 0 0 0 .2rem rgba(0,123,255,.25)
}
.clamped-paragraphs p {
display: inline
}
.tweet {
border-color: #e1e8ed;
-webkit-column-break-inside: avoid;
-moz-column-break-inside: avoid;
break-inside: avoid;
page-break-inside: avoid
}
.tweet:hover {
border-color: #ccd6dd
}
.tweet-bird {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 72'%3E%3Cpath fill='none' d='M0 0h72v72H0z'/%3E%3Cpath class='icon' fill='%231da1f2' d='M68.812 15.14a26.189 26.189 0 01-7.52 2.06 13.125 13.125 0 005.757-7.243 26.133 26.133 0 01-8.314 3.176A13.066 13.066 0 0049.182 9c-7.23 0-13.092 5.86-13.092 13.093 0 1.026.118 2.02.338 2.98C25.543 24.527 15.9 19.318 9.44 11.396a13.057 13.057 0 00-1.77 6.58c0 4.543 2.312 8.552 5.824 10.9a13.05 13.05 0 01-5.93-1.64c-.002.056-.002.11-.002.163 0 6.345 4.513 11.638 10.504 12.84-1.1.298-2.256.457-3.45.457-.845 0-1.666-.078-2.464-.23 1.667 5.2 6.5 8.985 12.23 9.09a26.29 26.29 0 01-16.26 5.605c-1.055 0-2.096-.06-3.122-.184a37.036 37.036 0 0020.067 5.882c24.083 0 37.25-19.95 37.25-37.25 0-.565-.013-1.133-.038-1.693a26.61 26.61 0 006.532-6.774z'/%3E%3C/svg%3E")
}
.tweet-verified-badge {
width: 1rem;
height: 1.1111rem;
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 72'%3E%3Cpath fill='none' d='M0 0h64v72H0z'/%3E%3Cpath fill='%231da1f2' d='M3 37.315c0 4.125 2.162 7.726 5.363 9.624-.056.467-.09.937-.09 1.42 0 6.103 4.72 11.045 10.546 11.045 1.295 0 2.542-.234 3.687-.686C24.22 62.4 27.827 64.93 32 64.93c4.174 0 7.782-2.53 9.49-6.213 1.148.45 2.39.685 3.69.685 5.826 0 10.546-4.94 10.546-11.045 0-.483-.037-.953-.093-1.42C58.83 45.04 61 41.44 61 37.314c0-4.37-2.42-8.15-5.933-9.946.427-1.203.658-2.5.658-3.865 0-6.104-4.72-11.045-10.545-11.045a9.94 9.94 0 00-3.69.688C39.783 9.461 36.175 6.93 32 6.93c-4.173 0-7.778 2.53-9.492 6.216a9.973 9.973 0 00-3.688-.688c-5.827 0-10.545 4.94-10.545 11.045 0 1.364.23 2.662.656 3.864C5.42 29.163 3 32.944 3 37.314z'/%3E%3Cpath fill='%23FFF' d='M17.87 39.08l7.015 6.978a2.99 2.99 0 002.116.873 2.99 2.99 0 002.127-.883c.344-.346 15.98-15.974 15.98-15.974a3 3 0 10-4.242-4.243l-13.87 13.863-4.892-4.868a3 3 0 00-4.232 4.254z'/%3E%3C/svg%3E")
}
.tweet a {
color: #2b7bb9
}
.tweet-content {
line-height: 1.5;
--tw-text-opacity: 1;
color: rgb(71 70 69/var(--tw-text-opacity));
letter-spacing: -.005em
}
.tweet-content>img {
margin-top: .5rem;
border-radius: .25rem
}
.tweet-content p+p {
margin-top: 1rem
}
.footer-column-heading {
margin-bottom: 1.5rem;
display: none;
font-size: .75rem;
line-height: 1rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: .05em;
--tw-text-opacity: 1;
color: rgb(52 52 51/var(--tw-text-opacity))
}
@media (min-width: 768px) {
.footer-column-heading {
display:block
}
}
.footer-column-link {
--tw-text-opacity: 1;
color: rgb(102 99 97/var(--tw-text-opacity));
transition-property: color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s
}
.footer-column-link:hover {
--tw-text-opacity: 1;
color: rgb(52 52 51/var(--tw-text-opacity))
}
.docs-toc a {
display: inline-block;
padding-top: .25rem;
padding-bottom: .25rem;
--tw-text-opacity: 1;
color: rgb(102 99 97/var(--tw-text-opacity))
}
.docs-toc a:hover {
--tw-text-opacity: 1;
color: rgb(71 70 69/var(--tw-text-opacity))
}
.docs-toc ul {
line-height: 1.25
}
.permalink-icon {
margin-left: .25rem;
display: inline-block;
height: .875rem;
width: .875rem;
background-size: cover;
background-position: 50%;
background-repeat: no-repeat;
--tw-text-opacity: 1;
color: rgb(102 99 97/var(--tw-text-opacity));
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-link-2'%3E%3Cpath d='M15 7h3a5 5 0 015 5 5 5 0 01-5 5h-3m-6 0H6a5 5 0 01-5-5 5 5 0 015-5h3M8 12h8'/%3E%3C/svg%3E")
}
.PlatformBox-tabButton {
margin-right: .25rem;
cursor: pointer;
border-radius: .25rem;
border-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(230 228 226/var(--tw-border-opacity));
background-image: none;
padding: .125rem .375rem;
font-size: .875rem;
line-height: 1.25rem;
font-weight: 500;
transition-property: color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s
}
.PlatformBox-tabButton:hover:not([aria-selected]) {
--tw-border-opacity: 1;
border-color: rgb(246 244 242/var(--tw-border-opacity))
}
.PlatformBox-tabButton[aria-selected] {
cursor: default;
--tw-border-opacity: 1;
border-color: rgb(74 125 221/var(--tw-border-opacity));
--tw-bg-opacity: 1;
background-color: rgb(74 125 221/var(--tw-bg-opacity));
--tw-text-opacity: 1;
color: rgb(255 255 255/var(--tw-text-opacity))
}
.PlatformBox-tabPanel {
min-height: 3rem
}
.PlatformPicker-scroll {
scrollbar-width: none;
-ms-overflow-style: none;
-webkit-overflow-scrolling: auto
}
.PlatformPicker-scroll::-webkit-scrollbar {
display: none
}
.pricing-plan {
margin-bottom: .25rem;
display: flex;
flex-direction: column;
border-radius: .5rem;
border-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(230 228 226/var(--tw-border-opacity));
--tw-bg-opacity: 1;
background-color: rgb(255 255 255/var(--tw-bg-opacity));
padding: 2.5rem;
--tw-shadow: 0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)
}
@media (min-width: 1024px) {
.pricing-plan {
border-width:0;
padding: 0 .5rem;
--tw-shadow: 0 0 transparent;
--tw-shadow-colored: 0 0 transparent;
box-shadow: var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)
}
}
.pricing-table__row {
border-bottom-width: 1px;
--tw-border-opacity: 1;
border-color: rgb(246 244 242/var(--tw-border-opacity));
padding-top: .5rem;
padding-bottom: .5rem
}
.pricing-table__row [data-tooltip] {
cursor: help
}
.pricing-table__group {
--tw-border-opacity: 1;
border-color: rgb(246 244 242/var(--tw-border-opacity));
padding-top: 2rem;
padding-bottom: .5rem
}
.toggle-icon {
width: 1em;
height: 1em;
vertical-align: middle
}
.pricing-feature-block summary::-webkit-details-marker,.pricing-feature-block summary::marker {
display: none;
content: ""
}
.pricing-feature-block .show-open,.pricing-feature-block[open] .hide-open {
display: none
}
.pricing-feature-block[open] .show-open {
display: inline-block
}
.checkmark-list li {
position: relative;
padding-top: .25rem;
padding-bottom: .25rem;
padding-left: 1.25rem
}
.checkmark-list li:before {
position: absolute;
left: 0;
display: inline-block;
background-size: contain;
content: "";
top: .4em;
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='0.9rem' height='0.9rem' viewBox='0 0 24 24' fill='none' stroke-width='2.5' stroke-linejoin='round' stroke-linecap='round' stroke='%2341a663'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
width: .9rem;
height: .9rem
}
.checkmark-list li span[data-tooltip] {
cursor: help;
--tw-border-opacity: 1;
border-bottom: 1px;
border-color: rgb(230 228 226/var(--tw-border-opacity));
border-style: dashed
}
.checkmark-list li a {
--tw-border-opacity: 1;
border-bottom: 1px;
border-color: rgb(246 244 242/var(--tw-border-opacity));
border-style: solid;
transition-property: color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s
}
.checkmark-list li a:hover {
--tw-border-opacity: 1;
border-color: rgb(230 228 226/var(--tw-border-opacity))
}
.feature-card-small-container {
position: relative;
z-index: 10;
display: grid;
gap: 1rem
}
@media (min-width: 768px) {
.feature-card-small-container {
grid-template-columns:repeat(2,minmax(0,1fr));
gap: 1.5rem
}
}
.feature-card {
overflow: hidden;
border-radius: 1rem;
--tw-bg-opacity: 1;
background-color: rgb(255 255 255/var(--tw-bg-opacity))
}
.feature-card-large {
padding-top: 2rem
}
@media (min-width: 768px) {
.feature-card-large {
padding-top:4rem
}
}
.feature-card-small .feature-card-text-container {
padding: 2rem 1.25rem
}
@media (min-width: 768px) {
.feature-card-small .feature-card-text-container {
padding-top:3rem;
padding-bottom: 3rem
}
}
@media (min-width: 1024px) {
.feature-card-small .feature-card-text-container {
padding-left:2.5rem;
padding-right: 2.5rem
}
}
.feature-card .feature-card-heading {
margin-bottom: .25rem;
font-size: 1.5rem;
line-height: 2rem;
font-weight: 500;
letter-spacing: -.025em;
--tw-text-opacity: 1;
color: rgb(36 36 36/var(--tw-text-opacity))
}
@media (min-width: 768px) {
.feature-card .feature-card-heading {
margin-bottom:.75rem
}
}
@media (min-width: 1024px) {
.feature-card .feature-card-heading {
font-size:1.875rem;
line-height: 2.25rem
}
}
.feature-card-large .feature-card-heading {
font-size: 1.5rem;
line-height: 2rem
}
@media (min-width: 768px) {
.feature-card-large .feature-card-heading {
font-size:1.875rem;
line-height: 2.25rem
}
}
@media (min-width: 1024px) {
.feature-card-large .feature-card-heading {
font-size:2.25rem;
line-height: 2.5rem
}
}
.feature-card .feature-card-description {
line-height: 1.5rem;
--tw-text-opacity: 1;
color: rgb(71 70 69/var(--tw-text-opacity))
}
@media (min-width: 1024px) {
.feature-card .feature-card-description {
font-size:1.125rem;
line-height: 1.75rem
}
}
.floating-shape {
position: absolute;
width: 12rem
}
@media (min-width: 768px) {
.floating-shape {
width:16rem
}
}
.floating-shape-right {
top: 0;
right: 0;
margin-right: -4rem
}
@media (min-width: 768px) {
.floating-shape-right {
margin-right:-6rem
}
}
.floating-shape-left {
bottom: 0;
left: 0;
margin-left: -4rem
}
@media (min-width: 768px) {
.floating-shape-left {
margin-left:-6rem
}
}
.network-diagram-slider[data-index="0"] figure[data-index="1"],.network-diagram-slider[data-index="1"] figure[data-index="0"] {
opacity: 0
}
.network-diagram-slider[data-index="0"] figure[data-index="0"],.network-diagram-slider[data-index="1"] figure[data-index="1"] {
opacity: 1
}
.network-diagram-slider[data-index="0"] .network-diagram-slider__nav-item[data-index="0"] {
--tw-border-opacity: 1;
border-color: rgb(204 160 0/var(--tw-border-opacity))
}
.network-diagram-slider[data-index="0"] .network-diagram-slider__nav-item[data-index="0"] h4 {
--tw-text-opacity: 1;
color: rgb(204 160 0/var(--tw-text-opacity))
}
.network-diagram-slider[data-index="1"] .network-diagram-slider__nav-item[data-index="1"] {
--tw-border-opacity: 1;
border-color: rgb(202 105 64/var(--tw-border-opacity))
}
.network-diagram-slider[data-index="1"] .network-diagram-slider__nav-item[data-index="1"] h4 {
--tw-text-opacity: 1;
color: rgb(202 105 64/var(--tw-text-opacity))
}
@media (max-width: 440px) {
.dialog {
width:100%
}
.laptop {
padding-top: 14rem;
padding-bottom: 14rem
}
}
.taskbar {
max-width: 270%
}
.changelog-entry {
scroll-margin-top: 4rem
}
.changelog-filter {
border-radius: 9999px;
padding: .25rem .75rem;
text-align: center;
transition-property: color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;
transition-duration: .15s;
transition-timing-function: cubic-bezier(.4,0,.2,1)
}
@media (min-width: 768px) {
.changelog-filter {
font-size:.875rem;
line-height: 1.25rem
}
}
.changelog-filter:hover {
--tw-bg-opacity: 1;
background-color: rgb(246 244 242/var(--tw-bg-opacity))
}
.changelog-filter:after {
visibility: hidden;
display: block;
height: 0;
font-weight: 500;
content: attr(data-content)
}
.changelog-filter.active {
background-color: rgba(43,123,185,.15);
font-weight: 500;
--tw-text-opacity: 1;
color: rgb(42 64 103/var(--tw-text-opacity))
}
.pointer-events-none {
pointer-events: none
}
.visible {
visibility: visible
}
.static {
position: static
}
.fixed {
position: fixed
}
.absolute {
position: absolute
}
.relative {
position: relative
}
.sticky {
position: sticky
}
.inset-0 {
top: 0;
right: 0;
bottom: 0;
left: 0
}
.bottom-0 {
bottom: 0
}
.left-0 {
left: 0
}
.right-0 {
right: 0
}
.top-0 {
top: 0
}
.left-full {
left: 100%
}
.right-full {
right: 100%
}
.left-1\/2 {
left: 50%
}
.-top-0 {
top: 0
}
.-bottom-0 {
bottom: 0
}
.-right-4 {
right: -1rem
}
.bottom-1 {
bottom: .25rem
}
.top-8 {
top: 2rem
}
.right-4 {
right: 1rem
}
.top-6 {
top: 1.5rem
}
.left-\[-1em\] {
left: -1em
}
.top-1\/2 {
top: 50%
}
.-top-0\.5 {
top: -.125rem
}
.-bottom-16 {
bottom: -4rem
}
.-top-4 {
top: -1rem
}
.top-0\.5 {
top: .125rem
}
.-top-px {
top: -1px
}
.right-2 {
right: .5rem
}
.right-1 {
right: .25rem
}
.z-10 {
z-index: 10
}
.z-20 {
z-index: 20
}
.z-30 {
z-index: 30
}
.z-40 {
z-index: 40
}
.z-50 {
z-index: 50
}
.order-2 {
order: 2
}
.order-1 {
order: 1
}
.order-3 {
order: 3
}
.col-span-10 {
grid-column: span 10/span 10
}
.col-span-7 {
grid-column: span 7/span 7
}
.col-span-3 {
grid-column: span 3/span 3
}
.col-span-1 {
grid-column: span 1/span 1
}
.col-span-12 {
grid-column: span 12/span 12
}
.col-span-6 {
grid-column: span 6/span 6
}
.col-span-2 {
grid-column: span 2/span 2
}
.col-span-4 {
grid-column: span 4/span 4
}
.col-start-3 {
grid-column-start: 3
}
.col-start-4 {
grid-column-start: 4
}
.col-end-10 {
grid-column-end: 10
}
.row-start-4 {
grid-row-start: 4
}
.row-start-2 {
grid-row-start: 2
}
.m-4 {
margin: 1rem
}
.mx-auto {
margin-left: auto;
margin-right: auto
}
.mx-3 {
margin-left: .75rem;
margin-right: .75rem
}
.my-auto {
margin-top: auto;
margin-bottom: auto
}
.my-8 {
margin-top: 2rem;
margin-bottom: 2rem
}
.mx-2 {
margin-left: .5rem;
margin-right: .5rem
}
.my-6 {
margin-top: 1.5rem;
margin-bottom: 1.5rem
}
.my-10 {
margin-top: 2.5rem;
margin-bottom: 2.5rem
}
.my-3 {
margin-top: .75rem;
margin-bottom: .75rem
}
.mx-1 {
margin-left: .25rem;
margin-right: .25rem
}
.my-4 {
margin-top: 1rem;
margin-bottom: 1rem
}
.-mt-4 {
margin-top: -1rem
}
.mt-4 {
margin-top: 1rem
}
.mb-20 {
margin-bottom: 5rem
}
.mb-4 {
margin-bottom: 1rem
}
.mb-6 {
margin-bottom: 1.5rem
}
.mb-3 {
margin-bottom: .75rem
}
.ml-4 {
margin-left: 1rem
}
.ml-10 {
margin-left: 2.5rem
}
.mb-10 {
margin-bottom: 2.5rem
}
.mb-2 {
margin-bottom: .5rem
}
.mt-2 {
margin-top: .5rem
}
.mr-1 {
margin-right: .25rem
}
.mr-2 {
margin-right: .5rem
}
.mb-12 {
margin-bottom: 3rem
}
.-mb-16 {
margin-bottom: -4rem
}
.mb-5 {
margin-bottom: 1.25rem
}
.mb-1 {
margin-bottom: .25rem
}
.mb-8 {
margin-bottom: 2rem
}
.mr-3 {
margin-right: .75rem
}
.mt-6 {
margin-top: 1.5rem
}
.mt-12 {
margin-top: 3rem
}
.mt-24 {
margin-top: 6rem
}
.mb-24 {
margin-bottom: 6rem
}
.mt-8 {
margin-top: 2rem
}
.-ml-1 {
margin-left: -.25rem
}
.mr-8 {
margin-right: 2rem
}
.-mt-3 {
margin-top: -.75rem
}
.mb-16 {
margin-bottom: 4rem
}
.-ml-16 {
margin-left: -4rem
}
.mt-14 {
margin-top: 3.5rem
}
.-mr-16 {
margin-right: -4rem
}
.mt-auto {
margin-top: auto
}
.ml-auto {
margin-left: auto
}
.mr-auto {
margin-right: auto
}
.mt-20 {
margin-top: 5rem
}
.-mt-28 {
margin-top: -7rem
}
.-mb-12 {
margin-bottom: -3rem
}
.-mt-32 {
margin-top: -8rem
}
.-mb-24 {
margin-bottom: -6rem
}
.-mt-36 {
margin-top: -9rem
}
.-mb-20 {
margin-bottom: -5rem
}
.-mb-32 {
margin-bottom: -8rem
}
.mt-3 {
margin-top: .75rem
}
.-mt-12 {
margin-top: -3rem
}
.-mb-36 {
margin-bottom: -9rem
}
.mr-6 {
margin-right: 1.5rem
}
.\!mt-0 {
margin-top: 0!important
}
.mt-1 {
margin-top: .25rem
}
.mt-5 {
margin-top: 1.25rem
}
.ml-2 {
margin-left: .5rem
}
.\!mt-10 {
margin-top: 2.5rem!important
}
.-ml-2 {
margin-left: -.5rem
}
.mt-0\.5 {
margin-top: .125rem
}
.mt-0 {
margin-top: 0
}
.ml-px {
margin-left: 1px
}
.mr-5 {
margin-right: 1.25rem
}
.ml-1 {
margin-left: .25rem
}
.-mr-2 {
margin-right: -.5rem
}
.mr-4 {
margin-right: 1rem
}
.mr-10 {
margin-right: 2.5rem
}
.mb-7 {
margin-bottom: 1.75rem
}
.block {
display: block
}
.inline-block {
display: inline-block
}
.inline {
display: inline
}
.flex {
display: flex
}
.inline-flex {
display: inline-flex
}
.table {
display: table
}
.grid {
display: grid
}
.contents {
display: contents
}
.hidden {
display: none
}
.h-auto {
height: auto
}
.h-8 {
height: 2rem
}
.h-5 {
height: 1.25rem
}
.h-10 {
height: 2.5rem
}
.h-4 {
height: 1rem
}
.h-20 {
height: 5rem
}
.h-28 {
height: 7rem
}
.h-12 {
height: 3rem
}
.h-16 {
height: 4rem
}
.h-full {
height: 100%
}
.h-11 {
height: 2.75rem
}
.h-\[0\.9em\] {
height: .9em
}
.h-14 {
height: 3.5rem
}
.h-6 {
height: 1.5rem
}
.h-\[1\.4em\] {
height: 1.4em
}
.h-\[1\.2em\] {
height: 1.2em
}
.h-\[1\.5em\] {
height: 1.5em
}
.h-\[1\.3em\] {
height: 1.3em
}
.h-40 {
height: 10rem
}
.h-32 {
height: 8rem
}
.max-h-full {
max-height: 100%
}
.max-h-8 {
max-height: 2rem
}
.w-28 {
width: 7rem
}
.w-24 {
width: 6rem
}
.w-32 {
width: 8rem
}
.w-full {
width: 100%
}
.w-56 {
width: 14rem
}
.w-3\/4 {
width: 75%
}
.w-8 {
width: 2rem
}
.w-5 {
width: 1.25rem
}
.w-3\/12 {
width: 25%
}
.w-10 {
width: 2.5rem
}
.w-9 {
width: 2.25rem
}
.w-12 {
width: 3rem
}
.w-11\/12 {
width: 91.666667%
}
.w-20 {
width: 5rem
}
.w-48 {
width: 12rem
}
.w-auto {
width: auto
}
.w-max {
width: -webkit-max-content;
width: -moz-max-content;
width: max-content
}
.w-11 {
width: 2.75rem
}
.w-\[0\.9em\] {
width: .9em
}
.w-1\/2 {
width: 50%
}
.w-14 {
width: 3.5rem
}
.w-6 {
width: 1.5rem
}
.w-4 {
width: 1rem
}
.w-\[1\.4em\] {
width: 1.4em
}
.w-\[1\.2em\] {
width: 1.2em
}
.w-\[1\.5em\] {
width: 1.5em
}
.w-\[1\.3em\] {
width: 1.3em
}
.w-16 {
width: 4rem
}
.w-72 {
width: 18rem
}
.w-80 {
width: 20rem
}
.min-w-0 {
min-width: 0
}
.max-w-lg {
max-width: 32rem
}
.max-w-2xl {
max-width: 42rem
}
.max-w-md {
max-width: 28rem
}
.max-w-xl {
max-width: 36rem
}
.max-w-none {
max-width: none
}
.max-w-3xl {
max-width: 48rem
}
.max-w-xs {
max-width: 20rem
}
.max-w-screen-2xl {
max-width: 1536px
}
.max-w-full {
max-width: 100%
}
.max-w-4xl {
max-width: 56rem
}
.max-w-5xl {
max-width: 64rem
}
.max-w-7xl {
max-width: 80rem
}
.max-w-sm {
max-width: 24rem
}
.max-w-prose {
max-width: 65ch
}
.max-w-\[10rem\] {
max-width: 10rem
}
.max-w-\[18rem\] {
max-width: 18rem
}
.flex-1 {
flex: 1 1 0%
}
.flex-auto {
flex: 1 1 auto
}
.flex-shrink-0,.shrink-0 {
flex-shrink: 0
}
.flex-grow {
flex-grow: 1
}
.border-collapse {
border-collapse: collapse
}
.translate-y-1\/2 {
--tw-translate-y: 50%
}
.translate-y-1\/2,.translate-y-full {
-webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.translate-y-full {
--tw-translate-y: 100%
}
.-translate-x-1\/2 {
--tw-translate-x: -50%
}
.-translate-x-1\/2,.-translate-x-5 {
-webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.-translate-x-5 {
--tw-translate-x: -1.25rem
}
.-translate-y-1\/2 {
--tw-translate-y: -50%
}
.-translate-y-1\/2,.-translate-y-full {
-webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.-translate-y-full {
--tw-translate-y: -100%
}
.transform {
-webkit-transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.cursor-pointer {
cursor: pointer
}
.select-none {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none
}
.resize {
resize: both
}
.scroll-m-16 {
scroll-margin: 4rem
}
.list-disc {
list-style-type: disc
}
.appearance-none {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none
}
.grid-cols-2 {
grid-template-columns: repeat(2,minmax(0,1fr))
}
.grid-cols-10 {
grid-template-columns: repeat(10,minmax(0,1fr))
}
.grid-cols-3 {
grid-template-columns: repeat(3,minmax(0,1fr))
}
.grid-cols-12 {
grid-template-columns: repeat(12,minmax(0,1fr))
}
.flex-row-reverse {
flex-direction: row-reverse
}
.flex-col {
flex-direction: column
}
.flex-wrap {
flex-wrap: wrap
}
.items-start {
align-items: flex-start
}
.items-center {
align-items: center
}
.items-baseline {
align-items: baseline
}
.justify-center {
justify-content: center
}
.justify-between {
justify-content: space-between
}
.gap-4 {
gap: 1rem
}
.gap-6 {
gap: 1.5rem
}
.gap-12 {
gap: 3rem
}
.gap-16 {
gap: 4rem
}
.gap-0 {
gap: 0
}
.gap-8 {
gap: 2rem
}
.gap-1 {
gap: .25rem
}
.gap-y-8 {
row-gap: 2rem
}
.gap-x-4 {
-webkit-column-gap: 1rem;
-moz-column-gap: 1rem;
column-gap: 1rem
}
.gap-x-16 {
-webkit-column-gap: 4rem;
-moz-column-gap: 4rem;
column-gap: 4rem
}
.gap-y-10 {
row-gap: 2.5rem
}
.gap-x-8 {
-webkit-column-gap: 2rem;
-moz-column-gap: 2rem;
column-gap: 2rem
}
.gap-y-2 {
row-gap: .5rem
}
.gap-x-10 {
-webkit-column-gap: 2.5rem;
-moz-column-gap: 2.5rem;
column-gap: 2.5rem
}
.space-x-6>:not([hidden])~:not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(1.5rem*var(--tw-space-x-reverse));
margin-left: calc(1.5rem*(1 - var(--tw-space-x-reverse)))
}
.space-x-2>:not([hidden])~:not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(0.5rem*var(--tw-space-x-reverse));
margin-left: calc(0.5rem*(1 - var(--tw-space-x-reverse)))
}
.space-y-8>:not([hidden])~:not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(2rem*(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(2rem*var(--tw-space-y-reverse))
}
.space-x-4>:not([hidden])~:not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(1rem*var(--tw-space-x-reverse));
margin-left: calc(1rem*(1 - var(--tw-space-x-reverse)))
}
.space-y-4>:not([hidden])~:not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(1rem*(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(1rem*var(--tw-space-y-reverse))
}
.space-y-3>:not([hidden])~:not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(0.75rem*(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(0.75rem*var(--tw-space-y-reverse))
}
.space-x-3>:not([hidden])~:not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(0.75rem*var(--tw-space-x-reverse));
margin-left: calc(0.75rem*(1 - var(--tw-space-x-reverse)))
}
.divide-y>:not([hidden])~:not([hidden]) {
--tw-divide-y-reverse: 0;
border-top-width: calc(1px*(1 - var(--tw-divide-y-reverse)));
border-bottom-width: calc(1px*var(--tw-divide-y-reverse))
}
.self-start {
align-self: flex-start
}
.self-center {
align-self: center
}
.overflow-hidden {
overflow: hidden
}
.overflow-scroll {
overflow: scroll
}
.overflow-y-auto {
overflow-y: auto
}
.overflow-x-hidden {
overflow-x: hidden
}
.overflow-y-hidden {
overflow-y: hidden
}
.overflow-x-scroll {
overflow-x: scroll
}
.overflow-y-scroll {
overflow-y: scroll
}
.overscroll-contain {
-ms-scroll-chaining: none;
overscroll-behavior: contain
}
.truncate {
overflow: hidden;
text-overflow: ellipsis
}
.truncate,.whitespace-nowrap {
white-space: nowrap
}
.break-normal {
overflow-wrap: normal;
word-break: normal
}
.rounded-full {
border-radius: 9999px
}
.rounded {
border-radius: .25rem
}
.rounded-lg {
border-radius: .5rem
}
.rounded-xl {
border-radius: .75rem
}
.rounded-md {
border-radius: .375rem
}
.rounded-tr-3xl {
border-top-right-radius: 1.5rem
}
.rounded-tr-2xl {
border-top-right-radius: 1rem
}
.border {
border-width: 1px
}
.border-t-2 {
border-top-width: 2px
}
.border-b {
border-bottom-width: 1px
}
.border-t {
border-top-width: 1px
}
.border-solid {
border-style: solid
}
.border-none {
border-style: none
}
.border-gray-200 {
--tw-border-opacity: 1;
border-color: rgb(230 228 226/var(--tw-border-opacity))
}
.border-gray-100 {
--tw-border-opacity: 1;
border-color: rgb(246 244 242/var(--tw-border-opacity))
}
.border-gray-300 {
--tw-border-opacity: 1;
border-color: rgb(214 210 204/var(--tw-border-opacity))
}
.bg-gray-100 {
--tw-bg-opacity: 1;
background-color: rgb(246 244 242/var(--tw-bg-opacity))
}
.bg-gray-200 {
--tw-bg-opacity: 1;
background-color: rgb(230 228 226/var(--tw-bg-opacity))
}
.bg-gray-900 {
--tw-bg-opacity: 1;
background-color: rgb(36 36 36/var(--tw-bg-opacity))
}
.bg-gray-300 {
--tw-bg-opacity: 1;
background-color: rgb(214 210 204/var(--tw-bg-opacity))
}
.bg-white {
--tw-bg-opacity: 1;
background-color: rgb(255 255 255/var(--tw-bg-opacity))
}
.bg-gray-500 {
--tw-bg-opacity: 1;
background-color: rgb(159 153 149/var(--tw-bg-opacity))
}
.bg-green-700 {
--tw-bg-opacity: 1;
background-color: rgb(72 121 97/var(--tw-bg-opacity))
}
.bg-gray-700 {
--tw-bg-opacity: 1;
background-color: rgb(71 70 69/var(--tw-bg-opacity))
}
.bg-blue-100 {
background-color: rgba(220,233,242,.6)
}
.bg-gray-50 {
--tw-bg-opacity: 1;
background-color: rgb(250 249 248/var(--tw-bg-opacity))
}
.bg-gray-900\/20 {
background-color: rgb(36 36 36/.2)
}
.bg-blue-50 {
background-color: rgba(228,233,240,.15)
}
.bg-yellow-50 {
--tw-bg-opacity: 1;
background-color: rgb(248 229 185/var(--tw-bg-opacity))
}
.bg-blue-200 {
background-color: rgba(43,123,185,.15)
}
.bg-red-400 {
--tw-bg-opacity: 1;
background-color: rgb(198 88 53/var(--tw-bg-opacity))
}
.bg-transparent {
background-color: transparent
}
.bg-opacity-10 {
--tw-bg-opacity: 0.1
}
.bg-opacity-20 {
--tw-bg-opacity: 0.2
}
.bg-gradient-to-b {
background-image: linear-gradient(180deg,var(--tw-gradient-stops))
}
.bg-gradient-to-t {
background-image: linear-gradient(0deg,var(--tw-gradient-stops))
}
.bg-none {
background-image: none
}
.from-white {
--tw-gradient-from: #fff;
--tw-gradient-to: rgb(255 255 255/0);
--tw-gradient-stops: var(--tw-gradient-from),var(--tw-gradient-to)
}
.bg-cover {
background-size: cover
}
.bg-center {
background-position: 50%
}
.bg-no-repeat {
background-repeat: no-repeat
}
.fill-gray-300 {
fill: #d6d2cc
}
.stroke-current {
stroke: currentColor
}
.stroke-gray-500 {
stroke: #9f9995
}
.stroke-blue-500 {
stroke: #4a7ddd
}
.stroke-2 {
stroke-width: 2
}
.object-contain {
-o-object-fit: contain;
object-fit: contain
}
.object-cover {
-o-object-fit: cover;
object-fit: cover
}
.object-left-top {
-o-object-position: left top;
object-position: left top
}
.object-center {
-o-object-position: center;
object-position: center
}
.p-6 {
padding: 1.5rem
}
.p-5 {
padding: 1.25rem
}
.p-4 {
padding: 1rem
}
.p-12 {
padding: 3rem
}
.p-2 {
padding: .5rem
}
.p-8 {
padding: 2rem
}
.p-1 {
padding: .25rem
}
.py-14 {
padding-top: 3.5rem;
padding-bottom: 3.5rem
}
.py-12 {
padding-top: 3rem;
padding-bottom: 3rem
}
.px-4 {
padding-left: 1rem;
padding-right: 1rem
}
.py-3 {
padding-top: .75rem;
padding-bottom: .75rem
}
.px-6 {
padding-left: 1.5rem;
padding-right: 1.5rem
}
.px-3 {
padding-left: .75rem;
padding-right: .75rem
}
.py-64 {
padding-top: 16rem;
padding-bottom: 16rem
}
.py-20 {
padding-top: 5rem;
padding-bottom: 5rem
}
.py-16 {
padding-top: 4rem;
padding-bottom: 4rem
}
.py-2 {
padding-top: .5rem;
padding-bottom: .5rem
}
.py-1 {
padding-top: .25rem;
padding-bottom: .25rem
}
.py-4 {
padding-top: 1rem;
padding-bottom: 1rem
}
.py-6 {
padding-top: 1.5rem;
padding-bottom: 1.5rem
}
.px-5 {
padding-left: 1.25rem;
padding-right: 1.25rem
}
.py-8 {
padding-top: 2rem;
padding-bottom: 2rem
}
.py-24 {
padding-top: 6rem;
padding-bottom: 6rem
}
.px-8 {
padding-left: 2rem;
padding-right: 2rem
}
.py-10 {
padding-top: 2.5rem;
padding-bottom: 2.5rem
}
.px-2 {
padding-left: .5rem;
padding-right: .5rem
}
.py-0\.5 {
padding-top: .125rem;
padding-bottom: .125rem
}
.px-1 {
padding-left: .25rem;
padding-right: .25rem
}
.py-0 {
padding-top: 0;
padding-bottom: 0
}
.px-1\.5 {
padding-left: .375rem;
padding-right: .375rem
}
.py-5 {
padding-top: 1.25rem;
padding-bottom: 1.25rem
}
.pt-16 {
padding-top: 4rem
}
.pt-4 {
padding-top: 1rem
}
.pb-12 {
padding-bottom: 3rem
}
.pt-6 {
padding-top: 1.5rem
}
.pb-4 {
padding-bottom: 1rem
}
.pr-6 {
padding-right: 1.5rem
}
.pt-5 {
padding-top: 1.25rem
}
.pr-5 {
padding-right: 1.25rem
}
.pl-4 {
padding-left: 1rem
}
.pl-12 {
padding-left: 3rem
}
.pb-16 {
padding-bottom: 4rem
}
.pt-2 {
padding-top: .5rem
}
.pt-12 {
padding-top: 3rem
}
.pl-0 {
padding-left: 0
}
.pt-24 {
padding-top: 6rem
}
.pb-6 {
padding-bottom: 1.5rem
}
.pb-20 {
padding-bottom: 5rem
}
.pb-10 {
padding-bottom: 2.5rem
}
.pt-0\.5 {
padding-top: .125rem
}
.pt-0 {
padding-top: 0
}
.pr-24 {
padding-right: 6rem
}
.pl-24 {
padding-left: 6rem
}
.pt-20 {
padding-top: 5rem
}
.pb-8 {
padding-bottom: 2rem
}
.pt-14 {
padding-top: 3.5rem
}
.pl-6 {
padding-left: 1.5rem
}
.pb-14 {
padding-bottom: 3.5rem
}
.pb-1 {
padding-bottom: .25rem
}
.pb-3 {
padding-bottom: .75rem
}
.pr-3 {
padding-right: .75rem
}
.pb-24 {
padding-bottom: 6rem
}
.pl-2 {
padding-left: .5rem
}
.pl-5 {
padding-left: 1.25rem
}
.pl-8 {
padding-left: 2rem
}
.pl-11 {
padding-left: 2.75rem
}
.pt-8 {
padding-top: 2rem
}
.pl-1 {
padding-left: .25rem
}
.pr-4 {
padding-right: 1rem
}
.pb-5 {
padding-bottom: 1.25rem
}
.pt-3 {
padding-top: .75rem
}
.pb-2 {
padding-bottom: .5rem
}
.text-left {
text-align: left
}
.text-center {
text-align: center
}
.text-right {
text-align: right
}
.align-top {
vertical-align: top
}
.align-middle {
vertical-align: middle
}
.align-text-top {
vertical-align: text-top
}
.text-2xl {
font-size: 1.5rem;
line-height: 2rem
}
.text-lg {
font-size: 1.125rem;
line-height: 1.75rem
}
.text-4xl {
font-size: 2.25rem;
line-height: 2.5rem
}
.text-xs {
font-size: .75rem;
line-height: 1rem
}
.text-sm {
font-size: .875rem;
line-height: 1.25rem
}
.text-xl {
font-size: 1.25rem;
line-height: 1.75rem
}
.text-5xl {
font-size: 3rem;
line-height: 1
}
.text-base {
font-size: 1rem;
line-height: 1.5rem
}
.text-3xl {
font-size: 1.875rem;
line-height: 2.25rem
}
.\!text-xl {
font-size: 1.25rem!important;
line-height: 1.75rem!important
}
.text-tiny {
font-size: .7rem
}
.\!text-4xl {
font-size: 2.25rem!important;
line-height: 2.5rem!important
}
.font-medium {
font-weight: 500
}
.font-semibold {
font-weight: 600
}
.font-normal {
font-weight: 400
}
.font-bold {
font-weight: 700
}
.uppercase {
text-transform: uppercase
}
.capitalize {
text-transform: capitalize
}
.not-italic {
font-style: normal
}
.leading-6 {
line-height: 1.5rem
}
.leading-snug {
line-height: 1.375
}
.leading-tight {
line-height: 1.25
}
.leading-relaxed {
line-height: 1.625
}
.leading-none {
line-height: 1
}
.leading-5 {
line-height: 1.25rem
}
.leading-normal {
line-height: 1.5
}
.leading-4 {
line-height: 1rem
}
.tracking-tight {
letter-spacing: -.025em
}
.tracking-wide {
letter-spacing: .025em
}
.tracking-tighter {
letter-spacing: -.05em
}
.tracking-\[-0\.03em\] {
letter-spacing: -.03em
}
.tracking-wider {
letter-spacing: .05em
}
.text-gray-900 {
--tw-text-opacity: 1;
color: rgb(36 36 36/var(--tw-text-opacity))
}
.text-gray-700 {
--tw-text-opacity: 1;
color: rgb(71 70 69/var(--tw-text-opacity))
}
.text-gray-500 {
--tw-text-opacity: 1;
color: rgb(159 153 149/var(--tw-text-opacity))
}
.text-gray-600 {
--tw-text-opacity: 1;
color: rgb(102 99 97/var(--tw-text-opacity))
}
.text-gray-800 {
--tw-text-opacity: 1;
color: rgb(52 52 51/var(--tw-text-opacity))
}
.text-gray-100 {
--tw-text-opacity: 1;
color: rgb(246 244 242/var(--tw-text-opacity))
}
.text-white {
--tw-text-opacity: 1;
color: rgb(255 255 255/var(--tw-text-opacity))
}
.text-gray-400 {
--tw-text-opacity: 1;
color: rgb(182 176 173/var(--tw-text-opacity))
}
.text-blue-500 {
--tw-text-opacity: 1;
color: rgb(74 125 221/var(--tw-text-opacity))
}
.text-gray-50 {
--tw-text-opacity: 1;
color: rgb(250 249 248/var(--tw-text-opacity))
}
.text-blue-800 {
--tw-text-opacity: 1;
color: rgb(42 64 103/var(--tw-text-opacity))
}
.text-blue-700 {
--tw-text-opacity: 1;
color: rgb(73 100 149/var(--tw-text-opacity))
}
.text-green-700 {
--tw-text-opacity: 1;
color: rgb(72 121 97/var(--tw-text-opacity))
}
.text-yellow-700 {
--tw-text-opacity: 1;
color: rgb(204 160 0/var(--tw-text-opacity))
}
.text-orange-700 {
--tw-text-opacity: 1;
color: rgb(198 88 53/var(--tw-text-opacity))
}
.text-gray-600\/80 {
color: rgb(102 99 97/.8)
}
.text-gray-300 {
--tw-text-opacity: 1;
color: rgb(214 210 204/var(--tw-text-opacity))
}
.text-green-500 {
--tw-text-opacity: 1;
color: rgb(65 166 99/var(--tw-text-opacity))
}
.text-yellow-600 {
--tw-text-opacity: 1;
color: rgb(118 43 11/var(--tw-text-opacity))
}
.text-red-400 {
--tw-text-opacity: 1;
color: rgb(198 88 53/var(--tw-text-opacity))
}
.underline {
-webkit-text-decoration-line: underline;
text-decoration-line: underline
}
.opacity-80 {
opacity: .8
}
.opacity-90 {
opacity: .9
}
.opacity-60 {
opacity: .6
}
.opacity-0 {
opacity: 0
}
.shadow-md {
--tw-shadow: 0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);
--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)
}
.shadow-md,.shadow-xl {
box-shadow: var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)
}
.shadow-xl {
--tw-shadow: 0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);
--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)
}
.shadow {
--tw-shadow: 0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);
--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)
}
.shadow,.shadow-lg {
box-shadow: var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)
}
.shadow-lg {
--tw-shadow: 0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)
}
.shadow-2xl {
--tw-shadow: 0 25px 50px -12px rgb(0 0 0/0.25);
--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)
}
.outline-none {
outline: 2px solid transparent;
outline-offset: 2px
}
.grayscale {
--tw-grayscale: grayscale(100%)
}
.filter,.grayscale {
-webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
}
.transition-opacity {
transition-property: opacity;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s
}
.transition-colors {
transition-property: color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s
}
.transition {
transition-property: color,background-color,border-color,fill,stroke,opacity,box-shadow,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;
transition-property: color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s
}
.transition-shadow {
transition-property: box-shadow;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s
}
.transition-all {
transition-property: all;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s
}
.transition-transform {
transition-property: -webkit-transform;
transition-property: transform;
transition-property: transform, -webkit-transform;
transition-timing-function: cubic-bezier(.4,0,.2,1);
transition-duration: .15s
}
.duration-300 {
transition-duration: .3s
}
.duration-150 {
transition-duration: .15s
}
.duration-200 {
transition-duration: .2s
}
.\!duration-0 {
transition-duration: 1ms!important
}
.ease-in-out {
transition-timing-function: cubic-bezier(.4,0,.2,1)
}
.line-clamp-6 {
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 6
}
.image-pixelated {
-ms-interpolation-mode: nearest-neighbor;
image-rendering: -webkit-optimize-contrast;
image-rendering: -moz-crisp-edges;
image-rendering: pixelated
}
.fill-none {
fill: none
}
.stroke-round {
stroke-linecap: round;
stroke-linejoin: round
}
.stretched-link:before {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
content: ""
}
.ff-numeric-alt {
-webkit-font-feature-settings: "ss01","cv01";
font-feature-settings: "ss01","cv01"
}
.f-title {
font-size: 1.875rem;
line-height: 2.25rem;
font-weight: 500;
line-height: 1.25;
letter-spacing: -.05em;
--tw-text-opacity: 1;
color: rgb(36 36 36/var(--tw-text-opacity))
}
@media (min-width: 768px) {
.f-title {
font-size:2.25rem;
line-height: 2.5rem
}
}
.f-articleTitle {
font-size: 1.875rem;
line-height: 2.25rem;
font-weight: 500;
line-height: 1.25;
letter-spacing: -.025em
}
@media (min-width: 640px) {
.f-articleTitle {
font-size:2.25rem;
line-height: 2.5rem
}
}
.f-subheader {
font-size: 1.25rem;
line-height: 1.75rem;
font-weight: 500;
line-height: 1.25;
letter-spacing: -.025em
}
@media (min-width: 768px) {
.f-subheader {
font-size:1.875rem;
line-height: 2.25rem
}
}
.container {
margin-left: auto;
margin-right: auto;
width: 100%;
max-width: 72rem;
padding-left: 1rem;
padding-right: 1rem
}
@media (min-width: 640px) {