diff --git a/bin/version-assets.js b/bin/version-assets.js index e8c13862..69136eed 100755 --- a/bin/version-assets.js +++ b/bin/version-assets.js @@ -11,8 +11,8 @@ var pageContents = fs.readFileSync(page, 'utf8') fs.renameSync(page, 'server/page-debug.js') var prod = pageContents - .replace(/public\/css\/app.css/gmi, 'public/css/app.min.css') - .replace(/public\/js\/app.js/gmi, 'public/js/app.min.js') + .replace(/public\/css\/app.css/gmi, 'public/css/app.min.css') + .replace(/public\/js\/app.js/gmi, 'public/js/app.min.js') fs.writeFileSync(page, prod, 'utf8') // version `app.min.js` and `main.min.js` by appending md5 hash to filename diff --git a/client/js/api.js b/client/js/api.js index ea2cdc30..5c47f0d1 100644 --- a/client/js/api.js +++ b/client/js/api.js @@ -2,7 +2,6 @@ var api = require('dat-registry') module.exports = function () { if (!module.parent) { - return api({server: window.location.origin, apiPath: '/api/v1'}) + return api({ server: window.location.origin, apiPath: '/api/v1' }) } - return } diff --git a/client/js/app.js b/client/js/app.js index 8172e30a..fadf2692 100644 --- a/client/js/app.js +++ b/client/js/app.js @@ -1,15 +1,14 @@ const choo = require('choo') const persist = require('choo-persist') -const logger = require('choo-log') const css = require('sheetify') const defaults = require('./models/defaults') const app = choo() // define models: var key = module.parent ? '' : window.location.origin -app.use(persist({name: 'choo-hypertracker' + key})) +app.use(persist({ name: 'choo-hypertracker' + key })) if (process.env.NODE_ENV !== 'production') { - app.use(logger()) + app.use(require('choo-devtools')()) } app.use(require('./defaults')(defaults)) app.use(require('./models/archive')) diff --git a/client/js/components/auth/login.js b/client/js/components/auth/login.js index 201cdd52..f1c46ea1 100644 --- a/client/js/components/auth/login.js +++ b/client/js/components/auth/login.js @@ -20,7 +20,6 @@ const login = (state, emit) => { } ` - return html`

Log In

diff --git a/client/js/components/header.js b/client/js/components/header.js index 8cf584bf..4bbca0f6 100644 --- a/client/js/components/header.js +++ b/client/js/components/header.js @@ -28,10 +28,10 @@ module.exports = function (state, emit) { Dat Logo - datBase + datDirectory ${importButton(emit)} Docs - Chat + Home
${state.township.email ? html`Publish` : ''} diff --git a/client/js/components/health.js b/client/js/components/health.js index 14c1873e..521817c3 100644 --- a/client/js/components/health.js +++ b/client/js/components/health.js @@ -48,9 +48,9 @@ module.exports = function hyperhealth (state, emit) {
${data.peers.map((peer, i) => { - const prog = (peer.have * 100) / peer.length - if (!prog) return circle(prog) - })} + const prog = (peer.have * 100) / peer.length + if (!prog) return circle(prog) + })}
` diff --git a/client/js/components/help.js b/client/js/components/help.js index 31c81463..b9eb67e1 100644 --- a/client/js/components/help.js +++ b/client/js/components/help.js @@ -6,10 +6,10 @@ module.exports = (state, emit) => { const intro = () => emit('help:show') return html` ${button({ - icon: '/public/img/question.svg', - text: 'Help', - klass: 'btn btn--green btn__reveal-text dat-button--help', - click: intro - })} + icon: '/public/img/question.svg', + text: 'Help', + klass: 'btn btn--green btn__reveal-text dat-button--help', + click: intro + })} ` } diff --git a/client/js/components/hyperdrive/index.js b/client/js/components/hyperdrive/index.js index e33d8896..7f6e2f0f 100644 --- a/client/js/components/hyperdrive/index.js +++ b/client/js/components/hyperdrive/index.js @@ -23,7 +23,7 @@ module.exports = function (state, emit) { } } } - emit('archive:update', {updatedAt: updated}) + emit('archive:update', { updatedAt: updated }) var vals = Object.keys(lookup).map(key => lookup[key]) var onclick = (ev, entry) => { if (entry.type === 'directory') { @@ -31,7 +31,7 @@ module.exports = function (state, emit) { return true } else { entry.archiveKey = state.archive.key - emit('preview:file', {entry: entry}, noop) + emit('preview:file', { entry: entry }, noop) return false } } diff --git a/client/js/components/import-queue.js b/client/js/components/import-queue.js index 96cb2dbf..05a4e63d 100644 --- a/client/js/components/import-queue.js +++ b/client/js/components/import-queue.js @@ -12,8 +12,8 @@ module.exports = (state, emit) => { return html` ${writing ? renderLi(writing, writingProgressPct) : null} ${next.map(function (file) { - return renderLi(file, null) - })} + return renderLi(file, null) + })}
` } else { return html`
` diff --git a/client/js/components/login-button.js b/client/js/components/login-button.js index 0a071a2e..3d33c168 100644 --- a/client/js/components/login-button.js +++ b/client/js/components/login-button.js @@ -19,22 +19,25 @@ var avatarStyles = css` ` module.exports = function (state, emit) { + if (state) return html`` // always true + // Hide login button + // if (module.parent || !state.township.whoami) return html`` if (state.township.email) { return html` ${button({ - text: gravatar({email: state.township.email}, {}, avatarStyles), - click: () => emit('township:sidePanel'), - klass: 'btn bn pr0' - })} + text: gravatar({ email: state.township.email }, {}, avatarStyles), + click: () => emit('township:sidePanel'), + klass: 'btn bn pr0' + })} ` } else { return html` ${button({ - text: 'Log In', - click: function () { window.location.href = '/login' }, - klass: 'btn btn--full btn--green' - })} + text: 'Log In', + click: function () { window.location.href = '/login' }, + klass: 'btn btn--full btn--green' + })} ` } } diff --git a/client/js/elements/404/index.js b/client/js/elements/404/index.js index 04c93689..93ea881a 100644 --- a/client/js/elements/404/index.js +++ b/client/js/elements/404/index.js @@ -18,11 +18,11 @@ module.exports = function (props) { } var icon if (props.icon) { - icon = datIcon(props.icon, {class: 'w3'}) + icon = datIcon(props.icon, { class: 'w3' }) } if (props.icon === 'loader') { icon = loaderIcon() } else { - icon = datIcon('sad-dat', {class: 'w3 color-green'}) + icon = datIcon('sad-dat', { class: 'w3 color-green' }) } return html` diff --git a/client/js/elements/footer/index.js b/client/js/elements/footer/index.js index 901e940c..abcf1e3d 100644 --- a/client/js/elements/footer/index.js +++ b/client/js/elements/footer/index.js @@ -1,20 +1,10 @@ const html = require('choo/html') -const css = require('sheetify') module.exports = function () { return html` diff --git a/client/js/elements/gravatar/index.js b/client/js/elements/gravatar/index.js index b71c6290..d21a0ea4 100644 --- a/client/js/elements/gravatar/index.js +++ b/client/js/elements/gravatar/index.js @@ -6,7 +6,7 @@ module.exports = function (user, opts, cls) { if (!user || !user.email) return html`` if (!opts) opts = {} if (!cls) cls = '' - var _opts = xtend({s: '200', r: 'pg', d: 'retro'}, opts) + var _opts = xtend({ s: '200', r: 'pg', d: 'retro' }, opts) var url = gravatar.url(user.email, _opts) return html` diff --git a/client/js/elements/home-section/index.js b/client/js/elements/home-section/index.js index bec354cc..27300bc3 100644 --- a/client/js/elements/home-section/index.js +++ b/client/js/elements/home-section/index.js @@ -49,8 +49,8 @@ module.exports = function (props) {
${props.sections.map((section) => { - return textSection(section) - })} + return textSection(section) + })}
${cta()} diff --git a/client/js/elements/icon/index.js b/client/js/elements/icon/index.js index 1ab2f6eb..6d64ae2a 100644 --- a/client/js/elements/icon/index.js +++ b/client/js/elements/icon/index.js @@ -16,8 +16,8 @@ module.exports = iconElement function iconElement (iconName, opts) { opts = opts || {} - assert.equal(typeof iconName, 'string', 'elements/icon: iconName should be type string') - assert.equal(typeof opts, 'object', 'elements/icon: opts should be type object') + assert.strictEqual(typeof iconName, 'string', 'elements/icon: iconName should be type string') + assert.strictEqual(typeof opts, 'object', 'elements/icon: opts should be type object') var classNames = 'icon-' + iconName + ' ' + prefix if (opts.class) classNames += (' ' + opts.class) diff --git a/client/js/models/archive.js b/client/js/models/archive.js index 78cdf790..abe20129 100644 --- a/client/js/models/archive.js +++ b/client/js/models/archive.js @@ -11,31 +11,31 @@ module.exports = function (state, emitter) { emitter.on('archive:directory', function (root) { var path = root === '.' ? '' : `/contents/${root}` emitter.emit('pushState', `/dat://${state.archive.key}${path}`) - emitter.emit('archive:update', {root: root}) + emitter.emit('archive:update', { root: root }) }) emitter.on('archive:health', function (data) { - http({url: `/health/${state.archive.key}`, method: 'GET', json: true}, function (err, resp, json) { + http({ url: `/health/${state.archive.key}`, method: 'GET', json: true }, function (err, resp, json) { if (err) console.error(err) - emitter.emit('archive:update', {health: json}) + emitter.emit('archive:update', { health: json }) }) }) emitter.on('archive:getMetadata', function (data) { if (!state.archive.key || state.archive.fetching) return state.archive.fetching = true - http({url: `/metadata/${state.archive.key}?timeout=${data.timeout}`, method: 'GET', json: true}, function (err, resp, json) { + http({ url: `/metadata/${state.archive.key}?timeout=${data.timeout}`, method: 'GET', json: true }, function (err, resp, json) { json.fetching = false json.retries = state.archive.retries + 1 - if (err) return emitter.emit('archive:update', xtend({error: {message: err.message}}, json)) + if (err) return emitter.emit('archive:update', xtend({ error: { message: err.message } }, json)) if (json.error) return emitter.emit('archive:update', json) if (json.entries) json.error = null emitter.emit('archive:update', json) }) }) emitter.on('archive:delete', function (data) { - api.dats.delete({id: data.id}, function (err, resp, json) { - if (err) return emitter.emit('archive:update', {error: {message: err.message}}) + api.dats.delete({ id: data.id }, function (err, resp, json) { + if (err) return emitter.emit('archive:update', { error: { message: err.message } }) emitter.emit('pushState', '/profile') }) }) diff --git a/client/js/models/message.js b/client/js/models/message.js index 3c6a8219..73bb45a3 100644 --- a/client/js/models/message.js +++ b/client/js/models/message.js @@ -3,11 +3,11 @@ module.exports = function (state, emitter) { emitter.emit('message:clear') }) emitter.on('message:update', function (data) { - state.message = {message: data.message, type: data.type} + state.message = { message: data.message, type: data.type } emitter.emit('render') }) emitter.on('message:clear', function (data) { - state.message = {message: '', type: ''} + state.message = { message: '', type: '' } emitter.emit('render') }) @@ -19,12 +19,12 @@ module.exports = function (state, emitter) { }) emitter.on('message:success', function (message) { - emitter.emit('message:new', {message: message, type: 'success'}) + emitter.emit('message:new', { message: message, type: 'success' }) }) emitter.on('message:error', function (message) { - emitter.emit('message:new', {message: message, type: 'error'}) + emitter.emit('message:new', { message: message, type: 'error' }) }) emitter.on('message:warning', function (message) { - emitter.emit('message:new', {message: message, type: 'warning'}) + emitter.emit('message:new', { message: message, type: 'warning' }) }) } diff --git a/client/js/models/preview.js b/client/js/models/preview.js index d0ec3afa..ed70d880 100644 --- a/client/js/models/preview.js +++ b/client/js/models/preview.js @@ -8,7 +8,7 @@ module.exports = function (state, emitter) { }) emitter.on('preview:openPanel', function (data) { - emitter.emit('preview:update', {isPanelOpen: true, error: null}) + emitter.emit('preview:update', { isPanelOpen: true, error: null }) }) emitter.on('preview:file', function (data) { diff --git a/client/js/models/profile.js b/client/js/models/profile.js index e15c2cb9..a72b1972 100644 --- a/client/js/models/profile.js +++ b/client/js/models/profile.js @@ -10,8 +10,8 @@ module.exports = function (state, emitter) { emitter.on('profile:delete', function (data) { api.users.delete(data, function (err, resp, json) { - if (err) return emitter.emit('township:update', {error: err.message}) - emitter.emit('profile:update', {profile: defaults.profile}) + if (err) return emitter.emit('township:update', { error: err.message }) + emitter.emit('profile:update', { profile: defaults.profile }) emitter.emit('township:logout') window.location.href = '/' }) @@ -19,8 +19,8 @@ module.exports = function (state, emitter) { emitter.on('profile:edit', function (data) { api.users.update(data, function (err, resp, json) { - if (err) return emitter.emit('township:update', {error: err.message}) - emitter.emit('township:update', {profile: data}) + if (err) return emitter.emit('township:update', { error: err.message }) + emitter.emit('township:update', { profile: data }) emitter.emit('message:success', 'Profile edited successfully!') }) }) @@ -30,7 +30,7 @@ module.exports = function (state, emitter) { if (err) return emitter.emit('message:error', err.message) if (!json.length) return emitter.emit('message:error', 'User not found.') var user = json[0] - api.dats.get({user_id: user.id}, function (err, resp, results) { + api.dats.get({ user_id: user.id }, function (err, resp, results) { if (err) return emitter.emit('message:error', err.message) user.dats = results emitter.emit('profile:update', user) diff --git a/client/js/models/township.js b/client/js/models/township.js index 2ad4f47a..1f622edb 100644 --- a/client/js/models/township.js +++ b/client/js/models/township.js @@ -22,7 +22,7 @@ module.exports = function (state, emitter) { emitter.on('township:whoami', function (data) { const user = api.whoami() if (user.username) { - api.users.get({username: user.username}, function (err, resp, results) { + api.users.get({ username: user.username }, function (err, resp, results) { if (err && err.message === 'jwt expired') { emitter.emit('township:logout', data) return done() @@ -30,7 +30,7 @@ module.exports = function (state, emitter) { if (!results.length) return done() var newState = user newState.profile = results[0] - api.dats.get({user_id: user.id}, function (err, resp, results) { + api.dats.get({ user_id: user.id }, function (err, resp, results) { if (err && err.message === 'jwt expired') { emitter.emit('township:logout', data) return done() @@ -48,7 +48,7 @@ module.exports = function (state, emitter) { emitter.on('township:logout', function (data) { api.logout(data, function (err, resp, data) { - if (err) return emitter.emit('township:update', {error: err.message}) + if (err) return emitter.emit('township:update', { error: err.message }) emitter.emit('township:update', defaults.township) emitter.emit('message:success', 'Successfully Logged Out') }) @@ -56,7 +56,7 @@ module.exports = function (state, emitter) { emitter.on('township:login', function (data) { api.login(data, function (err, resp, data) { - if (err) return emitter.emit('township:update', {error: err.message}) + if (err) return emitter.emit('township:update', { error: err.message }) data.login = 'hidden' emitter.emit('township:update', data) window.location.href = '/' + data.username @@ -65,7 +65,7 @@ module.exports = function (state, emitter) { emitter.on('township:register', function (data) { api.register(data, function (err, resp, data) { - if (err) return emitter.emit('township:error', {error: err.message}) + if (err) return emitter.emit('township:error', { error: err.message }) data.register = 'hidden' emitter.emit('township:update', data) window.location.href = '/profile/edit' @@ -74,16 +74,16 @@ module.exports = function (state, emitter) { emitter.on('township:resetPassword', function (data) { var email = data || state.township.account.auth.basic.email - api.users.resetPassword({email}, function (err, res, body) { + api.users.resetPassword({ email }, function (err, res, body) { if (err) return emitter.emit('township:error', err.message) - emitter.emit('township:update', {passwordResetResponse: body.message}) + emitter.emit('township:update', { passwordResetResponse: body.message }) }) }) emitter.on('township:resetPasswordConfirmation', function (data) { api.users.resetPasswordConfirmation(data, function (err, res, body) { if (err) return emitter.emit('township:error', err.message) - emitter.emit('township:update', {passwordResetConfirmResponse: body.message, passwordResetResponse: null}) + emitter.emit('township:update', { passwordResetConfirmResponse: body.message, passwordResetResponse: null }) }) }) diff --git a/client/js/pages/archive/index.js b/client/js/pages/archive/index.js index aa782072..24e124b4 100644 --- a/client/js/pages/archive/index.js +++ b/client/js/pages/archive/index.js @@ -10,22 +10,22 @@ const hyperdriveStats = require('../../elements/hyperdrive-stats') const css = require('sheetify') var ARCHIVE_ERRORS = { - 'Invalid key': {header: 'No dat here.', body: 'Looks like the key is invalid. Are you sure it\'s correct?'}, - '/ could not be found': {header: 'Looking for sources…', icon: 'loader', body: 'Is the address correct?'}, - 'timed out': {header: 'Looking for sources…', icon: 'loader', body: 'Is the address correct?'}, - 'Username not found.': {header: 'That user does not exist.'}, - 'Dat with that name not found.': {header: 'That user does not have a dat with that name.'}, - 'too many retries': {header: 'Could not find that dat.', body: 'Is the address correct? Try refreshing your browser.'} + 'Invalid key': { header: 'No dat here.', body: 'Looks like the key is invalid. Are you sure it\'s correct?' }, + '/ could not be found': { header: 'Looking for sources…', icon: 'loader', body: 'Is the address correct?' }, + 'timed out': { header: 'Looking for sources…', icon: 'loader', body: 'Is the address correct?' }, + 'Username not found.': { header: 'That user does not exist.' }, + 'Dat with that name not found.': { header: 'That user does not have a dat with that name.' }, + 'too many retries': { header: 'Could not find that dat.', body: 'Is the address correct? Try refreshing your browser.' } } const archivePage = (state, emit) => { var err = state.archive.error - if (!module.parent && state.archive.retries < 3) emit('archive:getMetadata', {timeout: 3000}) + if (!module.parent && state.archive.retries < 3) emit('archive:getMetadata', { timeout: 3000 }) if (err) { emit(state.events.DOMTITLECHANGE, 'Error Loading Dat | datBase') if (err.message === 'Block not downloaded') err.message = 'timed out' if (!state.archive.entries.length) { - if (state.archive.retries >= 3) err = {message: 'too many retries'} + if (state.archive.retries >= 3) err = { message: 'too many retries' } var props = ARCHIVE_ERRORS[err.message] if (props) { return html` @@ -38,7 +38,7 @@ const archivePage = (state, emit) => { } // var owner = (meta && state.township) && meta.username === state.township.username var meta = state.archive.metadata - var title = meta && meta.title || meta.shortname || state.archive.key + var title = (meta && meta.title) || meta.shortname || state.archive.key var description = meta && meta.description emit(state.events.DOMTITLECHANGE, `${title} | DatBase`) @@ -129,10 +129,10 @@ const archivePage = (state, emit) => {
${(state.archive.downloadTotal || state.archive.uploadTotal) - ? html`
+ ? html`
Total: ${hyperdriveStats({ downloaded: state.archive.downloadTotal, uploaded: state.archive.uploadTotal })}
` - : ''} + : ''}
${preview(state, emit)} diff --git a/client/js/pages/archive/webrtc.js b/client/js/pages/archive/webrtc.js index d8613f17..6f35db35 100644 --- a/client/js/pages/archive/webrtc.js +++ b/client/js/pages/archive/webrtc.js @@ -59,7 +59,7 @@ const archivePage = (state, emit) => { ${error(state.archive.error)}
- ${permissions({owner: archive ? archive.owner : false})} + ${permissions({ owner: archive ? archive.owner : false })}

${size}

${sources} Source(s)
@@ -72,7 +72,7 @@ const archivePage = (state, emit) => {
-
${archive && archive.owner ? addFiles({ onfiles: (files) => emit('archive:importFiles', {files}) }) : ''}
+
${archive && archive.owner ? addFiles({ onfiles: (files) => emit('archive:importFiles', { files }) }) : ''}
${importQueue(state, emit)} ${hyperdrive(state, emit)}
@@ -81,10 +81,10 @@ const archivePage = (state, emit) => {
${(state.archive.downloadTotal || state.archive.uploadTotal) - ? html`
+ ? html`
Total: ${hyperdriveStats({ downloaded: state.archive.downloadTotal, uploaded: state.archive.uploadTotal })}
` - : ''} + : ''}
${preview(state, emit)} diff --git a/client/js/pages/auth/delete-account.js b/client/js/pages/auth/delete-account.js index 6da29314..491e2146 100644 --- a/client/js/pages/auth/delete-account.js +++ b/client/js/pages/auth/delete-account.js @@ -7,7 +7,7 @@ module.exports = (state, emit) => { e.preventDefault() var data = form(e.target) if (data.email !== state.township.email) emit('message:error', 'Incorrect email.') - else emit('profile:delete', {id: state.township.profile.id}) + else emit('profile:delete', { id: state.township.profile.id }) return false } diff --git a/client/js/pages/auth/edit-profile.js b/client/js/pages/auth/edit-profile.js index c9cbe7fa..cc287612 100644 --- a/client/js/pages/auth/edit-profile.js +++ b/client/js/pages/auth/edit-profile.js @@ -12,7 +12,7 @@ var prefix = css` ` module.exports = (state, emit) => { - emit(state.events.DOMTITLECHANGE, 'Edit Profile | datBase') + emit(state.events.DOMTITLECHANGE, 'Edit Profile | datDirectory') function onSubmit (e) { const data = form(e.target) diff --git a/client/js/pages/auth/login.js b/client/js/pages/auth/login.js index ca52073b..4c71b0f4 100644 --- a/client/js/pages/auth/login.js +++ b/client/js/pages/auth/login.js @@ -3,7 +3,7 @@ const header = require('./../../components/header') const login = require('./../../components/auth/login') module.exports = (state, emit) => { - emit(state.events.DOMTITLECHANGE, 'Login | datBase') + emit(state.events.DOMTITLECHANGE, 'Login | datDirectory') return html`
${header(state, emit)} diff --git a/client/js/pages/auth/profile.js b/client/js/pages/auth/profile.js index 7320c558..7538d74e 100644 --- a/client/js/pages/auth/profile.js +++ b/client/js/pages/auth/profile.js @@ -51,7 +51,7 @@ module.exports = (state, emit) => { var name = state.profile.name var numDats = state.profile.dats.length var description = state.profile.description - var pic = gravatar({email}, {}, avatarStyles) + var pic = gravatar({ email }, {}, avatarStyles) var owner = state.township.profile.username === state.profile.username var showPlaceholder = numDats === 0 && owner diff --git a/client/js/pages/auth/register.js b/client/js/pages/auth/register.js index b0c0b414..a7ac3b54 100644 --- a/client/js/pages/auth/register.js +++ b/client/js/pages/auth/register.js @@ -3,7 +3,7 @@ const register = require('./../../components/auth/register') const header = require('./../../components/header') module.exports = (state, emit) => { - emit(state.events.DOMTITLECHANGE, 'Register | datBase') + emit(state.events.DOMTITLECHANGE, 'Register | datDirectory') return html`
${header(state, emit)} diff --git a/client/js/pages/auth/reset-password.js b/client/js/pages/auth/reset-password.js index 0ceab322..2d351dae 100644 --- a/client/js/pages/auth/reset-password.js +++ b/client/js/pages/auth/reset-password.js @@ -5,11 +5,11 @@ const header = require('./../../components/header') const form = require('get-form-data') function body (state, emit) { - emit(state.events.DOMTITLECHANGE, 'Reset Password | datBase') + emit(state.events.DOMTITLECHANGE, 'Reset Password | datDirectory') // const authenticated = state.township.username var query = {} if (!module.parent) query = url.parse(window.location.href).query - const {accountKey, resetToken, email} = querystring.parse(query) + const { accountKey, resetToken, email } = querystring.parse(query) function onsubmitConfirm (e) { e.preventDefault() var data = form(e.target) diff --git a/client/js/pages/download.js b/client/js/pages/download.js index 7dc585ec..3b26bea6 100644 --- a/client/js/pages/download.js +++ b/client/js/pages/download.js @@ -5,7 +5,7 @@ module.exports = wrapper(function (state, emit) { return html`
-
+

Using the Terminal

1. Install node for your platform.
@@ -31,7 +31,7 @@ module.exports = wrapper(function (state, emit) {
3. Then download the archive.
$ dat clone ${state.archive.key}

- Having trouble installing dat? Try our troubleshooting checklist or ask questions in our public chatroom. + Having trouble installing dat? Find other installation options or ask questions in our public chatroom.

diff --git a/client/js/pages/landing/index.js b/client/js/pages/landing/index.js index 98c137de..fcdc1cd6 100644 --- a/client/js/pages/landing/index.js +++ b/client/js/pages/landing/index.js @@ -2,7 +2,7 @@ const html = require('choo/html') const css = require('sheetify') const footer = require('../../elements/footer') const datIcon = require('../../elements/icon') -const importButton = require('../../elements/import-button') +// const importButton = require('../../elements/import-button') const homeSection = require('../../elements/home-section') const panel = require('../../components/auth/user-panel') const loginButton = require('../../components/login-button') @@ -22,39 +22,38 @@ module.exports = function (state, emit) { } ` const backgroundImageUrl = '/public/img/bg-landing-page.svg' - const hex = datIcon('hexagon-up', {class: 'color-green-disabled'}) + const hex = datIcon('clipboard', { class: 'color-green-disabled' }) return html`
${message(state.message)} -
- ${importButton(emit)} -
${loginButton(state, emit)} ${panel(state, emit)}
-
-

+
+

${hex} - datBase + datDirectory

-

- Open data powered by Dat
- Future-friendly apps for your research data pipeline +

+ dat - a community-driven project powering a next-generation Web

+
+ ${viewDatBtn(emit)} +

${homeSection({ - 'title': 'Coming to a computer near you...', - 'subtitle': 'Using the Dat Protocol, we are enhancing research & publishing tools with a data-first infrastructure. Coming soon.', - 'sections': [ - { - 'title': 'Try Dat', - 'text': ` + 'title': '', + 'subtitle': 'Dat is a protocol for sharing data between computers. Dat’s strengths are that data is hosted and distributed by many computers on the network, that it can work offline or with poor connectivity, that the original uploader can add or modify data while keeping a full history and that it can handle large amounts of data.', + 'sections': [ + { + 'title': 'Try Dat', + 'text': ` See what it is like to use Dat today! The Try Dat workshop will walk you through sharing and downloading data. It showcases unique properties of the Dat Protocol. @@ -63,10 +62,10 @@ module.exports = function (state, emit) { Try Dat Now!
` - }, - { - 'title': 'Dat in the Lab', - 'text': ` + }, + { + 'title': 'Dat in the Lab', + 'text': ` A collaboration with the California Digitial Library, funded by the Moore Foundation. Learn more about our pilot to integrate Dat into research data workflows.
@@ -74,10 +73,10 @@ module.exports = function (state, emit) { Follow on our Blog ` - }, - { - 'title': 'About Dat Project', - 'text': ` + }, + { + 'title': 'About Dat Project', + 'text': ` Dat is a nonprofit-backed community & open protocol for building apps of the future. We set out to improve access to public data and created the Dat Protocol along the way.
@@ -85,9 +84,9 @@ module.exports = function (state, emit) { Learn About Dat ` - } - ] - })} + } + ] + })}
@@ -118,4 +117,26 @@ module.exports = function (state, emit) { ${footer()}
` + + function viewDatBtn (emit) { + const keydown = (e) => { + if (e.keyCode === 13) { + var link = e.target.value + e.target.value = '' + emit('archive:view', link) + } + } + return html` + ` + } } diff --git a/client/js/pages/publish/index.js b/client/js/pages/publish/index.js index 6c812103..49a2e34c 100644 --- a/client/js/pages/publish/index.js +++ b/client/js/pages/publish/index.js @@ -2,7 +2,7 @@ const html = require('choo/html') const wrapper = require('../wrapper') const publish = (state, emit) => { - emit(state.events.DOMTITLECHANGE, 'Publish Data | datBase') + emit(state.events.DOMTITLECHANGE, 'Publish | datDirectory') return html`
@@ -17,7 +17,7 @@ $ dat login $ dat create $ dat publish

Install dat -Learn more

+Learn more

` diff --git a/client/scss/app.scss b/client/scss/app.scss index 3dddcf09..e2fe2549 100644 --- a/client/scss/app.scss +++ b/client/scss/app.scss @@ -1,147 +1,5 @@ -/** - * Use awesome syntax of `node-sass-magic-importer` to import scss modules - * See import `dat-design` rule below for example. - * If there's no file path specified after module name, it resolves to the file - * defined by the imported package.json's `style` property - * - * More magic importer features: - * https://github.com/maoberlehner/node-sass-magic-importer - */ -@import "~dat-design/scss/base.scss"; - -@import "../bundle.css"; - -@import "imports/fonts"; -@import "imports/variables"; -@import "imports/base"; -@import "imports/layout"; -@import "imports/grid"; -@import "imports/sections"; -@import "imports/horizontal-rule"; -@import "imports/block-create"; -@import "imports/status-bar"; -@import "imports/file-system"; -@import "imports/buttons"; -@import "imports/panel"; // -@import "imports/error-page"; - -:root { - --site-header-height: 4rem; -} - -h2, h3 { - font-weight: 300; -} - -pre { - padding: .5em; - font-size: .875rem; - background-color: $color-neutral; - color: $color-neutral-10; - border: none; - box-shadow: inset 0 1px 3px rgba(0,0,0,.5); -} - -.hex-title-icon { - width: 2.3rem; - margin-right: 4px; - margin-bottom: 2px; -} - -// Comment out for footer, does it break anything else -// ul { -// list-style: initial; -// padding-left: 1rem; -// } - -.content-title { - font-size: 2rem; - font-weight: 600; - margin-bottom: 0; -} -.content-subtitle { - font-size: 1.25rem; - color: $color-neutral-70; - padding-bottom: 15px; -} - -.bg-neutral { - .content-subtitle, - .content-card-subtitle { - color: $color-neutral-40; - } -} -.content-code-intro { - text-align: left; - margin-bottom: 60px; -} -.content-card { - position: relative; - background-color: $color-white; - display: inline-block; - vertical-align: top; - margin-right: 30px; - padding: 2rem; - margin-bottom: 3rem; - text-align: left; -} -.content-card-title { - font-weight: 700; - font-size: 1.5rem; - line-height: 1.25; -} -.content-card-subtitle { - color: $color-neutral-70; - line-height: 1.75; -} -.copy-link, -.open-desktop { - display: inline-block; - white-space: nowrap; - svg { - max-width: 1em; - height: 1em; - fill: currentColor; - vertical-align: -9%; - } -} - -// Border colors -// TODO: https://github.com/Kriesse/dat-colors/pull/5 - -.b--white { border-color: #FFFFFF } -.b--black { border-color: #070B14 } -.b--neutral { border-color: #293648 } -.b--neutral-90 { border-color: #394B5B } -.b--neutral-80 { border-color: #505F6D } -.b--neutral-70 { border-color: #65737F } -.b--neutral-60 { border-color: #7C8792 } -.b--neutral-50 { border-color: #919BA4 } -.b--neutral-40 { border-color: #A7AFB6 } -.b--neutral-30 { border-color: #C3C9CD } -.b--neutral-20 { border-color: #D3D7DB } -.b--neutral-14 { border-color: #E0E3E5 } -.b--neutral-10 { border-color: #E9EBEC } -.b--neutral-04 { border-color: #F6F7F8 } -.b--green { border-color: #2ACA4B } -.b--green-hover { border-color: #199E33 } -.b--green-darker { border-color: #006607 } -.b--green-disabled { border-color: #94E4A5 } -.b--blue { border-color: #007FFF } -.b--blue-hover { border-color: #0066CC } -.b--blue-darker { border-color: #003E83 } -.b--blue-disabled { border-color: #7FBFFF } -.b--mint { border-color: #159F84 } -.b--mint-hover { border-color: #0B856D } -.b--mint-darker { border-color: #045943 } -.b--mint-disabled { border-color: #8ACFC1 } -.b--yellow { border-color: #F2CD02 } -.b--yellow-hover { border-color: #C4A500 } -.b--yellow-darker { border-color: #9F7D07 } -.b--yellow-disabled { border-color: #FBF0B3 } -.b--red { border-color: #D8524E } -.b--red-hover { border-color: #B33C38 } -.b--red-darker { border-color: #A52724 } -.b--red-disabled { border-color: #EBA8A6 } -.b--pink { border-color: #F9A5E4 } +/* taken from existing datbase.org build */ +/*! TACHYONS v4.9.0 | http://tachyons.io */ +/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */ +@charset "UTF-8";html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:0.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{margin:0;padding:0;font-size:100%;line-height:1.5}h1,h2,h3,h4,h5,h6,p{margin:0;padding:0}p,ul,ol,dl{margin-bottom:1rem}a{text-decoration:none}a:hover,a:focus{outline:none;text-decoration:none}body,input,textarea,select,button{font-family:'Source Sans Pro','Helvetica Neue','Lucida Grande',Arial,sans-serif}body{line-height:1.5}.hd-xl,h1{font-size:2.5rem;line-height:1.25;margin-bottom:1rem}.hd-l,h2{font-size:2.25rem;line-height:1.25;margin-bottom:1rem}.hd-m,h3{font-size:1.75rem;line-height:1.25;margin-bottom:1rem}.hd-s,h4{font-size:1.5rem;line-height:1.25}.hd-xs,h5{font-size:1.25rem;line-height:1.25}.hd-xxs,h6{font-size:.875rem;line-height:1.25;text-transform:uppercase;letter-spacing:.025em}.lead{font-size:1.5rem;line-height:1.333;margin-bottom:1.5rem}.blockquote{margin-left:0;padding-left:1rem;border-left:4px solid #D3D7DB}.blockquote blockquote{margin:0}.blockquote figcaption{font-size:.875rem;line-height:1.25;color:#7C8792}pre{background-color:#eee;padding:10px;overflow:auto}a{color:#007FFF}a:hover,a:focus{color:#06C}.link--green{color:#2ACA4B}.link--green:hover,.link--green:focus{color:#199E33}.link--yellow{color:#F2CD02}.link--yellow:hover,.link--yellow:focus{color:#C4A500}.link--red{color:#D8524E}.link--red:hover,.link--red:focus{color:#B33C38}a[disabled],.link--disabled{color:#A7AFB6}a[disabled]:hover,a[disabled]:focus,.link--disabled:hover,.link--disabled:focus{color:#A7AFB6}.btn{display:inline-block;padding:.333rem .75rem;border-width:1px;border-style:solid;border-color:currentColor;background-color:transparent;color:#65737F;text-decoration:none;cursor:pointer;text-align:center;line-height:1.5;vertical-align:middle;letter-spacing:.02em}.btn:hover,.btn:focus{color:#293648;text-decoration:none;cursor:pointer;outline:0}.btn--white{color:#FFF}.btn--white:hover,.btn--white:focus{color:#D3D7DB}.btn--green{color:#2ACA4B}.btn--green:hover,.btn--green:focus{color:#199E33}.btn--blue{color:#007FFF}.btn--blue:hover,.btn--blue:focus{color:#06C}.btn--yellow{color:#F2CD02}.btn--yellow:hover,.btn--yellow:focus{color:#C4A500}.btn--red{color:#D8524E}.btn--red:hover,.btn--red:focus{color:#B33C38}.btn[disabled],.btn--disabled{color:#C3C9CD;cursor:default}.btn[disabled]:hover,.btn[disabled]:focus,.btn--disabled:hover,.btn--disabled:focus{color:#C3C9CD;cursor:default}.btn--full{border-width:0;padding-top:.375rem;padding-bottom:.375rem;background-color:#919BA4;color:#FFF}.btn--full:hover,.btn--full:focus{background-color:#7C8792;color:#FFF}.btn--full.btn--green{background-color:#2ACA4B}.btn--full.btn--green:hover,.btn--full.btn--green:focus{color:#FFF;background-color:#199E33}.btn--full.btn--blue{background-color:#007FFF}.btn--full.btn--blue:hover,.btn--full.btn--blue:focus{color:#FFF;background-color:#06C}.btn--full.btn--yellow{background-color:#F2CD02}.btn--full.btn--yellow:hover,.btn--full.btn--yellow:focus{color:#FFF;background-color:#C4A500}.btn--full.btn--red{background-color:#D8524E}.btn--full.btn--red:hover,.btn--full.btn--red:focus{color:#FFF;background-color:#B33C38}.btn--full.btn[disabled],.btn--full.btn--disabled{background-color:#E9EBEC;color:#A7AFB6;cursor:default}.btn--full.btn[disabled]:hover,.btn--full.btn[disabled]:focus,.btn--full.btn--disabled:hover,.btn--full.btn--disabled:focus{background-color:#E9EBEC;color:#A7AFB6;cursor:default}.btn--small{font-size:.75rem;padding:.3rem .5rem}.btn--large{font-size:1.125rem;padding:.5rem .75rem}.btn--cta{font-size:1.5rem;padding:.75rem 1.25rem .85rem 1.25rem}.loader-text img{vertical-align:sub;width:1.25em;height:1.25em;margin-right:.25em}.progress{overflow:hidden;padding-top:.5rem;padding-bottom:.5rem}.progress__bar{height:0.5rem;width:calc(100% - 3rem);float:left;overflow:hidden;background-color:#D3D7DB;border-radius:2px}.progress__line{width:0%;height:0.5rem;background-color:#007FFF;border-radius:2px}.progress__line--loading{overflow:hidden;position:relative;height:0.5rem}@keyframes move-bg{0%{background-position:28px 0}100%{background-position:0 0}}.progress__line--loading:before{content:'';width:100%;height:0.5rem;position:absolute;top:0;left:0;background-image:repeating-linear-gradient(-45deg,transparent,transparent 5px,rgba(255,255,255,0.1) 5px,rgba(255,255,255,0.1) 10px);background-size:28px 0.5rem;animation:move-bg .75s linear infinite}.progress__line--complete{background-color:#2ACA4B}.progress__line--paused{background-color:#A7AFB6}.progress__counter{float:right;min-width:3rem;margin-top:-.4rem;text-align:right;font-size:.875rem;color:#7C8792}.dat-input{display:inline-block;position:relative;overflow:hidden;vertical-align:middle}.dat-input__icon{position:absolute;top:calc(50% - (1.5rem / 2));left:.75rem;pointer-events:none;display:block;width:1.5rem;height:1.5rem;fill:#D3D7DB}.dat-input__input{height:2.25rem;padding-right:.5rem;padding-left:.5rem;border:1px solid #C3C9CD;color:#7C8792}.dat-input__input:hover,.dat-input__input:focus,.dat-input__input:active{outline:none;color:#293648;border-color:#2ACA4B}.dat-input__input--icon{padding-left:2.75rem}.dat-input__input--no-border{border:none}ul.list-plain,ol.list-plain{padding:0;margin:0;list-style-type:none}body{color:#293648}a,button,input,select,textarea{transition-property:background-color,color,border-color;transition-duration:0.05s;transition-timing-function:ease-out}html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}menu,details{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}.border-box,a,article,aside,blockquote,body,code,dd,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,nav,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--9x16{padding-bottom:177.77%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--3x4{padding-bottom:133.33%}.aspect-ratio--6x4{padding-bottom:66.6%}.aspect-ratio--4x6{padding-bottom:150%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--5x8{padding-bottom:160%}.aspect-ratio--7x5{padding-bottom:71.42%}.aspect-ratio--5x7{padding-bottom:140%}.aspect-ratio--1x1{padding-bottom:100%}.aspect-ratio--object{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}img{max-width:100%}.cover{background-size:cover!important}.contain{background-size:contain!important}.bg-center{background-position:50%}.bg-center,.bg-top{background-repeat:no-repeat}.bg-top{background-position:top}.bg-right{background-position:100%}.bg-bottom,.bg-right{background-repeat:no-repeat}.bg-bottom{background-position:bottom}.bg-left{background-repeat:no-repeat;background-position:0}.outline{outline:1px solid}.outline-transparent{outline:1px solid transparent}.outline-0{outline:0}.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--moon-gray{border-color:#ccc}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:rgba(255,255,255,0.9)}.b--white-80{border-color:rgba(255,255,255,0.8)}.b--white-70{border-color:rgba(255,255,255,0.7)}.b--white-60{border-color:rgba(255,255,255,0.6)}.b--white-50{border-color:rgba(255,255,255,0.5)}.b--white-40{border-color:rgba(255,255,255,0.4)}.b--white-30{border-color:rgba(255,255,255,0.3)}.b--white-20{border-color:rgba(255,255,255,0.2)}.b--white-10{border-color:rgba(255,255,255,0.1)}.b--white-05{border-color:rgba(255,255,255,0.05)}.b--white-025{border-color:rgba(255,255,255,0.025)}.b--white-0125{border-color:rgba(255,255,255,0.0125)}.b--black-90{border-color:rgba(0,0,0,0.9)}.b--black-80{border-color:rgba(0,0,0,0.8)}.b--black-70{border-color:rgba(0,0,0,0.7)}.b--black-60{border-color:rgba(0,0,0,0.6)}.b--black-50{border-color:rgba(0,0,0,0.5)}.b--black-40{border-color:rgba(0,0,0,0.4)}.b--black-30{border-color:rgba(0,0,0,0.3)}.b--black-20{border-color:rgba(0,0,0,0.2)}.b--black-10{border-color:rgba(0,0,0,0.1)}.b--black-05{border-color:rgba(0,0,0,0.05)}.b--black-025{border-color:rgba(0,0,0,0.025)}.b--black-0125{border-color:rgba(0,0,0,0.0125)}.b--dark-red{border-color:#e7040f}.b--red{border-color:#ff4136}.b--light-red{border-color:#ff725c}.b--orange{border-color:#ff6300}.b--gold{border-color:#ffb700}.b--yellow{border-color:gold}.b--light-yellow{border-color:#fbf1a9}.b--purple{border-color:#5e2ca5}.b--light-purple{border-color:#a463f2}.b--dark-pink{border-color:#d5008f}.b--hot-pink{border-color:#ff41b4}.b--pink{border-color:#ff80cc}.b--light-pink{border-color:#ffa3d7}.b--dark-green{border-color:#137752}.b--green{border-color:#19a974}.b--light-green{border-color:#9eebcf}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#357edd}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fffceb}.b--washed-red{border-color:#ffdfdf}.b--transparent{border-color:transparent}.b--inherit{border-color:inherit}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,0.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,0.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,0.2)}.shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,0.2)}.shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,0.2)}.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{top:0;right:0;bottom:0;left:0}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column,.flex-row{-webkit-box-direction:normal}.flex-row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-nowrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.flex-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.flex-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start{-ms-flex-item-align:start;align-self:flex-start}.self-end{-ms-flex-item-align:end;align-self:flex-end}.self-center{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around{-ms-flex-pack:distribute;justify-content:space-around}.content-start{-ms-flex-line-pack:start;align-content:flex-start}.content-end{-ms-flex-line-pack:end;align-content:flex-end}.content-center{-ms-flex-line-pack:center;align-content:center}.content-between{-ms-flex-line-pack:justify;align-content:space-between}.content-around{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch{-ms-flex-line-pack:stretch;align-content:stretch}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.flex-grow-0{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.flex-grow-1{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.flex-shrink-0{-ms-flex-negative:0;flex-shrink:0}.flex-shrink-1{-ms-flex-negative:1;flex-shrink:1}.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,times,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:Courier Next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.athelas{font-family:athelas,georgia,serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:Bodoni MT,serif}.calisto{font-family:Calisto MT,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.i{font-style:italic}.fs-normal{font-style:normal}.normal{font-weight:400}.b{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}.input-reset{-webkit-appearance:none;-moz-appearance:none}.button-reset::-moz-focus-inner,.input-reset::-moz-focus-inner{border:0;padding:0}.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.min-h-100{min-height:100%}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.h-auto{height:auto}.h-inherit{height:inherit}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}.lh-solid{line-height:1}.lh-title{line-height:1.25}.lh-copy{line-height:1.5}.link{text-decoration:none}.link,.link:active,.link:focus,.link:hover,.link:link,.link:visited{transition:color .15s ease-in}.link:focus{outline:1px dotted currentColor}.list{list-style-type:none}.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-90{width:90%}.w-100{width:100%}.w-third{width:33.33333%}.w-two-thirds{width:66.66667%}.w-auto{width:auto}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.rotate-45{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.black-90{color:rgba(0,0,0,0.9)}.black-80{color:rgba(0,0,0,0.8)}.black-70{color:rgba(0,0,0,0.7)}.black-60{color:rgba(0,0,0,0.6)}.black-50{color:rgba(0,0,0,0.5)}.black-40{color:rgba(0,0,0,0.4)}.black-30{color:rgba(0,0,0,0.3)}.black-20{color:rgba(0,0,0,0.2)}.black-10{color:rgba(0,0,0,0.1)}.black-05{color:rgba(0,0,0,0.05)}.white-90{color:rgba(255,255,255,0.9)}.white-80{color:rgba(255,255,255,0.8)}.white-70{color:rgba(255,255,255,0.7)}.white-60{color:rgba(255,255,255,0.6)}.white-50{color:rgba(255,255,255,0.5)}.white-40{color:rgba(255,255,255,0.4)}.white-30{color:rgba(255,255,255,0.3)}.white-20{color:rgba(255,255,255,0.2)}.white-10{color:rgba(255,255,255,0.1)}.black{color:#000}.near-black{color:#111}.dark-gray{color:#333}.mid-gray{color:#555}.gray{color:#777}.silver{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#e7040f}.red{color:#ff4136}.light-red{color:#ff725c}.orange{color:#ff6300}.gold{color:#ffb700}.yellow{color:gold}.light-yellow{color:#fbf1a9}.purple{color:#5e2ca5}.light-purple{color:#a463f2}.dark-pink{color:#d5008f}.hot-pink{color:#ff41b4}.pink{color:#ff80cc}.light-pink{color:#ffa3d7}.dark-green{color:#137752}.green{color:#19a974}.light-green{color:#9eebcf}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#357edd}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fffceb}.washed-red{color:#ffdfdf}.color-inherit{color:inherit}.bg-black-90{background-color:rgba(0,0,0,0.9)}.bg-black-80{background-color:rgba(0,0,0,0.8)}.bg-black-70{background-color:rgba(0,0,0,0.7)}.bg-black-60{background-color:rgba(0,0,0,0.6)}.bg-black-50{background-color:rgba(0,0,0,0.5)}.bg-black-40{background-color:rgba(0,0,0,0.4)}.bg-black-30{background-color:rgba(0,0,0,0.3)}.bg-black-20{background-color:rgba(0,0,0,0.2)}.bg-black-10{background-color:rgba(0,0,0,0.1)}.bg-black-05{background-color:rgba(0,0,0,0.05)}.bg-white-90{background-color:rgba(255,255,255,0.9)}.bg-white-80{background-color:rgba(255,255,255,0.8)}.bg-white-70{background-color:rgba(255,255,255,0.7)}.bg-white-60{background-color:rgba(255,255,255,0.6)}.bg-white-50{background-color:rgba(255,255,255,0.5)}.bg-white-40{background-color:rgba(255,255,255,0.4)}.bg-white-30{background-color:rgba(255,255,255,0.3)}.bg-white-20{background-color:rgba(255,255,255,0.2)}.bg-white-10{background-color:rgba(255,255,255,0.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#e7040f}.bg-red{background-color:#ff4136}.bg-light-red{background-color:#ff725c}.bg-orange{background-color:#ff6300}.bg-gold{background-color:#ffb700}.bg-yellow{background-color:gold}.bg-light-yellow{background-color:#fbf1a9}.bg-purple{background-color:#5e2ca5}.bg-light-purple{background-color:#a463f2}.bg-dark-pink{background-color:#d5008f}.bg-hot-pink{background-color:#ff41b4}.bg-pink{background-color:#ff80cc}.bg-light-pink{background-color:#ffa3d7}.bg-dark-green{background-color:#137752}.bg-green{background-color:#19a974}.bg-light-green{background-color:#9eebcf}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#357edd}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fffceb}.bg-washed-red{background-color:#ffdfdf}.bg-inherit{background-color:inherit}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,0.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,0.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,0.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,0.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,0.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,0.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,0.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,0.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,0.1)}.hover-white-90:focus,.hover-white-90:hover{color:rgba(255,255,255,0.9)}.hover-white-80:focus,.hover-white-80:hover{color:rgba(255,255,255,0.8)}.hover-white-70:focus,.hover-white-70:hover{color:rgba(255,255,255,0.7)}.hover-white-60:focus,.hover-white-60:hover{color:rgba(255,255,255,0.6)}.hover-white-50:focus,.hover-white-50:hover{color:rgba(255,255,255,0.5)}.hover-white-40:focus,.hover-white-40:hover{color:rgba(255,255,255,0.4)}.hover-white-30:focus,.hover-white-30:hover{color:rgba(255,255,255,0.3)}.hover-white-20:focus,.hover-white-20:hover{color:rgba(255,255,255,0.2)}.hover-white-10:focus,.hover-white-10:hover{color:rgba(255,255,255,0.1)}.hover-inherit:focus,.hover-inherit:hover{color:inherit}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,0.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,0.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,0.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,0.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,0.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,0.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,0.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,0.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,0.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:rgba(255,255,255,0.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:rgba(255,255,255,0.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:rgba(255,255,255,0.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:rgba(255,255,255,0.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:rgba(255,255,255,0.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:rgba(255,255,255,0.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:rgba(255,255,255,0.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:rgba(255,255,255,0.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:rgba(255,255,255,0.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.hover-bg-inherit:focus,.hover-bg-inherit:hover{background-color:inherit}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-top:0;padding-bottom:0}.pv1{padding-top:.25rem;padding-bottom:.25rem}.pv2{padding-top:.5rem;padding-bottom:.5rem}.pv3{padding-top:1rem;padding-bottom:1rem}.pv4{padding-top:2rem;padding-bottom:2rem}.pv5{padding-top:4rem;padding-bottom:4rem}.pv6{padding-top:8rem;padding-bottom:8rem}.pv7{padding-top:16rem;padding-bottom:16rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.mv0{margin-top:0;margin-bottom:0}.mv1{margin-top:.25rem;margin-bottom:.25rem}.mv2{margin-top:.5rem;margin-bottom:.5rem}.mv3{margin-top:1rem;margin-bottom:1rem}.mv4{margin-top:2rem;margin-bottom:2rem}.mv5{margin-top:4rem;margin-bottom:4rem}.mv6{margin-top:8rem;margin-bottom:8rem}.mv7{margin-top:16rem;margin-bottom:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}.na1{margin:-.25rem}.na2{margin:-.5rem}.na3{margin:-1rem}.na4{margin:-2rem}.na5{margin:-4rem}.na6{margin:-8rem}.na7{margin:-16rem}.nl1{margin-left:-.25rem}.nl2{margin-left:-.5rem}.nl3{margin-left:-1rem}.nl4{margin-left:-2rem}.nl5{margin-left:-4rem}.nl6{margin-left:-8rem}.nl7{margin-left:-16rem}.nr1{margin-right:-.25rem}.nr2{margin-right:-.5rem}.nr3{margin-right:-1rem}.nr4{margin-right:-2rem}.nr5{margin-right:-4rem}.nr6{margin-right:-8rem}.nr7{margin-right:-16rem}.nb1{margin-bottom:-.25rem}.nb2{margin-bottom:-.5rem}.nb3{margin-bottom:-1rem}.nb4{margin-bottom:-2rem}.nb5{margin-bottom:-4rem}.nb6{margin-bottom:-8rem}.nb7{margin-bottom:-16rem}.nt1{margin-top:-.25rem}.nt2{margin-top:-.5rem}.nt3{margin-top:-1rem}.nt4{margin-top:-2rem}.nt5{margin-top:-4rem}.nt6{margin-top:-8rem}.nt7{margin-top:-16rem}.collapse{border-collapse:collapse;border-spacing:0}.striped--light-silver:nth-child(odd){background-color:#aaa}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}.stripe-light:nth-child(odd){background-color:rgba(255,255,255,0.1)}.stripe-dark:nth-child(odd){background-color:rgba(0,0,0,0.1)}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}.tj{text-align:justify}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.f7{font-size:.75rem}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps{font-variant:small-caps}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overflow-container{overflow-y:scroll}.center{margin-left:auto}.center,.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.clip{position:fixed!important;_position:absolute!important;clip:rect(1px);clip:rect(1px,1px,1px,1px)}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}.dim{opacity:1}.dim,.dim:focus,.dim:hover{transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;transition:opacity .15s ease-out}.glow,.glow:focus,.glow:hover{transition:opacity .15s ease-in}.glow:focus,.glow:hover{opacity:1}.hide-child .child{opacity:0;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover{text-decoration:underline}.grow{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.grow:focus,.grow:hover{-webkit-transform:scale(1.05);transform:scale(1.05)}.grow:active{-webkit-transform:scale(0.9);transform:scale(0.9)}.grow-large{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-in-out;transition:transform .25s ease-in-out;transition:transform .25s ease-in-out,-webkit-transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.grow-large:active{-webkit-transform:scale(0.95);transform:scale(0.95)}.pointer:hover,.shadow-hover{cursor:pointer}.shadow-hover{position:relative;transition:all 0.5s cubic-bezier(0.165,0.84,0.44,1)}.shadow-hover:after{content:"";box-shadow:0 0 16px 2px rgba(0,0,0,0.2);border-radius:inherit;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;transition:opacity 0.5s cubic-bezier(0.165,0.84,0.44,1)}.shadow-hover:focus:after,.shadow-hover:hover:after{opacity:1}.bg-animate,.bg-animate:focus,.bg-animate:hover{transition:background-color .15s ease-in-out}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:999}.z-9999{z-index:9999}.z-max{z-index:2147483647}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}.nested-copy-line-height ol,.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-headline-line-height h1,.nested-headline-line-height h2,.nested-headline-line-height h3,.nested-headline-line-height h4,.nested-headline-line-height h5,.nested-headline-line-height h6{line-height:1.25}.nested-list-reset ol,.nested-list-reset ul{padding-left:0;margin-left:0;list-style-type:none}.nested-copy-indent p + p{text-indent:1em;margin-top:0;margin-bottom:0}.nested-copy-separator p + p{margin-top:1.5em}.nested-img img{width:100%;max-width:100%;display:block}.nested-links a{color:#357edd;transition:color .15s ease-in}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.debug *{outline:1px solid gold}.debug-white *{outline:1px solid #fff}.debug-black *{outline:1px solid #000}.debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAFElEQVR4AWPAC97/9x0eCsAEPgwAVLshdpENIxcAAAAASUVORK5CYII=) repeat 0 0}.debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMklEQVR4AWOgCLz/b0epAa6UGuBOqQHOQHLUgFEDnAbcBZ4UGwDOkiCnkIhdgNgNxAYAiYlD+8sEuo8AAAAASUVORK5CYII=) repeat 0 0}.debug-grid-8-solid{background:#fff url(data:image/gif;base64,R0lGODdhCAAIAPEAAADw/wDx/////wAAACwAAAAACAAIAAACDZQvgaeb/lxbAIKA8y0AOw==) repeat 0 0}.debug-grid-16-solid{background:#fff url(data:image/gif;base64,R0lGODdhEAAQAPEAAADw/wDx/xXy/////ywAAAAAEAAQAAACIZyPKckYDQFsb6ZqD85jZ2+BkwiRFKehhqQCQgDHcgwEBQA7) repeat 0 0}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-repeat:no-repeat;background-position:0}.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,0.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,0.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,0.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,0.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,0.2)}.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{top:0;right:0;bottom:0;left:0}.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}.flex-ns{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-ns{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-ns{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-ns{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-ns{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-row-ns{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-ns{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-nowrap-ns{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.flex-wrap-reverse-ns{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.flex-column-reverse-ns{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.flex-row-reverse-ns{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.items-start-ns{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end-ns{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center-ns{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline-ns{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch-ns{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start-ns{-ms-flex-item-align:start;align-self:flex-start}.self-end-ns{-ms-flex-item-align:end;align-self:flex-end}.self-center-ns{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline-ns{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-ns{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.justify-start-ns{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-ns{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-ns{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-ns{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-ns{-ms-flex-pack:distribute;justify-content:space-around}.content-start-ns{-ms-flex-line-pack:start;align-content:flex-start}.content-end-ns{-ms-flex-line-pack:end;align-content:flex-end}.content-center-ns{-ms-flex-line-pack:center;align-content:center}.content-between-ns{-ms-flex-line-pack:justify;align-content:space-between}.content-around-ns{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-ns{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-ns{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-ns{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-ns{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-ns{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-ns{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-ns{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-ns{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-ns{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-ns{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-ns{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.flex-grow-0-ns{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.flex-grow-1-ns{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.flex-shrink-0-ns{-ms-flex-negative:0;flex-shrink:0}.flex-shrink-1-ns{-ms-flex-negative:1;flex-shrink:1}.fl-ns{float:left}.fl-ns,.fr-ns{display:inline}.fr-ns{float:right}.fn-ns{float:none}.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.33333%}.w-two-thirds-ns{width:66.66667%}.w-auto-ns{width:auto}.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}.rotate-45-ns{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-ns{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-ns{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-ns{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-ns{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-ns{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-ns{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-top:0;padding-bottom:0}.pv1-ns{padding-top:.25rem;padding-bottom:.25rem}.pv2-ns{padding-top:.5rem;padding-bottom:.5rem}.pv3-ns{padding-top:1rem;padding-bottom:1rem}.pv4-ns{padding-top:2rem;padding-bottom:2rem}.pv5-ns{padding-top:4rem;padding-bottom:4rem}.pv6-ns{padding-top:8rem;padding-bottom:8rem}.pv7-ns{padding-top:16rem;padding-bottom:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-top:0;margin-bottom:0}.mv1-ns{margin-top:.25rem;margin-bottom:.25rem}.mv2-ns{margin-top:.5rem;margin-bottom:.5rem}.mv3-ns{margin-top:1rem;margin-bottom:1rem}.mv4-ns{margin-top:2rem;margin-bottom:2rem}.mv5-ns{margin-top:4rem;margin-bottom:4rem}.mv6-ns{margin-top:8rem;margin-bottom:8rem}.mv7-ns{margin-top:16rem;margin-bottom:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-ns{font-variant:small-caps}.truncate-ns{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}.clip-ns{position:fixed!important;position:absolute!important;clip:rect(1px);clip:rect(1px,1px,1px,1px)}.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-repeat:no-repeat;background-position:0}.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,0.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,0.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,0.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,0.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,0.2)}.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{top:0;right:0;bottom:0;left:0}.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}.flex-m{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-m{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-m{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-m{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-m{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column-m,.flex-row-m{-webkit-box-direction:normal}.flex-row-m{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-m{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-nowrap-m{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.flex-wrap-reverse-m{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.flex-column-reverse-m{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.flex-row-reverse-m{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.items-start-m{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end-m{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center-m{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline-m{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch-m{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start-m{-ms-flex-item-align:start;align-self:flex-start}.self-end-m{-ms-flex-item-align:end;align-self:flex-end}.self-center-m{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline-m{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-m{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.justify-start-m{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-m{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-m{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-m{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-m{-ms-flex-pack:distribute;justify-content:space-around}.content-start-m{-ms-flex-line-pack:start;align-content:flex-start}.content-end-m{-ms-flex-line-pack:end;align-content:flex-end}.content-center-m{-ms-flex-line-pack:center;align-content:center}.content-between-m{-ms-flex-line-pack:justify;align-content:space-between}.content-around-m{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-m{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-m{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-m{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-m{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-m{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-m{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-m{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-m{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-m{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-m{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-m{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.flex-grow-0-m{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.flex-grow-1-m{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.flex-shrink-0-m{-ms-flex-negative:0;flex-shrink:0}.flex-shrink-1-m{-ms-flex-negative:1;flex-shrink:1}.fl-m{float:left}.fl-m,.fr-m{display:inline}.fr-m{float:right}.fn-m{float:none}.i-m{font-style:italic}.fs-normal-m{font-style:normal}.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.33333%}.w-two-thirds-m{width:66.66667%}.w-auto-m{width:auto}.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}.rotate-45-m{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-m{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-m{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-m{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-m{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-m{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-m{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-top:0;padding-bottom:0}.pv1-m{padding-top:.25rem;padding-bottom:.25rem}.pv2-m{padding-top:.5rem;padding-bottom:.5rem}.pv3-m{padding-top:1rem;padding-bottom:1rem}.pv4-m{padding-top:2rem;padding-bottom:2rem}.pv5-m{padding-top:4rem;padding-bottom:4rem}.pv6-m{padding-top:8rem;padding-bottom:8rem}.pv7-m{padding-top:16rem;padding-bottom:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-top:0;margin-bottom:0}.mv1-m{margin-top:.25rem;margin-bottom:.25rem}.mv2-m{margin-top:.5rem;margin-bottom:.5rem}.mv3-m{margin-top:1rem;margin-bottom:1rem}.mv4-m{margin-top:2rem;margin-bottom:2rem}.mv5-m{margin-top:4rem;margin-bottom:4rem}.mv6-m{margin-top:8rem;margin-bottom:8rem}.mv7-m{margin-top:16rem;margin-bottom:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-m{font-variant:small-caps}.truncate-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}.clip-m{position:fixed!important;position:absolute!important;clip:rect(1px);clip:rect(1px,1px,1px,1px)}.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-repeat:no-repeat;background-position:0}.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,0.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,0.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,0.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,0.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,0.2)}.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{top:0;right:0;bottom:0;left:0}.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}.flex-l{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-l{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-l{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-l{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-l{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column-l,.flex-row-l{-webkit-box-direction:normal}.flex-row-l{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-l{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-nowrap-l{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.flex-wrap-reverse-l{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.flex-column-reverse-l{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.flex-row-reverse-l{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.items-start-l{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end-l{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center-l{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline-l{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch-l{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start-l{-ms-flex-item-align:start;align-self:flex-start}.self-end-l{-ms-flex-item-align:end;align-self:flex-end}.self-center-l{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline-l{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-l{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.justify-start-l{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-l{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-l{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-l{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-l{-ms-flex-pack:distribute;justify-content:space-around}.content-start-l{-ms-flex-line-pack:start;align-content:flex-start}.content-end-l{-ms-flex-line-pack:end;align-content:flex-end}.content-center-l{-ms-flex-line-pack:center;align-content:center}.content-between-l{-ms-flex-line-pack:justify;align-content:space-between}.content-around-l{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-l{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-l{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-l{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-l{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-l{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-l{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-l{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-l{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-l{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-l{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-l{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}.flex-grow-0-l{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.flex-grow-1-l{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.flex-shrink-0-l{-ms-flex-negative:0;flex-shrink:0}.flex-shrink-1-l{-ms-flex-negative:1;flex-shrink:1}.fl-l{float:left}.fl-l,.fr-l{display:inline}.fr-l{float:right}.fn-l{float:none}.i-l{font-style:italic}.fs-normal-l{font-style:normal}.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.33333%}.w-two-thirds-l{width:66.66667%}.w-auto-l{width:auto}.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}.rotate-45-l{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-l{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-l{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-l{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-l{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-l{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-l{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-top:0;padding-bottom:0}.pv1-l{padding-top:.25rem;padding-bottom:.25rem}.pv2-l{padding-top:.5rem;padding-bottom:.5rem}.pv3-l{padding-top:1rem;padding-bottom:1rem}.pv4-l{padding-top:2rem;padding-bottom:2rem}.pv5-l{padding-top:4rem;padding-bottom:4rem}.pv6-l{padding-top:8rem;padding-bottom:8rem}.pv7-l{padding-top:16rem;padding-bottom:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-top:0;margin-bottom:0}.mv1-l{margin-top:.25rem;margin-bottom:.25rem}.mv2-l{margin-top:.5rem;margin-bottom:.5rem}.mv3-l{margin-top:1rem;margin-bottom:1rem}.mv4-l{margin-top:2rem;margin-bottom:2rem}.mv5-l{margin-top:4rem;margin-bottom:4rem}.mv6-l{margin-top:8rem;margin-bottom:8rem}.mv7-l{margin-top:16rem;margin-bottom:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-l{font-variant:small-caps}.truncate-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}.clip-l{position:fixed!important;position:absolute!important;clip:rect(1px);clip:rect(1px,1px,1px,1px)}.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}}:root{--color-white:#FFF;--color-black:#070B14;--color-neutral:#293648;--color-neutral-90:#394B5B;--color-neutral-80:#505F6D;--color-neutral-70:#65737F;--color-neutral-60:#7C8792;--color-neutral-50:#919BA4;--color-neutral-40:#A7AFB6;--color-neutral-30:#C3C9CD;--color-neutral-20:#D3D7DB;--color-neutral-14:#E0E3E5;--color-neutral-10:#E9EBEC;--color-neutral-04:#F6F7F8;--color-green:#2ACA4B;--color-green-hover:#199E33;--color-green-darker:#006607;--color-green-disabled:#94E4A5;--color-blue:#007FFF;--color-blue-hover:#06C;--color-blue-darker:#003E83;--color-blue-disabled:#7FBFFF;--color-mint:#159F84;--color-mint-hover:#0B856D;--color-mint-darker:#045943;--color-mint-disabled:#8ACFC1;--color-yellow:#F2CD02;--color-yellow-hover:#C4A500;--color-yellow-darker:#9F7D07;--color-yellow-disabled:#FBF0B3;--color-red:#D8524E;--color-red-hover:#B33C38;--color-red-darker:#A52724;--color-red-disabled:#EBA8A6;--color-pink:#F9A5E4}.color-white{color:#FFF}.color-black{color:#070B14}.color-neutral{color:#293648}.color-neutral-90{color:#394B5B}.color-neutral-80{color:#505F6D}.color-neutral-70{color:#65737F}.color-neutral-60{color:#7C8792}.color-neutral-50{color:#919BA4}.color-neutral-40{color:#A7AFB6}.color-neutral-30{color:#C3C9CD}.color-neutral-20{color:#D3D7DB}.color-neutral-14{color:#E0E3E5}.color-neutral-10{color:#E9EBEC}.color-neutral-04{color:#F6F7F8}.color-green{color:#2ACA4B}.color-green-hover{color:#199E33}.color-green-darker{color:#006607}.color-green-disabled{color:#94E4A5}.color-blue{color:#007FFF}.color-blue-hover{color:#06C}.color-blue-darker{color:#003E83}.color-blue-disabled{color:#7FBFFF}.color-mint{color:#159F84}.color-mint-hover{color:#0B856D}.color-mint-darker{color:#045943}.color-mint-disabled{color:#8ACFC1}.color-yellow{color:#F2CD02}.color-yellow-hover{color:#C4A500}.color-yellow-darker{color:#9F7D07}.color-yellow-disabled{color:#FBF0B3}.color-red{color:#D8524E}.color-red-hover{color:#B33C38}.color-red-darker{color:#A52724}.color-red-disabled{color:#EBA8A6}.color-pink{color:#F9A5E4}.hover-color-white:hover,.hover-color-white:focus{color:#FFF}.hover-color-black:hover,.hover-color-black:focus{color:#070B14}.hover-color-neutral:hover,.hover-color-neutral:focus{color:#293648}.hover-color-neutral-90:hover,.hover-color-neutral-90:focus{color:#394B5B}.hover-color-neutral-80:hover,.hover-color-neutral-80:focus{color:#505F6D}.hover-color-neutral-70:hover,.hover-color-neutral-70:focus{color:#65737F}.hover-color-neutral-60:hover,.hover-color-neutral-60:focus{color:#7C8792}.hover-color-neutral-50:hover,.hover-color-neutral-50:focus{color:#919BA4}.hover-color-neutral-40:hover,.hover-color-neutral-40:focus{color:#A7AFB6}.hover-color-neutral-30:hover,.hover-color-neutral-30:focus{color:#C3C9CD}.hover-color-neutral-20:hover,.hover-color-neutral-20:focus{color:#D3D7DB}.hover-color-neutral-14:hover,.hover-color-neutral-14:focus{color:#E0E3E5}.hover-color-neutral-10:hover,.hover-color-neutral-10:focus{color:#E9EBEC}.hover-color-neutral-04:hover,.hover-color-neutral-04:focus{color:#F6F7F8}.hover-color-green:hover,.hover-color-green:focus{color:#2ACA4B}.hover-color-green-hover:hover,.hover-color-green-hover:focus{color:#199E33}.hover-color-green-darker:hover,.hover-color-green-darker:focus{color:#006607}.hover-color-green-disabled:hover,.hover-color-green-disabled:focus{color:#94E4A5}.hover-color-blue:hover,.hover-color-blue:focus{color:#007FFF}.hover-color-blue-hover:hover,.hover-color-blue-hover:focus{color:#06C}.hover-color-blue-darker:hover,.hover-color-blue-darker:focus{color:#003E83}.hover-color-blue-disabled:hover,.hover-color-blue-disabled:focus{color:#7FBFFF}.hover-color-mint:hover,.hover-color-mint:focus{color:#159F84}.hover-color-mint-hover:hover,.hover-color-mint-hover:focus{color:#0B856D}.hover-color-mint-darker:hover,.hover-color-mint-darker:focus{color:#045943}.hover-color-mint-disabled:hover,.hover-color-mint-disabled:focus{color:#8ACFC1}.hover-color-yellow:hover,.hover-color-yellow:focus{color:#F2CD02}.hover-color-yellow-hover:hover,.hover-color-yellow-hover:focus{color:#C4A500}.hover-color-yellow-darker:hover,.hover-color-yellow-darker:focus{color:#9F7D07}.hover-color-yellow-disabled:hover,.hover-color-yellow-disabled:focus{color:#FBF0B3}.hover-color-red:hover,.hover-color-red:focus{color:#D8524E}.hover-color-red-hover:hover,.hover-color-red-hover:focus{color:#B33C38}.hover-color-red-darker:hover,.hover-color-red-darker:focus{color:#A52724}.hover-color-red-disabled:hover,.hover-color-red-disabled:focus{color:#EBA8A6}.hover-color-pink:hover,.hover-color-pink:focus{color:#F9A5E4}.bg-white{background-color:#FFF}.bg-black{background-color:#070B14}.bg-neutral{background-color:#293648}.bg-neutral-90{background-color:#394B5B}.bg-neutral-80{background-color:#505F6D}.bg-neutral-70{background-color:#65737F}.bg-neutral-60{background-color:#7C8792}.bg-neutral-50{background-color:#919BA4}.bg-neutral-40{background-color:#A7AFB6}.bg-neutral-30{background-color:#C3C9CD}.bg-neutral-20{background-color:#D3D7DB}.bg-neutral-14{background-color:#E0E3E5}.bg-neutral-10{background-color:#E9EBEC}.bg-neutral-04{background-color:#F6F7F8}.bg-green{background-color:#2ACA4B}.bg-green-hover{background-color:#199E33}.bg-green-darker{background-color:#006607}.bg-green-disabled{background-color:#94E4A5}.bg-blue{background-color:#007FFF}.bg-blue-hover{background-color:#06C}.bg-blue-darker{background-color:#003E83}.bg-blue-disabled{background-color:#7FBFFF}.bg-mint{background-color:#159F84}.bg-mint-hover{background-color:#0B856D}.bg-mint-darker{background-color:#045943}.bg-mint-disabled{background-color:#8ACFC1}.bg-yellow{background-color:#F2CD02}.bg-yellow-hover{background-color:#C4A500}.bg-yellow-darker{background-color:#9F7D07}.bg-yellow-disabled{background-color:#FBF0B3}.bg-red{background-color:#D8524E}.bg-red-hover{background-color:#B33C38}.bg-red-darker{background-color:#A52724}.bg-red-disabled{background-color:#EBA8A6}.bg-pink{background-color:#F9A5E4}.hover-bg-white:hover,.hover-bg-white:focus{background-color:#FFF}.hover-bg-black:hover,.hover-bg-black:focus{background-color:#070B14}.hover-bg-neutral:hover,.hover-bg-neutral:focus{background-color:#293648}.hover-bg-neutral-90:hover,.hover-bg-neutral-90:focus{background-color:#394B5B}.hover-bg-neutral-80:hover,.hover-bg-neutral-80:focus{background-color:#505F6D}.hover-bg-neutral-70:hover,.hover-bg-neutral-70:focus{background-color:#65737F}.hover-bg-neutral-60:hover,.hover-bg-neutral-60:focus{background-color:#7C8792}.hover-bg-neutral-50:hover,.hover-bg-neutral-50:focus{background-color:#919BA4}.hover-bg-neutral-40:hover,.hover-bg-neutral-40:focus{background-color:#A7AFB6}.hover-bg-neutral-30:hover,.hover-bg-neutral-30:focus{background-color:#C3C9CD}.hover-bg-neutral-20:hover,.hover-bg-neutral-20:focus{background-color:#D3D7DB}.hover-bg-neutral-14:hover,.hover-bg-neutral-14:focus{background-color:#E0E3E5}.hover-bg-neutral-10:hover,.hover-bg-neutral-10:focus{background-color:#E9EBEC}.hover-bg-neutral-04:hover,.hover-bg-neutral-04:focus{background-color:#F6F7F8}.hover-bg-green:hover,.hover-bg-green:focus{background-color:#2ACA4B}.hover-bg-green-hover:hover,.hover-bg-green-hover:focus{background-color:#199E33}.hover-bg-green-darker:hover,.hover-bg-green-darker:focus{background-color:#006607}.hover-bg-green-disabled:hover,.hover-bg-green-disabled:focus{background-color:#94E4A5}.hover-bg-blue:hover,.hover-bg-blue:focus{background-color:#007FFF}.hover-bg-blue-hover:hover,.hover-bg-blue-hover:focus{background-color:#06C}.hover-bg-blue-darker:hover,.hover-bg-blue-darker:focus{background-color:#003E83}.hover-bg-blue-disabled:hover,.hover-bg-blue-disabled:focus{background-color:#7FBFFF}.hover-bg-mint:hover,.hover-bg-mint:focus{background-color:#159F84}.hover-bg-mint-hover:hover,.hover-bg-mint-hover:focus{background-color:#0B856D}.hover-bg-mint-darker:hover,.hover-bg-mint-darker:focus{background-color:#045943}.hover-bg-mint-disabled:hover,.hover-bg-mint-disabled:focus{background-color:#8ACFC1}.hover-bg-yellow:hover,.hover-bg-yellow:focus{background-color:#F2CD02}.hover-bg-yellow-hover:hover,.hover-bg-yellow-hover:focus{background-color:#C4A500}.hover-bg-yellow-darker:hover,.hover-bg-yellow-darker:focus{background-color:#9F7D07}.hover-bg-yellow-disabled:hover,.hover-bg-yellow-disabled:focus{background-color:#FBF0B3}.hover-bg-red:hover,.hover-bg-red:focus{background-color:#D8524E}.hover-bg-red-hover:hover,.hover-bg-red-hover:focus{background-color:#B33C38}.hover-bg-red-darker:hover,.hover-bg-red-darker:focus{background-color:#A52724}.hover-bg-red-disabled:hover,.hover-bg-red-disabled:focus{background-color:#EBA8A6}.hover-bg-pink:hover,.hover-bg-pink:focus{background-color:#F9A5E4}._9ed5c2b2 .error{font-size:.875rem;font-weight:normal;color:#D8524E}._49be9f42{position:absolute;right:0;top:3.75rem;z-index:100;min-width:18rem;padding:1rem;background-color:var(--color-white);color:var(--color-neutral-80);box-shadow:0 0 0.75rem rgba(0,0,0,0.25)}._49be9f42 .gravatar{border-radius:50%;width:3rem;height:3rem;display:block;margin:0 .5rem 0 0;border:2px solid var(--color-neutral-04)}._49be9f42 .content{margin-top:.5rem;margin-bottom:.5rem;padding-top:.5rem;padding-bottom:.5rem;border-top:1px solid var(--color-neutral-10);border-bottom:1px solid var(--color-neutral-10)}._49be9f42 .close-button{position:absolute;right:.5rem;top:.5rem;display:block;overflow:hidden;color:var(--color-neutral-20)}._49be9f42 .close-button:hover,._49be9f42 .close-button:focus{color:var(--color-neutral-40)}._49be9f42 .close-button svg{fill:currentColor;max-width:1.5rem;max-height:1.5rem}._49be9f42 ul{padding-left:0;border-top:1px solid var(--color-neutral-20)}._49be9f42 ul a{display:block;color:var(--color-neutral-60)}._49be9f42 ul a:hover,._49be9f42 ul a:focus{color:var(--color-neutral-80)}._49be9f42 ul li{margin-top:.5rem;margin-bottom:.5rem}._49be9f42 ul:hover .delete-btn,._49be9f42 ul:focus .delete-btn{visibility:visible}._49be9f42 ul svg{fill:currentColor;max-width:1rem;max-height:1.5rem}.dat-progress-circle{margin-right:10px;margin-top:10px;position:relative;display:inline-block;width:90px;height:90px;line-height:90px;border-radius:50%;background:#394b5b;background-image:-webkit-linear-gradient(left,transparent 50%,#2980B9 0);background-image:linear-gradient(to right,transparent 50%,#2980B9 0);color:transparent;text-align:center;-webkit-animation:done 100.1s linear infinite;animation:done 100.1s linear infinite;-webkit-animation-play-state:paused;animation-play-state:paused}.dat-progress-circle:hover{box-shadow:0 1px 1rem rgba(0,0,0,0.3)}@-webkit-keyframes spin{to{-webkit-transform:rotate(0.5turn);transform:rotate(0.5turn)}}@keyframes spin{to{-webkit-transform:rotate(0.5turn);transform:rotate(0.5turn)}}@-webkit-keyframes bg{50%{background:#2980B9}}@keyframes bg{50%{background:#2980B9}}@-webkit-keyframes done{0%{background-color:#394b5b}99%{background-color:#394b5b}100%{background-color:#35B44F}}@keyframes done{0%{background-color:#394b5b}99%{background-color:#394b5b}100%{background-color:#35B44F}}@keyframes bounce-once{0%{transform:scale(1)}50%{transform:scale(1.2)}100%{transform:scale(1)}}.bounce-once{animation:bounce-once 0.5s cubic-bezier(0.32,-0.28,0.76,1.31) forwards}.dat-progress-circle::before{content:'';position:absolute;top:0;left:50%;width:50%;height:100%;border-radius:0 100% 100% 0 / 50%;background-color:inherit;-webkit-transform-origin:left;transform-origin:left;-webkit-animation:spin 50s linear infinite,bg 100s step-end infinite;animation:spin 50s linear infinite,bg 100s step-end infinite;-webkit-animation-play-state:paused;animation-play-state:paused;-webkit-animation-delay:inherit;animation-delay:inherit}.dat-progress-circle__progress{position:absolute;background-color:#65737F;width:78px;height:78px;top:6px;left:6px;z-index:3;border-radius:50%;overflow:hidden;color:white}.dat-progress-circle__progress span{position:relative;top:-7px}._eb476de8{display:inline-block;line-height:1.25;padding:1rem;font-size:.875rem;background-color:transparent;color:var(--color-neutral-60)}._eb476de8 .btn__icon-img{width:1.25rem;max-height:1rem}._7a91c1a2 img{transition:transform .5s ease-in-out;width:inherit}._7a91c1a2:hover img,._7a91c1a2:focus img{transform:rotate(360deg)}.dat-details{padding-top:.75rem;padding-bottom:.25rem}.dat-detail{display:inline-block;margin-right:1rem;color:var(--color-neutral-60)}@media only screen and (min-width:40rem){.dat-detail{margin-right:1.5rem}}.dat-detail p{margin-bottom:0}._3454a805{display:block;width:2.25em;height:2.25em;vertical-align:middle;border:2px solid var(--color-white);background-color:var(--color-pink);margin:auto}._3454a805:hover,._3454a805:focus{border-color:var(--color-green)}._50f126a3 img,._50f126a3 video{max-width:100%;height:auto;display:block;margin:0 auto}._50f126a3 iframe{width:100%;height:100%;border:1px solid var(--color-neutral-20)}._50f126a3 table{width:100%;margin-top:10px;margin-bottom:10px;font-size:14px;border-spacing:0;border-collapse:collapse}._50f126a3 table th,._50f126a3 table td{margin:0;border:1px solid var(--color-neutral-80);text-align:left;padding:5px 10px;color:var(--color-neutral);min-height:1.42857143}._cb702a9f{display:block;fill:currentColor}._74b6e2c1{width:4rem}._74b6e2c1 #p1,._74b6e2c1 #p2{animation:size cubic-bezier(0.165,0.84,0.44,1) 1.8s,opacity cubic-bezier(0.3,0.61,0.355,1) 1.8s;animation-iteration-count:infinite;transform-origin:50% 50%;stroke-opacity:1}._74b6e2c1 #p2{animation-delay:-.9s}@keyframes size{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes opacity{0%{stroke-opacity:1}100%{stroke-opacity:0}}._a20deb17{position:fixed;top:0;padding:1rem 1.5rem;width:100%;text-align:center;z-index:999;color:var(--color-white)}._a20deb17.success{background-color:var(--color-blue)}._a20deb17.error{background-color:var(--color-red)}._a20deb17.warning{background-color:var(--color-yellow-hover)}._41b819fa .dat-header{padding-top:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-neutral-10);background-color:var(--color-neutral-04);font-size:.8125rem}@media only screen and (min-width:40rem){._41b819fa .dat-header .dat-header-actions-wrapper{float:right;margin-left:2rem}}._41b819fa .title{word-wrap:break-word;font-size:1.15rem}._41b819fa .dat-header-action{display:inline-block;margin-left:1rem;padding-top:.4rem;border:0;font-size:.875rem;line-height:1.25;background-color:transparent;color:var(--color-neutral-80)}._41b819fa .dat-header-action:not([disabled]):hover,._41b819fa .dat-header-action:not([disabled]):focus{color:var(--color-neutral)}._41b819fa .dat-header-action:first-child{margin-left:0;padding-left:0}._41b819fa .dat-header-action:disabled{opacity:0.5}._41b819fa .dat-header-action svg,._41b819fa .dat-header-action .btn__icon-img{width:1rem;max-width:1.25rem;max-height:1rem}._75b87e71 textarea{min-height:7rem}._7cab2156{min-height:calc(100vh - 4rem)}._5ed90034{display:block;margin:0 auto;height:auto;box-shadow:0 0 1.5rem rgba(0,0,0,0.15)}._907e8426{background-repeat:no-repeat;background-position:center -50px;background-size:100%}@media screen and (min-width:30em){._907e8426{background-position:center -200px}}@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url(/public/fonts/Source+Code+Pro_400_normal.eot);src:local("☺"),url(/public/fonts/Source+Code+Pro_400_normal.eot?#iefix) format("embedded-opentype"),url(/public/fonts/Source+Code+Pro_400_normal.woff) format("woff"),url(/public/fonts/Source+Code+Pro_400_normal.ttf) format("truetype"),url(/public/fonts/Source+Code+Pro_400_normal.svg#Source+Code+Pro_400_normal) format("svg")}@font-face{font-family:'Source Code Pro';font-style:normal;font-weight:500;src:url(/public/fonts/Source+Code+Pro_500_normal.eot);src:local("☺"),url(/public/fonts/Source+Code+Pro_500_normal.eot?#iefix) format("embedded-opentype"),url(/public/fonts/Source+Code+Pro_500_normal.woff) format("woff"),url(/public/fonts/Source+Code+Pro_500_normal.ttf) format("truetype"),url(/public/fonts/Source+Code+Pro_500_normal.svg#Source+Code+Pro_500_normal) format("svg")}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:400;src:url(/public/fonts/Source+Sans+Pro_400_normal.eot);src:local("☺"),url(/public/fonts/Source+Sans+Pro_400_normal.eot?#iefix) format("embedded-opentype"),url(/public/fonts/Source+Sans+Pro_400_normal.woff) format("woff"),url(/public/fonts/Source+Sans+Pro_400_normal.ttf) format("truetype"),url(/public/fonts/Source+Sans+Pro_400_normal.svg#Source+Sans+Pro_400_normal) format("svg")}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:700;src:url(/public/fonts/Source+Sans+Pro_700_normal.eot);src:local("☺"),url(/public/fonts/Source+Sans+Pro_700_normal.eot?#iefix) format("embedded-opentype"),url(/public/fonts/Source+Sans+Pro_700_normal.woff) format("woff"),url(/public/fonts/Source+Sans+Pro_700_normal.ttf) format("truetype"),url(/public/fonts/Source+Sans+Pro_700_normal.svg#Source+Sans+Pro_700_normal) format("svg")}html{font-size:87.5%}@media screen and (min-width:40rem){html{font-size:100%}}body,button,input,optgroup,select,textarea{font-family:'Source Sans Pro','PT Sans','Calibri',sans-serif}body{margin:0;padding:0;font-size:100%;background-color:#FFF;color:#293648;-webkit-font-smoothing:antialiased}body{position:relative}body.panel-open{overflow-y:hidden}.hidden{display:none!important}a,button,input[type="submit"]{cursor:pointer}a:focus,button:focus,input[type="submit"]:focus{outline:none}a:disabled,button:disabled,input[type="submit"]:disabled{cursor:default}a:hover,a:focus{outline:none}svg{fill:currentColor}.site-main{position:relative;padding-top:3rem;padding-bottom:3rem}#add-files{float:right}.danger-block{background-color:#D8524E;text-align:center;color:#FFF}.danger-block h1,.danger-block h2,.danger-block h3,.danger-block h4,.danger-block h5{color:#FFF}.danger-block a{text-decoration:underline;color:#FFF}.clipboard:hover{cursor:pointer}.container{padding-right:1rem;padding-left:1rem;margin-right:auto;margin-left:auto;max-width:64rem}@media screen and (min-width:30rem){.container{padding-right:1.5rem;padding-left:1.5rem}}@media screen and (min-width:40rem){.container{padding-right:2rem;padding-left:2rem}}.container--top-bar{width:auto;max-width:100%;padding-right:.5rem;padding-left:.5rem}@media screen and (min-width:30rem){.container--top-bar{padding-right:.5rem;padding-left:.5rem}}@media screen and (min-width:40rem){.container--top-bar{padding-right:1rem;padding-left:1rem}}@media screen and (min-width:64rem){.container--top-bar{padding-right:2rem;padding-left:2rem}}.container--narrow{max-width:48rem}.container--wide{max-width:80rem}.row{box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-1rem;margin-left:-1rem}.row.reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.col.reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.col-xs,.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-offset-0,.col-xs-offset-1,.col-xs-offset-2,.col-xs-offset-3,.col-xs-offset-4,.col-xs-offset-5,.col-xs-offset-6,.col-xs-offset-7,.col-xs-offset-8,.col-xs-offset-9,.col-xs-offset-10,.col-xs-offset-11,.col-xs-offset-12{box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:1rem;padding-left:1rem}.col-xs{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-xs-1{-ms-flex-preferred-size:8.33333333%;flex-basis:8.33333333%;max-width:8.33333333%}.col-xs-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}.col-xs-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-xs-4{-ms-flex-preferred-size:33.33333333%;flex-basis:33.33333333%;max-width:33.33333333%}.col-xs-5{-ms-flex-preferred-size:41.66666667%;flex-basis:41.66666667%;max-width:41.66666667%}.col-xs-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-xs-7{-ms-flex-preferred-size:58.33333333%;flex-basis:58.33333333%;max-width:58.33333333%}.col-xs-8{-ms-flex-preferred-size:66.66666667%;flex-basis:66.66666667%;max-width:66.66666667%}.col-xs-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-xs-10{-ms-flex-preferred-size:83.33333333%;flex-basis:83.33333333%;max-width:83.33333333%}.col-xs-11{-ms-flex-preferred-size:91.66666667%;flex-basis:91.66666667%;max-width:91.66666667%}.col-xs-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-11{margin-left:91.66666667%}.start-xs{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:start}.center-xs{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.end-xs{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:end}.top-xs{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.middle-xs{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.bottom-xs{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.around-xs{-ms-flex-pack:distribute;justify-content:space-around}.between-xs{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.first-xs{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.last-xs{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}@media only screen and (min-width:40rem){.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-offset-0,.col-sm-offset-1,.col-sm-offset-2,.col-sm-offset-3,.col-sm-offset-4,.col-sm-offset-5,.col-sm-offset-6,.col-sm-offset-7,.col-sm-offset-8,.col-sm-offset-9,.col-sm-offset-10,.col-sm-offset-11,.col-sm-offset-12{box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:1rem;padding-left:1rem}.col-sm{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-sm-1{-ms-flex-preferred-size:8.33333333%;flex-basis:8.33333333%;max-width:8.33333333%}.col-sm-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}.col-sm-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-sm-4{-ms-flex-preferred-size:33.33333333%;flex-basis:33.33333333%;max-width:33.33333333%}.col-sm-5{-ms-flex-preferred-size:41.66666667%;flex-basis:41.66666667%;max-width:41.66666667%}.col-sm-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-sm-7{-ms-flex-preferred-size:58.33333333%;flex-basis:58.33333333%;max-width:58.33333333%}.col-sm-8{-ms-flex-preferred-size:66.66666667%;flex-basis:66.66666667%;max-width:66.66666667%}.col-sm-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-sm-10{-ms-flex-preferred-size:83.33333333%;flex-basis:83.33333333%;max-width:83.33333333%}.col-sm-11{-ms-flex-preferred-size:91.66666667%;flex-basis:91.66666667%;max-width:91.66666667%}.col-sm-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-11{margin-left:91.66666667%}.start-sm{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:start}.center-sm{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.end-sm{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:end}.top-sm{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.middle-sm{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.bottom-sm{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.around-sm{-ms-flex-pack:distribute;justify-content:space-around}.between-sm{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.first-sm{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.last-sm{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}}@media only screen and (min-width:64rem){.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-offset-0,.col-md-offset-1,.col-md-offset-2,.col-md-offset-3,.col-md-offset-4,.col-md-offset-5,.col-md-offset-6,.col-md-offset-7,.col-md-offset-8,.col-md-offset-9,.col-md-offset-10,.col-md-offset-11,.col-md-offset-12{box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:1rem;padding-left:1rem}.col-md{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-md-1{-ms-flex-preferred-size:8.33333333%;flex-basis:8.33333333%;max-width:8.33333333%}.col-md-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}.col-md-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-md-4{-ms-flex-preferred-size:33.33333333%;flex-basis:33.33333333%;max-width:33.33333333%}.col-md-5{-ms-flex-preferred-size:41.66666667%;flex-basis:41.66666667%;max-width:41.66666667%}.col-md-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-md-7{-ms-flex-preferred-size:58.33333333%;flex-basis:58.33333333%;max-width:58.33333333%}.col-md-8{-ms-flex-preferred-size:66.66666667%;flex-basis:66.66666667%;max-width:66.66666667%}.col-md-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-md-10{-ms-flex-preferred-size:83.33333333%;flex-basis:83.33333333%;max-width:83.33333333%}.col-md-11{-ms-flex-preferred-size:91.66666667%;flex-basis:91.66666667%;max-width:91.66666667%}.col-md-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-11{margin-left:91.66666667%}.start-md{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:start}.center-md{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.end-md{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:end}.top-md{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.middle-md{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.bottom-md{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.around-md{-ms-flex-pack:distribute;justify-content:space-around}.between-md{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.first-md{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.last-md{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}}@media only screen and (min-width:90rem){.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-offset-0,.col-lg-offset-1,.col-lg-offset-2,.col-lg-offset-3,.col-lg-offset-4,.col-lg-offset-5,.col-lg-offset-6,.col-lg-offset-7,.col-lg-offset-8,.col-lg-offset-9,.col-lg-offset-10,.col-lg-offset-11,.col-lg-offset-12{box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:1rem;padding-left:1rem}.col-lg{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;max-width:100%}.col-lg-1{-ms-flex-preferred-size:8.33333333%;flex-basis:8.33333333%;max-width:8.33333333%}.col-lg-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.col-lg-4{-ms-flex-preferred-size:33.33333333%;flex-basis:33.33333333%;max-width:33.33333333%}.col-lg-5{-ms-flex-preferred-size:41.66666667%;flex-basis:41.66666667%;max-width:41.66666667%}.col-lg-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-lg-7{-ms-flex-preferred-size:58.33333333%;flex-basis:58.33333333%;max-width:58.33333333%}.col-lg-8{-ms-flex-preferred-size:66.66666667%;flex-basis:66.66666667%;max-width:66.66666667%}.col-lg-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.col-lg-10{-ms-flex-preferred-size:83.33333333%;flex-basis:83.33333333%;max-width:83.33333333%}.col-lg-11{-ms-flex-preferred-size:91.66666667%;flex-basis:91.66666667%;max-width:91.66666667%}.col-lg-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-11{margin-left:91.66666667%}.start-lg{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:start}.center-lg{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.end-lg{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:end}.top-lg{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.middle-lg{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.bottom-lg{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.around-lg{-ms-flex-pack:distribute;justify-content:space-around}.between-lg{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.first-lg{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.last-lg{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}}.section{padding-top:2rem;padding-bottom:2rem}@media screen and (min-width:40rem){.section{padding-top:3rem;padding-bottom:3rem}}@media screen and (min-width:64rem){.section{padding-top:4rem;padding-bottom:4rem}}.bg-splash{background-image:url(/public/img/bg-landing-page.svg);background-repeat:no-repeat;background-position:50% 46%;background-size:240%,100%}@media screen and (min-width:40rem){.bg-splash{background-position:50% 64%;background-size:160%,100%}}@media screen and (min-width:64rem){.bg-splash{background-position:50% 64%;background-size:95%,100%}}@media screen and (min-width:90rem){.bg-splash{background-position:50% 64%;background-size:90%,100%}}@media screen and (min-width:110rem){.bg-splash{background-position:50% 64%;background-size:90%,100%}}.bg-splash-02{background-image:url(/public/img/bg-landing-page.svg);background-repeat:no-repeat;background-position:50vw 46%;background-size:200%}@media screen and (min-width:40rem){.bg-splash-02{background-size:100%}}.horizontal-rule:after{content:'';display:block;width:4rem;height:5px;margin-top:1.25rem;margin-bottom:1rem;background-color:#F9A5E4}.block-create{text-align:center;display:flex;justify-content:space-between;align-items:center;flex-direction:column;position:relative}.block-create .dat-input{border:4px solid #199E33}.block-create__icon{display:block;fill:#FFF;width:4rem;height:4rem;margin-bottom:2rem}.block-create--import{flex-direction:row}.block-create--import svg{margin-bottom:0}.status-bar{position:fixed;bottom:0;width:100%;padding-top:.25rem;padding-bottom:.25rem;border-top:1px solid #E9EBEC;background-color:#F6F7F8;font-size:.6875rem;text-align:center}.status-bar .container{overflow:hidden}.status-bar-status{float:left}.status-bar-stats{float:right}#hyperdrive-ui{clear:both}#file-widget,#import-queue{width:100%;border-collapse:collapse}#file-widget tr,#import-queue tr{font-size:14px;color:#293648;text-decoration:none}#file-widget tr:hover,#import-queue tr:hover{background-color:#F6F7F8}#file-widget td,#import-queue td{padding:10px;border-bottom:1px solid #D3D7DB}#file-widget .name,#import-queue .name{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#file-widget .progress,#import-queue .progress{min-width:100px}#file-widget .size,#file-widget .modified,#import-queue .size,#import-queue .modified{text-align:right}#file-widget .directory .size,#import-queue .directory .size{text-indent:-9999px;overflow:hidden;text-align:left}#file-widget tr{cursor:pointer}#file-widget td:first-child{padding-left:35px}#file-widget .file td:first-child{background-size:15px;background-repeat:no-repeat;background-position:10px 11px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAABQZJREFUeJzt3M9rnEUcx/HPzPNskk3TTTZNVFQKIkIOEnr3pBQv2osiuKWpJ1Ei4kF7EPwnPIiIt5jmLPQkpV1wS089ay6ihJCy+dHEza/dZ/PMeEilYos2mZmdZ/f7eR1DmOfL5s3u7LOzAYiIiIhIHBVy8fqdOxeM0a9bixkoNQFlk5DXi2F9Z+uny5cufR97jtMKEsCtxt33APsVoGdDrF8kyyt/2Gpl7KN+jcBrAI1Go5ohXQDwts91i2x55XcAqm8j0L4WqtfvTXVs+jME/fEfsWq7tffd0o0bH8ae5KS8BFCv19OjtPujUnjVx3r9qT8j8BKASUe+0MBrPtbqb/0XgXMAN2/eG4cxX/oYZjD0VwTOAaiR7H1oXfExzODonwjcAzDqLR+DDJ7+iMB9D6DNBQ9zDKjiR+AcgDF4zscgg6vYETgHoLUu+RhksBU3Am83guj/FDMCBtBTxYuAAfRcsSJgAFEUJwIGEE0xImAAUcWPgAFEFzcCBlAI8SJgAIURJwIGUCi9j4ABONLK90PY2wgYgKNSmgZYtXcRMABH5aHhQCv3JgIG4Ojs6JmAq4ePgAE4OlMuY7g0FPAKYSNgAB48Wz0X+ArhImAAHoyOjGBqvBr4KmEiYACeTI1P4NzZ8cBX8R8BA/BoujqJ56emkeiQX4L2GwED8KwyOoaXX3gRz0xUMRRsc+gvghB3McTTSmOyMoHJygSO8hzZURd5bgBYn5dRsPgagNM3khlAYGmSIE2CvSSUXRfgS4BwDEA4BiBc9D1A62Av9ghRVUbHol4/egBrmxuxR4iqcj5uAHwJEI4BCMcAhGMAwkXfBM6cfyn2CKLxGUA4BiAcAxCOAQjHAIRjAMIxAOEYgHAMQLjodwJ5HoDnAWKPEBXPA1BUDEA4BiAcAxAu+iaQ5wHi4jOAcAxAOAYgHAMQjgEIxwCEYwDCMQDhGIBw0e8E8jwAzwPEHiEqngegqBiAcAxAOAYgXPRNIM8DxMVnAOEYgHAMQDgGIBwDEI4BCMcAhGMAwjEA4aLfCeR5AJ4HiD1CVDwPQFExAOEYgHAMQLjom0CeB4iLzwDCMQDhGIBwDEA4BiAcAxCOAQjHAIRjAMIxAOEYgHAMQDgGIBwDEI4BCOccgLXWxxx0Gh4ee+cAcpM7D0Gn083dH3vnANqdzHkIOp125v7YOwew1z50HoJOZ7+977yGcwCtgz0Ya5wHoZMxxqC1X4AAjDFma2fHeRA6mc3WNo5y902Aj7eB21u7f+Kg0/awFD2N/XYbD3Z3oYEHrmv5CGAZAFY3ml42JfTf2lmGtc3m8VtArX91Xc89AIvbwPFr0sr6fbQO3V+X6MlaB3tYaa4hN3/vuewt1zWdA9DK/gDAAMcRrG2sY3WzicOs47o0PdTOOljdaGJtcwPm0c0fo4BF17WV6wIA8M3i4hKUrv3750NpCaPlMobTEhKd+LmYABYWuTHIul3sdw6RdbuP/Y6xWPj0yuUPXK/l5athibWf59ZchNbT//x5dtRFtvv48OTImGZizTUfS3n5MOjjubn7Csm7BuBbgdCMOUSavDN/9eq6j+W8fRo4P1drJEa9CWNk/8uPkIxpIk0uflKr3fW1pNePg+fnag07PDRrYZfwcGNIXhhjsaCsmfX5xwc8bQKf5Nvr11/JrbqiLN4wwIzWmATPHzwVY0wO6G2t8Yu1uJ0navGzWu23ENf6C/l/AOrWkOSOAAAAAElFTkSuQmCC)}#file-widget .directory td:first-child{background-size:15px;background-repeat:no-repeat;background-position:10px 11px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAABTpJREFUeJzt2s9rHHUYx/HP88zO7OZX2cQareLBU7IVLyJ4EaJFS6ogIlKK+A948FDEi1DTFQUV1CJ49iBCFSse1DYR61EQqfbQNlFPFvzRkh9tkibZ3fk+HrRp2sb00GS+230+r1tmhvAJeXd3OhuAiIiIiIiIiIiIOp/c6IKhsYm7TO1eDeEOQLMiRt0sQQgGnUtKdubUgdGzsfe0s3UDGHrriz691P0iEPZB5P6iR22mYOFXEf2wZfkHv9WfuBh7T7u5LoChsWPPidh7Ah2MMWirGMI5GF6YrO/5PPaWdqJrv6iNjb+pIh932i8fAAQ6KKJHhg+OH4i9pZ2svgLUxiZegdgbMccUxcz2T9ZHD8Xe0Q4EAIbGjj6iwHGI3vCmsBMEhJYYHpqs7zkRe0tsAjOp1Sd+BPBA7DG0aQIszAKYNJHvYMlHk/XHf1nvQqmNHX0Mot8UPJCKZMEg8kkwfWmqvvuPtacUkKdj7aKCiAog+1TCyeH6xMjaU2qQh2PtoqLJdrH82NoIVMTujjmJiqYVsfDZ8OtHdwCAwuy22JOoaLJdmvIOAEjt4LjFnkNRBKgM642vow6lCPY8A3DMYLsYgGMCDJdij4itVOmNPWHTGQywgNBqwvLWBlfKgO8ARFCudtwHn1cJeROtSwtoXroIWH7taXX9FqDJLfEHTjdFkxRZXz+6B+9Z99XOdwBZOfaEwogoytVBZH0DVx13HUBa6Yk9oXBpTxVZb//q124D0LQMzbpiz4gi7e1H8t/P7jQAQbnP9xPwbNu/bwUuA8h6+6FZJfaMqLRURpJ1+Qsg66ki7a3GntEWkkoP3DwHEE1Q3rYdicMbv/+TZJXOD0BLGUpdfSh190HE3QvehjRJNw5A0wxJ2gUppRBVQG6NPxoWA6AJklIKaBJ7TvsSWT+ApNKDrLcKLfl5UOLV1QFIgkr1diTl7khzqGirAYgqKgM7oKXOfz5OV6zeFZX77+Qv3yEFgLS3iiT1/WDEKxVRpD18MOKVJpUe/v/YMeWTMd80SXnj55mKdvzTYNoA3/ydYwDOMQDnGIBzDMA5BuAcA3COATjHAJxjAM4xAOcYgHMMwDkG4BwDcI4BOMcAnGMAzjEA5xiAcwzAOQbgHANwjgE4xwCcYwDOMQDnGIBzDMA5BuAcA3COATjHAJxjAM4xAOcYgHMMwDkG4BwDcI4BOMcAnGMAzjEA5xiAcwzAOQbgHANwjgE4xwCcYwDOMQDnGIBzDMA5BuAcA3COATjHAJxjAM4xAOcUZrE3UCxm0JA3Y8+gSELegIbGSuwdFElorEBbKwuxd1AkzeVFaL6yhNBqxN5CBQvNFYTGEjRYaDYuTsfeQ4UyrMxPIwANBfSvvLGE5sJs7FVUkMbCLEJjGTD8qSL20+WDzcULsbfRFmsszqG5MAcAUNgJhclXqyfnp7Eydw4WQrSBtDUs5Fie+xvN+Zm1h7/UFvLDsLD6T7+1vICl87+jMT/Dm8MOEFoNNOansXT+LPLlxSvHgRlB+VMBgNrB8ZcBvL3eNxBNoKUUIglMihlNmyDkyFtNIOTrnjaz/ZP10UMlADiz88K7tVPbnoTIyHUXhhx5Y/1vQremYPbtFL5/H7j8YdDevbkAzwSEn6MuoyKcqKD8LOr1AKz5NPB0fXQmNxuB4Ui8bbS17LBYNnKy/ujc5SPrvqvvHJt4yiQ/AOiDxY2jrWLAD2JSP1Pf/fW15za8rbvvtYlaHmyXAMMABoIh2bKVtGkEaIlgFrDTQe341Kt7pmJvIiIiIqI28g8P/1ywWiSczgAAAABJRU5ErkJggg==)}.btn__icon-wrapper{display:flex;flex-wrap:nowrap;flex-direction:row}.btn__icon-img{opacity:.5;display:block}.btn__icon-text{margin-left:.5em;white-space:nowrap}.btn__reveal-text .btn__icon-text{transition-property:width,margin,opacity;transition-duration:0.05s;transition-timing-function:ease-out;transition-timing-function:1s}.btn__reveal-text:not(:hover) .btn__icon-text{width:0;margin-left:0;opacity:0}.panel{position:fixed;z-index:1000;top:0;right:0;width:100%;height:100%;overflow-y:scroll;transition:opacity,transform;transition-duration:250ms;transition-timing-function:ease-out;opacity:0;transform:scale(0.8);pointer-events:none}.panel.open{opacity:1;transform:none;pointer-events:all}.panel-header{position:relative;z-index:1;top:0;width:100%;height:var(--site-header-height);border-bottom:1px solid #E9EBEC;background-color:#F6F7F8;font-size:.8125rem;display:flex;flex-direction:row;align-items:center}.panel-header__close-button{width:var(--site-header-height);height:var(--site-header-height);flex-basis:var(--site-header-height);flex-shrink:0;border:none;margin-right:1rem;position:relative;overflow:hidden;background-color:#2ACA4B;color:#FFF}.panel-header__close-button:hover,.panel-header__close-button:focus{background-color:#199E33;color:#FFF}.panel-header__close-button:before,.panel-header__close-button:after{content:'';position:absolute;top:calc(50% - 2px);left:calc(50% - var(--site-header-height) / 4);width:var(--site-header-height)/2;height:2px;transform:rotate(-45deg);background-color:currentColor}.panel-header__close-button:after{transform:rotate(45deg)}.panel-header__title-group{flex-grow:1}.panel-header__title-group .dat-details{padding-top:0;padding-bottom:0}.panel-header__action-group{padding-right:1rem}.panel-title{max-width:calc(100vw - 25rem);font-size:1.375rem;margin-right:1rem}.error-page{clear:both;min-height:calc(75vh - var(--site-header-height));display:flex;flex-direction:column;align-items:center;justify-content:center}:root{--site-header-height:4rem}h2,h3{font-weight:300}pre{padding:.5em;font-size:.875rem;background-color:#293648;color:#E9EBEC;border:none;box-shadow:inset 0 1px 3px rgba(0,0,0,0.5)}.hex-title-icon{width:2.3rem;margin-right:4px;margin-bottom:2px}.content-title{font-size:2rem;font-weight:600;margin-bottom:0}.content-subtitle{font-size:1.25rem;color:#65737F;padding-bottom:15px}.bg-neutral .content-subtitle,.bg-neutral .content-card-subtitle{color:#A7AFB6}.content-code-intro{text-align:left;margin-bottom:60px}.content-card{position:relative;background-color:#FFF;display:inline-block;vertical-align:top;margin-right:30px;padding:2rem;margin-bottom:3rem;text-align:left}.content-card-title{font-weight:700;font-size:1.5rem;line-height:1.25}.content-card-subtitle{color:#65737F;line-height:1.75}.copy-link,.open-desktop{display:inline-block;white-space:nowrap}.copy-link svg,.open-desktop svg{max-width:1em;height:1em;fill:currentColor;vertical-align:-9%}.b--white{border-color:#FFF}.b--black{border-color:#070B14}.b--neutral{border-color:#293648}.b--neutral-90{border-color:#394B5B}.b--neutral-80{border-color:#505F6D}.b--neutral-70{border-color:#65737F}.b--neutral-60{border-color:#7C8792}.b--neutral-50{border-color:#919BA4}.b--neutral-40{border-color:#A7AFB6}.b--neutral-30{border-color:#C3C9CD}.b--neutral-20{border-color:#D3D7DB}.b--neutral-14{border-color:#E0E3E5}.b--neutral-10{border-color:#E9EBEC}.b--neutral-04{border-color:#F6F7F8}.b--green{border-color:#2ACA4B}.b--green-hover{border-color:#199E33}.b--green-darker{border-color:#006607}.b--green-disabled{border-color:#94E4A5}.b--blue{border-color:#007FFF}.b--blue-hover{border-color:#06C}.b--blue-darker{border-color:#003E83}.b--blue-disabled{border-color:#7FBFFF}.b--mint{border-color:#159F84}.b--mint-hover{border-color:#0B856D}.b--mint-darker{border-color:#045943}.b--mint-disabled{border-color:#8ACFC1}.b--yellow{border-color:#F2CD02}.b--yellow-hover{border-color:#C4A500}.b--yellow-darker{border-color:#9F7D07}.b--yellow-disabled{border-color:#FBF0B3}.b--red{border-color:#D8524E}.b--red-hover{border-color:#B33C38}.b--red-darker{border-color:#A52724}.b--red-disabled{border-color:#EBA8A6}.b--pink{border-color:#F9A5E4} \ No newline at end of file diff --git a/client/scss/imports/_base.scss b/client/scss/imports/_base.scss index bbdacba2..258b9bea 100644 --- a/client/scss/imports/_base.scss +++ b/client/scss/imports/_base.scss @@ -1,3 +1,38 @@ +$color-white: #FFFFFF; +$color-black: #070B14; +$color-neutral: #293648; +$color-neutral-90: #394B5B; +$color-neutral-80: #505F6D; +$color-neutral-70: #65737F; +$color-neutral-60: #7C8792; +$color-neutral-50: #919BA4; +$color-neutral-40: #A7AFB6; +$color-neutral-30: #C3C9CD; +$color-neutral-20: #D3D7DB; +$color-neutral-14: #E0E3E5; +$color-neutral-10: #E9EBEC; +$color-neutral-04: #F6F7F8; +$color-green: #2ACA4B; +$color-green-hover: #199E33; +$color-green-darker: #006607; +$color-green-disabled: #94E4A5; +$color-blue: #007FFF; +$color-blue-hover: #0066CC; +$color-blue-darker: #003E83; +$color-blue-disabled: #7FBFFF; +$color-mint: #159F84; +$color-mint-hover: #0B856D; +$color-mint-darker: #045943; +$color-mint-disabled: #8ACFC1; +$color-yellow: #F2CD02; +$color-yellow-hover: #C4A500; +$color-yellow-darker: #9F7D07; +$color-yellow-disabled: #FBF0B3; +$color-red: #D8524E; +$color-red-hover: #B33C38; +$color-red-darker: #A52724; +$color-red-disabled: #EBA8A6; +$color-pink: #F9A5E4; $padding-site-main: 3rem; html { diff --git a/client/scss/imports/_dat-design.scss b/client/scss/imports/_dat-design.scss new file mode 100644 index 00000000..f23fb1e1 --- /dev/null +++ b/client/scss/imports/_dat-design.scss @@ -0,0 +1,903 @@ +/*! TACHYONS v4.11.1 | http://tachyons.io */ +/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,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}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}.border-box,a,article,aside,blockquote,body,code,dd,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,nav,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--9x16{padding-bottom:177.77%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--3x4{padding-bottom:133.33%}.aspect-ratio--6x4{padding-bottom:66.6%}.aspect-ratio--4x6{padding-bottom:150%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--5x8{padding-bottom:160%}.aspect-ratio--7x5{padding-bottom:71.42%}.aspect-ratio--5x7{padding-bottom:140%}.aspect-ratio--1x1{padding-bottom:100%}.aspect-ratio--object{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}img{max-width:100%}.cover{background-size:cover!important}.contain{background-size:contain!important}.bg-center{background-position:50%}.bg-center,.bg-top{background-repeat:no-repeat}.bg-top{background-position:top}.bg-right{background-position:100%}.bg-bottom,.bg-right{background-repeat:no-repeat}.bg-bottom{background-position:bottom}.bg-left{background-repeat:no-repeat;background-position:0}.outline{outline:1px solid}.outline-transparent{outline:1px solid transparent}.outline-0{outline:0}.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--moon-gray{border-color:#ccc}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:hsla(0,0%,100%,.9)}.b--white-80{border-color:hsla(0,0%,100%,.8)}.b--white-70{border-color:hsla(0,0%,100%,.7)}.b--white-60{border-color:hsla(0,0%,100%,.6)}.b--white-50{border-color:hsla(0,0%,100%,.5)}.b--white-40{border-color:hsla(0,0%,100%,.4)}.b--white-30{border-color:hsla(0,0%,100%,.3)}.b--white-20{border-color:hsla(0,0%,100%,.2)}.b--white-10{border-color:hsla(0,0%,100%,.1)}.b--white-05{border-color:hsla(0,0%,100%,.05)}.b--white-025{border-color:hsla(0,0%,100%,.025)}.b--white-0125{border-color:hsla(0,0%,100%,.0125)}.b--black-90{border-color:rgba(0,0,0,.9)}.b--black-80{border-color:rgba(0,0,0,.8)}.b--black-70{border-color:rgba(0,0,0,.7)}.b--black-60{border-color:rgba(0,0,0,.6)}.b--black-50{border-color:rgba(0,0,0,.5)}.b--black-40{border-color:rgba(0,0,0,.4)}.b--black-30{border-color:rgba(0,0,0,.3)}.b--black-20{border-color:rgba(0,0,0,.2)}.b--black-10{border-color:rgba(0,0,0,.1)}.b--black-05{border-color:rgba(0,0,0,.05)}.b--black-025{border-color:rgba(0,0,0,.025)}.b--black-0125{border-color:rgba(0,0,0,.0125)}.b--dark-red{border-color:#e7040f}.b--red{border-color:#ff4136}.b--light-red{border-color:#ff725c}.b--orange{border-color:#ff6300}.b--gold{border-color:#ffb700}.b--yellow{border-color:gold}.b--light-yellow{border-color:#fbf1a9}.b--purple{border-color:#5e2ca5}.b--light-purple{border-color:#a463f2}.b--dark-pink{border-color:#d5008f}.b--hot-pink{border-color:#ff41b4}.b--pink{border-color:#ff80cc}.b--light-pink{border-color:#ffa3d7}.b--dark-green{border-color:#137752}.b--green{border-color:#19a974}.b--light-green{border-color:#9eebcf}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#357edd}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fffceb}.b--washed-red{border-color:#ffdfdf}.b--transparent{border-color:transparent}.b--inherit{border-color:inherit}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{top:0;right:0;bottom:0;left:0}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}.flex{display:flex}.inline-flex{display:inline-flex}.flex-auto{flex:1 1 auto;min-width:0;min-height:0}.flex-none{flex:none}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-stretch{align-content:stretch}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-last{order:99999}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,times,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:Courier Next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.athelas{font-family:athelas,georgia,serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:Bodoni MT,serif}.calisto{font-family:Calisto MT,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.i{font-style:italic}.fs-normal{font-style:normal}.normal{font-weight:400}.b{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}.input-reset{-webkit-appearance:none;-moz-appearance:none}.button-reset::-moz-focus-inner,.input-reset::-moz-focus-inner{border:0;padding:0}.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.min-h-100{min-height:100%}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.h-auto{height:auto}.h-inherit{height:inherit}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}.lh-solid{line-height:1}.lh-title{line-height:1.25}.lh-copy{line-height:1.5}.link{text-decoration:none}.link,.link:active,.link:focus,.link:hover,.link:link,.link:visited{transition:color .15s ease-in}.link:focus{outline:1px dotted currentColor}.list{list-style-type:none}.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-90{width:90%}.w-100{width:100%}.w-third{width:33.33333%}.w-two-thirds{width:66.66667%}.w-auto{width:auto}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.rotate-45{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.black-90{color:rgba(0,0,0,.9)}.black-80{color:rgba(0,0,0,.8)}.black-70{color:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.black-50{color:rgba(0,0,0,.5)}.black-40{color:rgba(0,0,0,.4)}.black-30{color:rgba(0,0,0,.3)}.black-20{color:rgba(0,0,0,.2)}.black-10{color:rgba(0,0,0,.1)}.black-05{color:rgba(0,0,0,.05)}.white-90{color:hsla(0,0%,100%,.9)}.white-80{color:hsla(0,0%,100%,.8)}.white-70{color:hsla(0,0%,100%,.7)}.white-60{color:hsla(0,0%,100%,.6)}.white-50{color:hsla(0,0%,100%,.5)}.white-40{color:hsla(0,0%,100%,.4)}.white-30{color:hsla(0,0%,100%,.3)}.white-20{color:hsla(0,0%,100%,.2)}.white-10{color:hsla(0,0%,100%,.1)}.black{color:#000}.near-black{color:#111}.dark-gray{color:#333}.mid-gray{color:#555}.gray{color:#777}.silver{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#e7040f}.red{color:#ff4136}.light-red{color:#ff725c}.orange{color:#ff6300}.gold{color:#ffb700}.yellow{color:gold}.light-yellow{color:#fbf1a9}.purple{color:#5e2ca5}.light-purple{color:#a463f2}.dark-pink{color:#d5008f}.hot-pink{color:#ff41b4}.pink{color:#ff80cc}.light-pink{color:#ffa3d7}.dark-green{color:#137752}.green{color:#19a974}.light-green{color:#9eebcf}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#357edd}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fffceb}.washed-red{color:#ffdfdf}.color-inherit{color:inherit}.bg-black-90{background-color:rgba(0,0,0,.9)}.bg-black-80{background-color:rgba(0,0,0,.8)}.bg-black-70{background-color:rgba(0,0,0,.7)}.bg-black-60{background-color:rgba(0,0,0,.6)}.bg-black-50{background-color:rgba(0,0,0,.5)}.bg-black-40{background-color:rgba(0,0,0,.4)}.bg-black-30{background-color:rgba(0,0,0,.3)}.bg-black-20{background-color:rgba(0,0,0,.2)}.bg-black-10{background-color:rgba(0,0,0,.1)}.bg-black-05{background-color:rgba(0,0,0,.05)}.bg-white-90{background-color:hsla(0,0%,100%,.9)}.bg-white-80{background-color:hsla(0,0%,100%,.8)}.bg-white-70{background-color:hsla(0,0%,100%,.7)}.bg-white-60{background-color:hsla(0,0%,100%,.6)}.bg-white-50{background-color:hsla(0,0%,100%,.5)}.bg-white-40{background-color:hsla(0,0%,100%,.4)}.bg-white-30{background-color:hsla(0,0%,100%,.3)}.bg-white-20{background-color:hsla(0,0%,100%,.2)}.bg-white-10{background-color:hsla(0,0%,100%,.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#e7040f}.bg-red{background-color:#ff4136}.bg-light-red{background-color:#ff725c}.bg-orange{background-color:#ff6300}.bg-gold{background-color:#ffb700}.bg-yellow{background-color:gold}.bg-light-yellow{background-color:#fbf1a9}.bg-purple{background-color:#5e2ca5}.bg-light-purple{background-color:#a463f2}.bg-dark-pink{background-color:#d5008f}.bg-hot-pink{background-color:#ff41b4}.bg-pink{background-color:#ff80cc}.bg-light-pink{background-color:#ffa3d7}.bg-dark-green{background-color:#137752}.bg-green{background-color:#19a974}.bg-light-green{background-color:#9eebcf}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#357edd}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fffceb}.bg-washed-red{background-color:#ffdfdf}.bg-inherit{background-color:inherit}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:hsla(0,0%,100%,.9)}.hover-white-80:focus,.hover-white-80:hover{color:hsla(0,0%,100%,.8)}.hover-white-70:focus,.hover-white-70:hover{color:hsla(0,0%,100%,.7)}.hover-white-60:focus,.hover-white-60:hover{color:hsla(0,0%,100%,.6)}.hover-white-50:focus,.hover-white-50:hover{color:hsla(0,0%,100%,.5)}.hover-white-40:focus,.hover-white-40:hover{color:hsla(0,0%,100%,.4)}.hover-white-30:focus,.hover-white-30:hover{color:hsla(0,0%,100%,.3)}.hover-white-20:focus,.hover-white-20:hover{color:hsla(0,0%,100%,.2)}.hover-white-10:focus,.hover-white-10:hover{color:hsla(0,0%,100%,.1)}.hover-inherit:focus,.hover-inherit:hover{color:inherit}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.hover-bg-inherit:focus,.hover-bg-inherit:hover{background-color:inherit}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-top:0;padding-bottom:0}.pv1{padding-top:.25rem;padding-bottom:.25rem}.pv2{padding-top:.5rem;padding-bottom:.5rem}.pv3{padding-top:1rem;padding-bottom:1rem}.pv4{padding-top:2rem;padding-bottom:2rem}.pv5{padding-top:4rem;padding-bottom:4rem}.pv6{padding-top:8rem;padding-bottom:8rem}.pv7{padding-top:16rem;padding-bottom:16rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.mv0{margin-top:0;margin-bottom:0}.mv1{margin-top:.25rem;margin-bottom:.25rem}.mv2{margin-top:.5rem;margin-bottom:.5rem}.mv3{margin-top:1rem;margin-bottom:1rem}.mv4{margin-top:2rem;margin-bottom:2rem}.mv5{margin-top:4rem;margin-bottom:4rem}.mv6{margin-top:8rem;margin-bottom:8rem}.mv7{margin-top:16rem;margin-bottom:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}.na1{margin:-.25rem}.na2{margin:-.5rem}.na3{margin:-1rem}.na4{margin:-2rem}.na5{margin:-4rem}.na6{margin:-8rem}.na7{margin:-16rem}.nl1{margin-left:-.25rem}.nl2{margin-left:-.5rem}.nl3{margin-left:-1rem}.nl4{margin-left:-2rem}.nl5{margin-left:-4rem}.nl6{margin-left:-8rem}.nl7{margin-left:-16rem}.nr1{margin-right:-.25rem}.nr2{margin-right:-.5rem}.nr3{margin-right:-1rem}.nr4{margin-right:-2rem}.nr5{margin-right:-4rem}.nr6{margin-right:-8rem}.nr7{margin-right:-16rem}.nb1{margin-bottom:-.25rem}.nb2{margin-bottom:-.5rem}.nb3{margin-bottom:-1rem}.nb4{margin-bottom:-2rem}.nb5{margin-bottom:-4rem}.nb6{margin-bottom:-8rem}.nb7{margin-bottom:-16rem}.nt1{margin-top:-.25rem}.nt2{margin-top:-.5rem}.nt3{margin-top:-1rem}.nt4{margin-top:-2rem}.nt5{margin-top:-4rem}.nt6{margin-top:-8rem}.nt7{margin-top:-16rem}.collapse{border-collapse:collapse;border-spacing:0}.striped--light-silver:nth-child(odd){background-color:#aaa}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}.stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}.tj{text-align:justify}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.f7{font-size:.75rem}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps{font-variant:small-caps}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overflow-container{overflow-y:scroll}.center{margin-left:auto}.center,.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.clip{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}.dim{opacity:1}.dim,.dim:focus,.dim:hover{transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;transition:opacity .15s ease-out}.glow,.glow:focus,.glow:hover{transition:opacity .15s ease-in}.glow:focus,.glow:hover{opacity:1}.hide-child .child{opacity:0;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover{text-decoration:underline}.grow{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.grow:focus,.grow:hover{-webkit-transform:scale(1.05);transform:scale(1.05)}.grow:active{-webkit-transform:scale(.9);transform:scale(.9)}.grow-large{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-in-out;transition:transform .25s ease-in-out;transition:transform .25s ease-in-out,-webkit-transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.grow-large:active{-webkit-transform:scale(.95);transform:scale(.95)}.pointer:hover,.shadow-hover{cursor:pointer}.shadow-hover{position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:after{content:"";box-shadow:0 0 16px 2px rgba(0,0,0,.2);border-radius:inherit;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;transition:opacity .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:focus:after,.shadow-hover:hover:after{opacity:1}.bg-animate,.bg-animate:focus,.bg-animate:hover{transition:background-color .15s ease-in-out}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:999}.z-9999{z-index:9999}.z-max{z-index:2147483647}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}.nested-copy-line-height ol,.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-headline-line-height h1,.nested-headline-line-height h2,.nested-headline-line-height h3,.nested-headline-line-height h4,.nested-headline-line-height h5,.nested-headline-line-height h6{line-height:1.25}.nested-list-reset ol,.nested-list-reset ul{padding-left:0;margin-left:0;list-style-type:none}.nested-copy-indent p+p{text-indent:1em;margin-top:0;margin-bottom:0}.nested-copy-separator p+p{margin-top:1.5em}.nested-img img{width:100%;max-width:100%;display:block}.nested-links a{color:#357edd;transition:color .15s ease-in}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.debug *{outline:1px solid gold}.debug-white *{outline:1px solid #fff}.debug-black *{outline:1px solid #000}.debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAFElEQVR4AWPAC97/9x0eCsAEPgwAVLshdpENIxcAAAAASUVORK5CYII=) repeat 0 0}.debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMklEQVR4AWOgCLz/b0epAa6UGuBOqQHOQHLUgFEDnAbcBZ4UGwDOkiCnkIhdgNgNxAYAiYlD+8sEuo8AAAAASUVORK5CYII=) repeat 0 0}.debug-grid-8-solid{background:#fff url(data:image/gif;base64,R0lGODdhCAAIAPEAAADw/wDx/////wAAACwAAAAACAAIAAACDZQvgaeb/lxbAIKA8y0AOw==) repeat 0 0}.debug-grid-16-solid{background:#fff url(data:image/gif;base64,R0lGODdhEAAQAPEAAADw/wDx/xXy/////ywAAAAAEAAQAAACIZyPKckYDQFsb6ZqD85jZ2+BkwiRFKehhqQCQgDHcgwEBQA7) repeat 0 0}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-repeat:no-repeat;background-position:0}.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{top:0;right:0;bottom:0;left:0}.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}.flex-ns{display:flex}.inline-flex-ns{display:inline-flex}.flex-auto-ns{flex:1 1 auto;min-width:0;min-height:0}.flex-none-ns{flex:none}.flex-column-ns{flex-direction:column}.flex-row-ns{flex-direction:row}.flex-wrap-ns{flex-wrap:wrap}.flex-nowrap-ns{flex-wrap:nowrap}.flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.flex-column-reverse-ns{flex-direction:column-reverse}.flex-row-reverse-ns{flex-direction:row-reverse}.items-start-ns{align-items:flex-start}.items-end-ns{align-items:flex-end}.items-center-ns{align-items:center}.items-baseline-ns{align-items:baseline}.items-stretch-ns{align-items:stretch}.self-start-ns{align-self:flex-start}.self-end-ns{align-self:flex-end}.self-center-ns{align-self:center}.self-baseline-ns{align-self:baseline}.self-stretch-ns{align-self:stretch}.justify-start-ns{justify-content:flex-start}.justify-end-ns{justify-content:flex-end}.justify-center-ns{justify-content:center}.justify-between-ns{justify-content:space-between}.justify-around-ns{justify-content:space-around}.content-start-ns{align-content:flex-start}.content-end-ns{align-content:flex-end}.content-center-ns{align-content:center}.content-between-ns{align-content:space-between}.content-around-ns{align-content:space-around}.content-stretch-ns{align-content:stretch}.order-0-ns{order:0}.order-1-ns{order:1}.order-2-ns{order:2}.order-3-ns{order:3}.order-4-ns{order:4}.order-5-ns{order:5}.order-6-ns{order:6}.order-7-ns{order:7}.order-8-ns{order:8}.order-last-ns{order:99999}.flex-grow-0-ns{flex-grow:0}.flex-grow-1-ns{flex-grow:1}.flex-shrink-0-ns{flex-shrink:0}.flex-shrink-1-ns{flex-shrink:1}.fl-ns{float:left}.fl-ns,.fr-ns{_display:inline}.fr-ns{float:right}.fn-ns{float:none}.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.33333%}.w-two-thirds-ns{width:66.66667%}.w-auto-ns{width:auto}.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}.rotate-45-ns{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-ns{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-ns{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-ns{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-ns{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-ns{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-ns{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-top:0;padding-bottom:0}.pv1-ns{padding-top:.25rem;padding-bottom:.25rem}.pv2-ns{padding-top:.5rem;padding-bottom:.5rem}.pv3-ns{padding-top:1rem;padding-bottom:1rem}.pv4-ns{padding-top:2rem;padding-bottom:2rem}.pv5-ns{padding-top:4rem;padding-bottom:4rem}.pv6-ns{padding-top:8rem;padding-bottom:8rem}.pv7-ns{padding-top:16rem;padding-bottom:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-top:0;margin-bottom:0}.mv1-ns{margin-top:.25rem;margin-bottom:.25rem}.mv2-ns{margin-top:.5rem;margin-bottom:.5rem}.mv3-ns{margin-top:1rem;margin-bottom:1rem}.mv4-ns{margin-top:2rem;margin-bottom:2rem}.mv5-ns{margin-top:4rem;margin-bottom:4rem}.mv6-ns{margin-top:8rem;margin-bottom:8rem}.mv7-ns{margin-top:16rem;margin-bottom:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-ns{font-variant:small-caps}.truncate-ns{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}.clip-ns{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-repeat:no-repeat;background-position:0}.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{top:0;right:0;bottom:0;left:0}.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}.flex-m{display:flex}.inline-flex-m{display:inline-flex}.flex-auto-m{flex:1 1 auto;min-width:0;min-height:0}.flex-none-m{flex:none}.flex-column-m{flex-direction:column}.flex-row-m{flex-direction:row}.flex-wrap-m{flex-wrap:wrap}.flex-nowrap-m{flex-wrap:nowrap}.flex-wrap-reverse-m{flex-wrap:wrap-reverse}.flex-column-reverse-m{flex-direction:column-reverse}.flex-row-reverse-m{flex-direction:row-reverse}.items-start-m{align-items:flex-start}.items-end-m{align-items:flex-end}.items-center-m{align-items:center}.items-baseline-m{align-items:baseline}.items-stretch-m{align-items:stretch}.self-start-m{align-self:flex-start}.self-end-m{align-self:flex-end}.self-center-m{align-self:center}.self-baseline-m{align-self:baseline}.self-stretch-m{align-self:stretch}.justify-start-m{justify-content:flex-start}.justify-end-m{justify-content:flex-end}.justify-center-m{justify-content:center}.justify-between-m{justify-content:space-between}.justify-around-m{justify-content:space-around}.content-start-m{align-content:flex-start}.content-end-m{align-content:flex-end}.content-center-m{align-content:center}.content-between-m{align-content:space-between}.content-around-m{align-content:space-around}.content-stretch-m{align-content:stretch}.order-0-m{order:0}.order-1-m{order:1}.order-2-m{order:2}.order-3-m{order:3}.order-4-m{order:4}.order-5-m{order:5}.order-6-m{order:6}.order-7-m{order:7}.order-8-m{order:8}.order-last-m{order:99999}.flex-grow-0-m{flex-grow:0}.flex-grow-1-m{flex-grow:1}.flex-shrink-0-m{flex-shrink:0}.flex-shrink-1-m{flex-shrink:1}.fl-m{float:left}.fl-m,.fr-m{_display:inline}.fr-m{float:right}.fn-m{float:none}.i-m{font-style:italic}.fs-normal-m{font-style:normal}.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.33333%}.w-two-thirds-m{width:66.66667%}.w-auto-m{width:auto}.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}.rotate-45-m{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-m{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-m{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-m{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-m{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-m{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-m{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-top:0;padding-bottom:0}.pv1-m{padding-top:.25rem;padding-bottom:.25rem}.pv2-m{padding-top:.5rem;padding-bottom:.5rem}.pv3-m{padding-top:1rem;padding-bottom:1rem}.pv4-m{padding-top:2rem;padding-bottom:2rem}.pv5-m{padding-top:4rem;padding-bottom:4rem}.pv6-m{padding-top:8rem;padding-bottom:8rem}.pv7-m{padding-top:16rem;padding-bottom:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-top:0;margin-bottom:0}.mv1-m{margin-top:.25rem;margin-bottom:.25rem}.mv2-m{margin-top:.5rem;margin-bottom:.5rem}.mv3-m{margin-top:1rem;margin-bottom:1rem}.mv4-m{margin-top:2rem;margin-bottom:2rem}.mv5-m{margin-top:4rem;margin-bottom:4rem}.mv6-m{margin-top:8rem;margin-bottom:8rem}.mv7-m{margin-top:16rem;margin-bottom:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-m{font-variant:small-caps}.truncate-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}.clip-m{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-repeat:no-repeat;background-position:0}.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-top-right-radius:0;border-bottom-right-radius:0}.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{top:0;right:0;bottom:0;left:0}.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}.flex-l{display:flex}.inline-flex-l{display:inline-flex}.flex-auto-l{flex:1 1 auto;min-width:0;min-height:0}.flex-none-l{flex:none}.flex-column-l{flex-direction:column}.flex-row-l{flex-direction:row}.flex-wrap-l{flex-wrap:wrap}.flex-nowrap-l{flex-wrap:nowrap}.flex-wrap-reverse-l{flex-wrap:wrap-reverse}.flex-column-reverse-l{flex-direction:column-reverse}.flex-row-reverse-l{flex-direction:row-reverse}.items-start-l{align-items:flex-start}.items-end-l{align-items:flex-end}.items-center-l{align-items:center}.items-baseline-l{align-items:baseline}.items-stretch-l{align-items:stretch}.self-start-l{align-self:flex-start}.self-end-l{align-self:flex-end}.self-center-l{align-self:center}.self-baseline-l{align-self:baseline}.self-stretch-l{align-self:stretch}.justify-start-l{justify-content:flex-start}.justify-end-l{justify-content:flex-end}.justify-center-l{justify-content:center}.justify-between-l{justify-content:space-between}.justify-around-l{justify-content:space-around}.content-start-l{align-content:flex-start}.content-end-l{align-content:flex-end}.content-center-l{align-content:center}.content-between-l{align-content:space-between}.content-around-l{align-content:space-around}.content-stretch-l{align-content:stretch}.order-0-l{order:0}.order-1-l{order:1}.order-2-l{order:2}.order-3-l{order:3}.order-4-l{order:4}.order-5-l{order:5}.order-6-l{order:6}.order-7-l{order:7}.order-8-l{order:8}.order-last-l{order:99999}.flex-grow-0-l{flex-grow:0}.flex-grow-1-l{flex-grow:1}.flex-shrink-0-l{flex-shrink:0}.flex-shrink-1-l{flex-shrink:1}.fl-l{float:left}.fl-l,.fr-l{_display:inline}.fr-l{float:right}.fn-l{float:none}.i-l{font-style:italic}.fs-normal-l{font-style:normal}.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.33333%}.w-two-thirds-l{width:66.66667%}.w-auto-l{width:auto}.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}.rotate-45-l{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-l{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-l{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-l{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-l{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-l{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-l{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-top:0;padding-bottom:0}.pv1-l{padding-top:.25rem;padding-bottom:.25rem}.pv2-l{padding-top:.5rem;padding-bottom:.5rem}.pv3-l{padding-top:1rem;padding-bottom:1rem}.pv4-l{padding-top:2rem;padding-bottom:2rem}.pv5-l{padding-top:4rem;padding-bottom:4rem}.pv6-l{padding-top:8rem;padding-bottom:8rem}.pv7-l{padding-top:16rem;padding-bottom:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-top:0;margin-bottom:0}.mv1-l{margin-top:.25rem;margin-bottom:.25rem}.mv2-l{margin-top:.5rem;margin-bottom:.5rem}.mv3-l{margin-top:1rem;margin-bottom:1rem}.mv4-l{margin-top:2rem;margin-bottom:2rem}.mv5-l{margin-top:4rem;margin-bottom:4rem}.mv6-l{margin-top:8rem;margin-bottom:8rem}.mv7-l{margin-top:16rem;margin-bottom:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-l{font-variant:small-caps}.truncate-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}.clip-l{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}} + +:root { + --color-white: #FFFFFF; + --color-black: #070B14; + --color-neutral: #293648; + --color-neutral-90: #394B5B; + --color-neutral-80: #505F6D; + --color-neutral-70: #65737F; + --color-neutral-60: #7C8792; + --color-neutral-50: #919BA4; + --color-neutral-40: #A7AFB6; + --color-neutral-30: #C3C9CD; + --color-neutral-20: #D3D7DB; + --color-neutral-14: #E0E3E5; + --color-neutral-10: #E9EBEC; + --color-neutral-04: #F6F7F8; + --color-green: #2ACA4B; + --color-green-hover: #199E33; + --color-green-darker: #006607; + --color-green-disabled: #94E4A5; + --color-blue: #007FFF; + --color-blue-hover: #0066CC; + --color-blue-darker: #003E83; + --color-blue-disabled: #7FBFFF; + --color-mint: #159F84; + --color-mint-hover: #0B856D; + --color-mint-darker: #045943; + --color-mint-disabled: #8ACFC1; + --color-yellow: #F2CD02; + --color-yellow-hover: #C4A500; + --color-yellow-darker: #9F7D07; + --color-yellow-disabled: #FBF0B3; + --color-red: #D8524E; + --color-red-hover: #B33C38; + --color-red-darker: #A52724; + --color-red-disabled: #EBA8A6; + --color-pink: #F9A5E4; +} + +.color-white { color: #FFFFFF } +.color-black { color: #070B14 } +.color-neutral { color: #293648 } +.color-neutral-90 { color: #394B5B } +.color-neutral-80 { color: #505F6D } +.color-neutral-70 { color: #65737F } +.color-neutral-60 { color: #7C8792 } +.color-neutral-50 { color: #919BA4 } +.color-neutral-40 { color: #A7AFB6 } +.color-neutral-30 { color: #C3C9CD } +.color-neutral-20 { color: #D3D7DB } +.color-neutral-14 { color: #E0E3E5 } +.color-neutral-10 { color: #E9EBEC } +.color-neutral-04 { color: #F6F7F8 } +.color-green { color: #2ACA4B } +.color-green-hover { color: #199E33 } +.color-green-darker { color: #006607 } +.color-green-disabled { color: #94E4A5 } +.color-blue { color: #007FFF } +.color-blue-hover { color: #0066CC } +.color-blue-darker { color: #003E83 } +.color-blue-disabled { color: #7FBFFF } +.color-mint { color: #159F84 } +.color-mint-hover { color: #0B856D } +.color-mint-darker { color: #045943 } +.color-mint-disabled { color: #8ACFC1 } +.color-yellow { color: #F2CD02 } +.color-yellow-hover { color: #C4A500 } +.color-yellow-darker { color: #9F7D07 } +.color-yellow-disabled { color: #FBF0B3 } +.color-red { color: #D8524E } +.color-red-hover { color: #B33C38 } +.color-red-darker { color: #A52724 } +.color-red-disabled { color: #EBA8A6 } +.color-pink { color: #F9A5E4 } + +.hover-color-white:hover, +.hover-color-white:focus { color: #FFFFFF } +.hover-color-black:hover, +.hover-color-black:focus { color: #070B14 } +.hover-color-neutral:hover, +.hover-color-neutral:focus { color: #293648 } +.hover-color-neutral-90:hover, +.hover-color-neutral-90:focus { color: #394B5B } +.hover-color-neutral-80:hover, +.hover-color-neutral-80:focus { color: #505F6D } +.hover-color-neutral-70:hover, +.hover-color-neutral-70:focus { color: #65737F } +.hover-color-neutral-60:hover, +.hover-color-neutral-60:focus { color: #7C8792 } +.hover-color-neutral-50:hover, +.hover-color-neutral-50:focus { color: #919BA4 } +.hover-color-neutral-40:hover, +.hover-color-neutral-40:focus { color: #A7AFB6 } +.hover-color-neutral-30:hover, +.hover-color-neutral-30:focus { color: #C3C9CD } +.hover-color-neutral-20:hover, +.hover-color-neutral-20:focus { color: #D3D7DB } +.hover-color-neutral-14:hover, +.hover-color-neutral-14:focus { color: #E0E3E5 } +.hover-color-neutral-10:hover, +.hover-color-neutral-10:focus { color: #E9EBEC } +.hover-color-neutral-04:hover, +.hover-color-neutral-04:focus { color: #F6F7F8 } +.hover-color-green:hover, +.hover-color-green:focus { color: #2ACA4B } +.hover-color-green-hover:hover, +.hover-color-green-hover:focus { color: #199E33 } +.hover-color-green-darker:hover, +.hover-color-green-darker:focus { color: #006607 } +.hover-color-green-disabled:hover, +.hover-color-green-disabled:focus { color: #94E4A5 } +.hover-color-blue:hover, +.hover-color-blue:focus { color: #007FFF } +.hover-color-blue-hover:hover, +.hover-color-blue-hover:focus { color: #0066CC } +.hover-color-blue-darker:hover, +.hover-color-blue-darker:focus { color: #003E83 } +.hover-color-blue-disabled:hover, +.hover-color-blue-disabled:focus { color: #7FBFFF } +.hover-color-mint:hover, +.hover-color-mint:focus { color: #159F84 } +.hover-color-mint-hover:hover, +.hover-color-mint-hover:focus { color: #0B856D } +.hover-color-mint-darker:hover, +.hover-color-mint-darker:focus { color: #045943 } +.hover-color-mint-disabled:hover, +.hover-color-mint-disabled:focus { color: #8ACFC1 } +.hover-color-yellow:hover, +.hover-color-yellow:focus { color: #F2CD02 } +.hover-color-yellow-hover:hover, +.hover-color-yellow-hover:focus { color: #C4A500 } +.hover-color-yellow-darker:hover, +.hover-color-yellow-darker:focus { color: #9F7D07 } +.hover-color-yellow-disabled:hover, +.hover-color-yellow-disabled:focus { color: #FBF0B3 } +.hover-color-red:hover, +.hover-color-red:focus { color: #D8524E } +.hover-color-red-hover:hover, +.hover-color-red-hover:focus { color: #B33C38 } +.hover-color-red-darker:hover, +.hover-color-red-darker:focus { color: #A52724 } +.hover-color-red-disabled:hover, +.hover-color-red-disabled:focus { color: #EBA8A6 } +.hover-color-pink:hover, +.hover-color-pink:focus { color: #F9A5E4 } + +.bg-white { background-color: #FFFFFF } +.bg-black { background-color: #070B14 } +.bg-neutral { background-color: #293648 } +.bg-neutral-90 { background-color: #394B5B } +.bg-neutral-80 { background-color: #505F6D } +.bg-neutral-70 { background-color: #65737F } +.bg-neutral-60 { background-color: #7C8792 } +.bg-neutral-50 { background-color: #919BA4 } +.bg-neutral-40 { background-color: #A7AFB6 } +.bg-neutral-30 { background-color: #C3C9CD } +.bg-neutral-20 { background-color: #D3D7DB } +.bg-neutral-14 { background-color: #E0E3E5 } +.bg-neutral-10 { background-color: #E9EBEC } +.bg-neutral-04 { background-color: #F6F7F8 } +.bg-green { background-color: #2ACA4B } +.bg-green-hover { background-color: #199E33 } +.bg-green-darker { background-color: #006607 } +.bg-green-disabled { background-color: #94E4A5 } +.bg-blue { background-color: #007FFF } +.bg-blue-hover { background-color: #0066CC } +.bg-blue-darker { background-color: #003E83 } +.bg-blue-disabled { background-color: #7FBFFF } +.bg-mint { background-color: #159F84 } +.bg-mint-hover { background-color: #0B856D } +.bg-mint-darker { background-color: #045943 } +.bg-mint-disabled { background-color: #8ACFC1 } +.bg-yellow { background-color: #F2CD02 } +.bg-yellow-hover { background-color: #C4A500 } +.bg-yellow-darker { background-color: #9F7D07 } +.bg-yellow-disabled { background-color: #FBF0B3 } +.bg-red { background-color: #D8524E } +.bg-red-hover { background-color: #B33C38 } +.bg-red-darker { background-color: #A52724 } +.bg-red-disabled { background-color: #EBA8A6 } +.bg-pink { background-color: #F9A5E4 } + +.hover-bg-white:hover, +.hover-bg-white:focus { background-color: #FFFFFF } +.hover-bg-black:hover, +.hover-bg-black:focus { background-color: #070B14 } +.hover-bg-neutral:hover, +.hover-bg-neutral:focus { background-color: #293648 } +.hover-bg-neutral-90:hover, +.hover-bg-neutral-90:focus { background-color: #394B5B } +.hover-bg-neutral-80:hover, +.hover-bg-neutral-80:focus { background-color: #505F6D } +.hover-bg-neutral-70:hover, +.hover-bg-neutral-70:focus { background-color: #65737F } +.hover-bg-neutral-60:hover, +.hover-bg-neutral-60:focus { background-color: #7C8792 } +.hover-bg-neutral-50:hover, +.hover-bg-neutral-50:focus { background-color: #919BA4 } +.hover-bg-neutral-40:hover, +.hover-bg-neutral-40:focus { background-color: #A7AFB6 } +.hover-bg-neutral-30:hover, +.hover-bg-neutral-30:focus { background-color: #C3C9CD } +.hover-bg-neutral-20:hover, +.hover-bg-neutral-20:focus { background-color: #D3D7DB } +.hover-bg-neutral-14:hover, +.hover-bg-neutral-14:focus { background-color: #E0E3E5 } +.hover-bg-neutral-10:hover, +.hover-bg-neutral-10:focus { background-color: #E9EBEC } +.hover-bg-neutral-04:hover, +.hover-bg-neutral-04:focus { background-color: #F6F7F8 } +.hover-bg-green:hover, +.hover-bg-green:focus { background-color: #2ACA4B } +.hover-bg-green-hover:hover, +.hover-bg-green-hover:focus { background-color: #199E33 } +.hover-bg-green-darker:hover, +.hover-bg-green-darker:focus { background-color: #006607 } +.hover-bg-green-disabled:hover, +.hover-bg-green-disabled:focus { background-color: #94E4A5 } +.hover-bg-blue:hover, +.hover-bg-blue:focus { background-color: #007FFF } +.hover-bg-blue-hover:hover, +.hover-bg-blue-hover:focus { background-color: #0066CC } +.hover-bg-blue-darker:hover, +.hover-bg-blue-darker:focus { background-color: #003E83 } +.hover-bg-blue-disabled:hover, +.hover-bg-blue-disabled:focus { background-color: #7FBFFF } +.hover-bg-mint:hover, +.hover-bg-mint:focus { background-color: #159F84 } +.hover-bg-mint-hover:hover, +.hover-bg-mint-hover:focus { background-color: #0B856D } +.hover-bg-mint-darker:hover, +.hover-bg-mint-darker:focus { background-color: #045943 } +.hover-bg-mint-disabled:hover, +.hover-bg-mint-disabled:focus { background-color: #8ACFC1 } +.hover-bg-yellow:hover, +.hover-bg-yellow:focus { background-color: #F2CD02 } +.hover-bg-yellow-hover:hover, +.hover-bg-yellow-hover:focus { background-color: #C4A500 } +.hover-bg-yellow-darker:hover, +.hover-bg-yellow-darker:focus { background-color: #9F7D07 } +.hover-bg-yellow-disabled:hover, +.hover-bg-yellow-disabled:focus { background-color: #FBF0B3 } +.hover-bg-red:hover, +.hover-bg-red:focus { background-color: #D8524E } +.hover-bg-red-hover:hover, +.hover-bg-red-hover:focus { background-color: #B33C38 } +.hover-bg-red-darker:hover, +.hover-bg-red-darker:focus { background-color: #A52724 } +.hover-bg-red-disabled:hover, +.hover-bg-red-disabled:focus { background-color: #EBA8A6 } +.hover-bg-pink:hover, +.hover-bg-pink:focus { background-color: #F9A5E4 } + + +/* DAT DESIGN */ +body, input, textarea, select, button { + font-family: 'Source Sans Pro', 'Helvetica Neue', 'Lucida Grande', Arial, sans-serif; } + +body { + line-height: 1.5; } + +.hd-xl, h1 { + font-size: 2.5rem; + line-height: 1.25; + margin-bottom: 1rem; } + +.hd-l, h2 { + font-size: 2.25rem; + line-height: 1.25; + margin-bottom: 1rem; } + +.hd-m, h3 { + font-size: 1.75rem; + line-height: 1.25; + margin-bottom: 1rem; } + +.hd-s, h4 { + font-size: 1.5rem; + line-height: 1.25; } + +.hd-xs, h5 { + font-size: 1.25rem; + line-height: 1.25; } + +.hd-xxs, h6 { + font-size: .875rem; + line-height: 1.25; + text-transform: uppercase; + letter-spacing: .025em; } + +.lead { + font-size: 1.5rem; + line-height: 1.333; + margin-bottom: 1.5rem; } + +.blockquote { + margin-left: 0; + padding-left: 1rem; + border-left: 4px solid #D3D7DB; } + .blockquote blockquote { + margin: 0; } + .blockquote figcaption { + font-size: .875rem; + line-height: 1.25; + color: #7C8792; } + +a { + color: #007FFF; } + +a:hover, +a:focus { + color: #0066CC; } + +.link--green { + color: #2ACA4B; } + .link--green:hover, .link--green:focus { + color: #199E33; } + +.link--yellow { + color: #F2CD02; } + .link--yellow:hover, .link--yellow:focus { + color: #C4A500; } + +.link--red { + color: #D8524E; } + .link--red:hover, .link--red:focus { + color: #B33C38; } + +a[disabled], +.link--disabled { + color: #A7AFB6; } + a[disabled]:hover, a[disabled]:focus, + .link--disabled:hover, + .link--disabled:focus { + color: #A7AFB6; } + +.btn { + display: inline-block; + padding: .333rem .75rem; + border-width: 1px; + border-style: solid; + border-color: currentColor; + background-color: transparent; + color: #65737F; + text-decoration: none; + cursor: pointer; + text-align: center; + line-height: 1.5; + vertical-align: middle; + letter-spacing: .02em; } + .btn:hover, .btn:focus { + color: #293648; + text-decoration: none; + cursor: pointer; + outline: 0; } + +.btn--white { + color: #FFFFFF; } + .btn--white:hover, .btn--white:focus { + color: #D3D7DB; } + +.btn--green { + color: #2ACA4B; } + .btn--green:hover, .btn--green:focus { + color: #199E33; } + +.btn--blue { + color: #007FFF; } + .btn--blue:hover, .btn--blue:focus { + color: #0066CC; } + +.btn--yellow { + color: #F2CD02; } + .btn--yellow:hover, .btn--yellow:focus { + color: #C4A500; } + +.btn--red { + color: #D8524E; } + .btn--red:hover, .btn--red:focus { + color: #B33C38; } + +.btn[disabled], +.btn--disabled { + color: #C3C9CD; + cursor: default; } + .btn[disabled]:hover, .btn[disabled]:focus, + .btn--disabled:hover, + .btn--disabled:focus { + color: #C3C9CD; + cursor: default; } + +.btn--full { + border-width: 0; + padding-top: .375rem; + padding-bottom: .375rem; + background-color: #919BA4; + color: #FFFFFF; } + .btn--full:hover, .btn--full:focus { + background-color: #7C8792; + color: #FFFFFF; } + +.btn--full.btn--green { + background-color: #2ACA4B; } + .btn--full.btn--green:hover, .btn--full.btn--green:focus { + color: #FFFFFF; + background-color: #199E33; } + +.btn--full.btn--blue { + background-color: #007FFF; } + .btn--full.btn--blue:hover, .btn--full.btn--blue:focus { + color: #FFFFFF; + background-color: #0066CC; } + +.btn--full.btn--yellow { + background-color: #F2CD02; } + .btn--full.btn--yellow:hover, .btn--full.btn--yellow:focus { + color: #FFFFFF; + background-color: #C4A500; } + +.btn--full.btn--red { + background-color: #D8524E; } + .btn--full.btn--red:hover, .btn--full.btn--red:focus { + color: #FFFFFF; + background-color: #B33C38; } + +.btn--full.btn[disabled], +.btn--full.btn--disabled { + background-color: #E9EBEC; + color: #A7AFB6; + cursor: default; } + .btn--full.btn[disabled]:hover, .btn--full.btn[disabled]:focus, + .btn--full.btn--disabled:hover, + .btn--full.btn--disabled:focus { + background-color: #E9EBEC; + color: #A7AFB6; + cursor: default; } + +.btn--small { + font-size: .75rem; + padding: .3rem .5rem; } + +.btn--large { + font-size: 1.125rem; + padding: .5rem .75rem; } + +.btn--cta { + font-size: 1.5rem; + padding: .75rem 1.25rem .85rem 1.25rem; } + +.loader-text img { + vertical-align: sub; + width: 1.25em; + height: 1.25em; + margin-right: .25em; } + +.progress { + overflow: hidden; + padding-top: .5rem; + padding-bottom: .5rem; } + +.progress__bar { + height: 0.5rem; + width: calc(100% - 3rem); + float: left; + overflow: hidden; + background-color: #D3D7DB; + border-radius: 2px; } + +.progress__line { + width: 0%; + height: 0.5rem; + background-color: #007FFF; + border-radius: 2px; } + +.progress__line--loading { + overflow: hidden; + position: relative; + height: 0.5rem; } + +@keyframes move-bg { + 0% { + background-position: 28px 0; } + 100% { + background-position: 0 0; } } + .progress__line--loading:before { + content: ''; + width: 100%; + height: 0.5rem; + position: absolute; + top: 0; + left: 0; + background-image: repeating-linear-gradient(-45deg, transparent, transparent 5px, rgba(255, 255, 255, 0.1) 5px, rgba(255, 255, 255, 0.1) 10px); + background-size: 28px 0.5rem; + animation: move-bg .75s linear infinite; } + +.progress__line--complete { + background-color: #2ACA4B; } + +.progress__line--paused { + background-color: #A7AFB6; } + +.progress__counter { + float: right; + min-width: 3rem; + margin-top: -.4rem; + text-align: right; + font-size: .875rem; + color: #7C8792; } + +.dat-input { + display: inline-block; + position: relative; + overflow: hidden; + vertical-align: middle; } + +.dat-input__icon { + position: absolute; + top: calc(50% - (1.5rem / 2)); + left: .75rem; + pointer-events: none; + display: block; + width: 1.5rem; + height: 1.5rem; + fill: #D3D7DB; } + +.dat-input__input { + height: 2.25rem; + padding-right: .5rem; + padding-left: .5rem; + border: 1px solid #C3C9CD; + color: #7C8792; + text-transform: uppercase; } + .dat-input__input:hover, .dat-input__input:focus, .dat-input__input:active { + outline: none; + color: #293648; + border-color: #2ACA4B; } + +.dat-input__input--icon { + padding-left: 2.75rem; } + +.dat-input__input--no-border { + border: none; } + +ul.list-plain, ol.list-plain { + padding: 0; + margin: 0; + list-style-type: none; } + +body { + color: #293648; } + +a, +button, +input, +select, +textarea { + transition-property: background-color, color, border-color; + transition-duration: 0.05s; + transition-timing-function: ease-out; } + +/* styleguide layout */ +.sg-header { + background-color: #F6F7F8; + border-bottom: 1px solid #E9EBEC; + height: 60px; } + .sg-header .sg-container { + padding-top: 0; } + +.dat-logo { + display: flex; + align-items: center; + height: 60px; + font-size: 1.5rem; + font-weight: 600; + color: #293648; + letter-spacing: .025em; } + .dat-logo img { + display: block; + max-width: 2rem; + margin-right: .75rem; + transition: transform .5s ease-in-out; } + .dat-logo span { + margin-left: .25rem; + color: #7C8792; } + .dat-logo:hover, .dat-logo:focus { + color: #293648; } + .dat-logo:hover img, .dat-logo:focus img { + transform: rotate(360deg); } + +.sg-main { + padding-top: 1.5rem; } + +.sg-container { + margin: 0 auto; + padding: .75rem 2rem; + max-width: 1170px; } + +.sg-section { + max-width: 800px; + padding-top: 2rem; + padding-bottom: 2rem; + clear: both; } + +.sg-meta { + font-size: .875rem; + color: #919BA4; } + +.sg-example { + margin-bottom: 1rem; + padding: 1.5rem 1rem; + border: 1px solid #C3C9CD; + border-radius: 4px; + overflow: hidden; } + +.sg-label { + font-size: .875rem; + color: #7C8792; + margin-bottom: 1rem; + text-transform: uppercase; + letter-spacing: .025em; } + @media (min-width: 640px) { + .sg-label { + width: 20%; + float: left; } } + +@media (min-width: 640px) { + .sg-subsection { + width: 80%; + float: left; } } + +.sg-subsection__img { + max-width: 120px; + height: auto; + float: left; + margin-right: 2rem; + margin-bottom: 1rem; } + +.color-blocks { + display: flex; + justify-content: flex-start; + flex-direction: column; } + @media (min-width: 800px) { + .color-blocks { + flex-direction: row; } } + +.color-block--neutral { + flex: 0 1 0; + margin-right: 1rem; + margin-bottom: 1rem; + background-color: #293648; + color: #FFFFFF; + text-align: center; + font-weight: bold; + font-size: 18px; + border-radius: 6px; } + .color-block--neutral:hover { + background-color: black; } + .color-block--neutral::before { + content: "#293648"; + display: block; + width: 100%; + height: 72px; + padding: 22px 10px; } + +.color-block--neutral--90 { + flex: 0 1 0; + margin-right: 1rem; + margin-bottom: 1rem; + background-color: #394B5B; + color: #FFFFFF; + text-align: center; + font-weight: bold; + font-size: 18px; + border-radius: 6px; } + .color-block--neutral--90:hover { + background-color: black; } + .color-block--neutral--90::before { + content: "#394B5B"; + display: block; + width: 100%; + height: 72px; + padding: 22px 10px; } + +.color-block--neutral--70 { + flex: 0 1 0; + margin-right: 1rem; + margin-bottom: 1rem; + background-color: #65737F; + color: #FFFFFF; + text-align: center; + font-weight: bold; + font-size: 18px; + border-radius: 6px; } + .color-block--neutral--70:hover { + background-color: #21262a; } + .color-block--neutral--70::before { + content: "#65737F"; + display: block; + width: 100%; + height: 72px; + padding: 22px 10px; } + +.color-block--neutral--50 { + flex: 0 1 0; + margin-right: 1rem; + margin-bottom: 1rem; + background-color: #919BA4; + color: #FFFFFF; + text-align: center; + font-weight: bold; + font-size: 18px; + border-radius: 6px; } + .color-block--neutral--50:hover { + background-color: #474e55; } + .color-block--neutral--50::before { + content: "#919BA4"; + display: block; + width: 100%; + height: 72px; + padding: 22px 10px; } + +.color-block--neutral--30 { + flex: 0 1 0; + margin-right: 1rem; + margin-bottom: 1rem; + background-color: #C3C9CD; + color: #FFFFFF; + text-align: center; + font-weight: bold; + font-size: 18px; + border-radius: 6px; } + .color-block--neutral--30:hover { + background-color: #707e87; } + .color-block--neutral--30::before { + content: "#C3C9CD"; + display: block; + width: 100%; + height: 72px; + padding: 22px 10px; } + +.color-block--neutral--10 { + flex: 0 1 0; + margin-right: 1rem; + margin-bottom: 1rem; + background-color: #E9EBEC; + color: #FFFFFF; + text-align: center; + font-weight: bold; + font-size: 18px; + border-radius: 6px; } + .color-block--neutral--10:hover { + background-color: #97a0a5; } + .color-block--neutral--10::before { + content: "#E9EBEC"; + display: block; + width: 100%; + height: 72px; + padding: 22px 10px; } + +.color-block--neutral--50 { + flex: 0 1 0; + margin-right: 1rem; + margin-bottom: 1rem; + background-color: #919BA4; + color: #FFFFFF; + text-align: center; + font-weight: bold; + font-size: 18px; + border-radius: 6px; } + .color-block--neutral--50:hover { + background-color: #474e55; } + .color-block--neutral--50::before { + content: "#919BA4"; + display: block; + width: 100%; + height: 72px; + padding: 22px 10px; } + +.color-block--green { + flex: 0 1 0; + margin-right: 1rem; + margin-bottom: 1rem; + background-color: #2ACA4B; + color: #FFFFFF; + text-align: center; + font-weight: bold; + font-size: 18px; + border-radius: 6px; } + .color-block--green:hover { + background-color: #104b1c; } + .color-block--green::before { + content: "#2ACA4B"; + display: block; + width: 100%; + height: 72px; + padding: 22px 10px; } + +.color-block--blue { + flex: 0 1 0; + margin-right: 1rem; + margin-bottom: 1rem; + background-color: #007FFF; + color: #FFFFFF; + text-align: center; + font-weight: bold; + font-size: 18px; + border-radius: 6px; } + .color-block--blue:hover { + background-color: #003366; } + .color-block--blue::before { + content: "#007FFF"; + display: block; + width: 100%; + height: 72px; + padding: 22px 10px; } + +.color-block--red { + flex: 0 1 0; + margin-right: 1rem; + margin-bottom: 1rem; + background-color: #D8524E; + color: #FFFFFF; + text-align: center; + font-weight: bold; + font-size: 18px; + border-radius: 6px; } + .color-block--red:hover { + background-color: #741c19; } + .color-block--red::before { + content: "#D8524E"; + display: block; + width: 100%; + height: 72px; + padding: 22px 10px; } + +.color-block--yellow { + flex: 0 1 0; + margin-right: 1rem; + margin-bottom: 1rem; + background-color: #F2CD02; + color: #FFFFFF; + text-align: center; + font-weight: bold; + font-size: 18px; + border-radius: 6px; } + .color-block--yellow:hover { + background-color: #5a4c01; } + .color-block--yellow::before { + content: "#F2CD02"; + display: block; + width: 100%; + height: 72px; + padding: 22px 10px; } + +.sg-color-list { + list-style: none; + padding: 0; } + .sg-color-list li { + padding: .25rem 0; } + +.sg-color-circle { + width: 1rem; + height: 1rem; + display: inline-block; + vertical-align: middle; + margin-right: .5rem; } + +.sg-code { + font-size: 1rem; + font-family: monospace; + color: #505F6D; + background-color: #F6F7F8; + padding: 1px; } + +.sg-pre { + font-size: 1rem; + font-family: monospace; + color: #505F6D; + background-color: #F6F7F8; + padding: 1rem; + overflow-x: auto; } + +.sg-icon-list { + display: flex; + flex-wrap: wrap; } + +.sg-icon-block { + flex: 0 1 20%; + text-align: center; + margin: 0; + padding: .5rem; } + .sg-icon-block .daticon { + display: block; + max-width: 60px; + max-height: 60px; + margin: 0 auto; + padding: .5rem; + fill: currentColor; } + .sg-icon-block figcaption { + font-size: .75rem; + color: #7C8792; } diff --git a/package.json b/package.json index f3d3e043..fa07b4c9 100644 --- a/package.json +++ b/package.json @@ -26,20 +26,16 @@ ] }, "scripts": { - "server": "node ./server/cli", + "start": "npm run watch-js & npm run build-css & npm run server", + "server": "DISABLE_NANOTIMING=true node ./server/cli", "lint": "standard", "database": "dat-registry-api", "clean-test": "rm -rf tests/archiver && rm -rf tests/township.db && rm -rf tests/*.sqlite", "test": "./tests/test.sh", - "start": "npm run watch-js & npm run watch-css & npm run watch-server", "render": "node bin/render-static.js", "new-dat": "node tests/new-dat", - "watch-render": "nodemon --watch public -i public/rendered -e html bin/render-static", - "watch-css": "nodemon --watch client -e scss -x \"npm run build-css\"", - "watch-js": "mkdir -p public/js && watchify --fast --verbose -t brfs -p [ css-extract -o bundle.css ] client/js/app.js -o public/js/app.js", - "watch-server": "nodemon server/cli --watch server --watch client", - "build": "npm run build-js && npm run build-css", - "build-css": "node-sass --importer node_modules/node-sass-magic-importer client/scss/app.scss public/css/app.css", + "watch-js": "DISABLE_NANOTIMING=true mkdir -p public/js && watchify --fast --verbose -t brfs -p [ css-extract -o bundle.css ] client/js/app.js -o public/js/app.js", + "build-css": "node-sass client/scss/app.scss public/css/app.css", "build-js": "mkdir -p public/js && browserify -t brfs -p [ css-extract -o bundle.css ] client/js/app.js > public/js/app.js", "build-js-prod": "mkdir -p public/js && NODE_ENV=production browserify -t brfs -t envify -p [ css-extract -o bundle.css ] client/js/app.js > public/js/app.js", "minify": "npm run minify-css && npm run minify-js", @@ -53,68 +49,68 @@ ] }, "devDependencies": { - "dat-node": "^3.5.0", - "marked": "^0.3.6", - "nodemon": "^1.10.0", - "request": "^2.79.0", - "rimraf": "^2.5.4", - "standard": "^7.1.2", - "tap-spec": "^4.1.1", - "tape": "^4.6.3", - "watchify": "~3.6.0" + "dat-node": "^3.5.14", + "marked": "^0.6.0", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "standard": "^12.0.1", + "tap-spec": "^5.0.0", + "tape": "^4.10.1", + "watchify": "^3.11.0" }, "dependencies": { "babel-preset-es2015": "^6.18.0", - "body-parser": "^1.15.2", + "body-parser": "^1.18.3", "bole": "^3.0.1", - "brfs": "^1.4.3", - "browserify": "^13.0.0", + "brfs": "^2.0.1", + "browserify": "^16.2.3", "choo": "^6.0.0", - "choo-log": "^7.2.1", + "choo-devtools": "^2.5.1", "choo-persist": "^3.0.2", "clipboard": "^1.6.1", "collect-stream": "^1.1.1", - "compression": "^1.6.2", + "compression": "^1.7.3", "css-extract": "^1.2.0", "dat-colors": "^3.4.0", "dat-design": "^5.0.0", "dat-icons": "^2.5.0", "dat-registry": "^3.0.2", "dat-registry-api": "^6.0.8", - "dat-swarm-defaults": "^1.0.0", - "debug": "^2.6.8", - "discovery-swarm": "^4.2.0", - "drag-drop": "^2.11.0", + "dat-swarm-defaults": "^1.0.2", + "debug": "^4.1.1", + "discovery-swarm": "^5.1.4", + "drag-drop": "^4.2.0", "envify": "^4.0.0", - "es6-promise": "^3.3.1", - "express": "^4.14.0", + "es6-promise": "^4.2.5", + "express": "^4.16.4", "express-simple-redirect": "^1.0.1", - "extend": "^3.0.0", - "file-saver": "^1.3.2", + "extend": "^3.0.2", + "file-saver": "^2.0.0", "from2": "^2.3.0", - "ganalytics": "^2.0.1", + "ganalytics": "^3.1.1", "get-form-data": "^1.2.5", - "gravatar": "^1.6.0", - "mime": "^1.3.4", + "gravatar": "^1.8.0", + "leveldown": "^4.0.1", + "mime": "^2.4.0", "minifier": "^0.8.0", - "mixpanel": "^0.7.0", + "mixpanel": "^0.10.1", "nets": "^3.2.0", - "node-sass": "^3.8.0", - "node-sass-magic-importer": "^0.1.4", + "node-sass": "^4.11.0", "node-version-assets": "^1.1.0", - "pretty-bytes": "^3.0.1", - "pump": "^1.0.2", + "pretty-bytes": "^5.1.0", + "pump": "^3.0.0", "range-parser": "^1.2.0", "relative-date": "^1.1.3", "render-data": "^2.2.0", - "serialize-javascript": "^1.3.0", - "sheetify": "^6.0.1", + "serialize-javascript": "^1.6.1", + "sheetify": "^7.3.3", "sheetify-nested": "^1.0.2", - "tachyons": "^4.8.1", + "sqlite3": "^4.0.6", + "tachyons": "^4.11.1", "township-client": "^1.2.2", "uglify-es": "github:mishoo/UglifyJS2#harmony", "uparams": "^1.3.1", - "xhr": "^2.4.0", + "xhr": "^2.5.0", "xtend": "^4.0.1", "yo-fs": "^3.0.1" } diff --git a/scripts/add-dats-for-user.js b/scripts/add-dats-for-user.js index e733af83..82be2497 100644 --- a/scripts/add-dats-for-user.js +++ b/scripts/add-dats-for-user.js @@ -5,7 +5,7 @@ const ram = require('random-access-memory') var rootUrl = 'http://localhost:8080' var email = process.argv[2] var password = process.argv[3] -var api = Api({server: rootUrl, apiPath: '/api/v1'}) +var api = Api({ server: rootUrl, apiPath: '/api/v1' }) function createDat (dat) { var archive = hyperdrive(ram) @@ -18,8 +18,8 @@ function createDat (dat) { }) } -api.login({email, password}, function (err, resp, json) { +api.login({ email, password }, function (err, resp, json) { if (err) console.error('err', err.toString()) - createDat({name: 'cats', description: 'meow these are cats', keywords: 'meow, cats, grass, mice, scratching'}) - createDat({name: 'dogs', description: 'yo these are dogs', keywords: 'dogs, love, cuddles, running, eating'}) + createDat({ name: 'cats', description: 'meow these are cats', keywords: 'meow, cats, grass, mice, scratching' }) + createDat({ name: 'dogs', description: 'yo these are dogs', keywords: 'dogs, love, cuddles, running, eating' }) }) diff --git a/scripts/user-and-dat.js b/scripts/user-and-dat.js index e9c0d4f6..82a38f16 100644 --- a/scripts/user-and-dat.js +++ b/scripts/user-and-dat.js @@ -21,12 +21,12 @@ var township = TownshipClient({ server: 'http://localhost:8080/api/v1' }) -township.register({username: 'admin', password: password, email: email}, function (err, resp, json) { +township.register({ username: 'admin', password: password, email: email }, function (err, resp, json) { if (err && err.message.indexOf('exists') === -1) throw new Error(err.message) console.log('logging in', email, password) - township.login({email: email, password: password}, function (err, resp, json) { + township.login({ email: email, password: password }, function (err, resp, json) { if (err) throw new Error(err.message) - township.secureRequest({url: '/dats', method: 'POST', body: dat, json: true}, function (err, resp, json) { + township.secureRequest({ url: '/dats', method: 'POST', body: dat, json: true }, function (err, resp, json) { if (err) throw new Error(err.message) console.log('created dat', dat) }) diff --git a/server/cli.js b/server/cli.js index c858918d..a4b7f7c4 100755 --- a/server/cli.js +++ b/server/cli.js @@ -29,7 +29,7 @@ db(config.db, function (err, db) { }) process.once('uncaughtException', function (err) { - config.log.error({message: 'error', error: err.message, stack: err.stack}) + config.log.error({ message: 'error', error: err.message, stack: err.stack }) console.error(err.stack) process.exit(1) }) diff --git a/server/page.js b/server/page.js index 02e490c6..77c529e3 100644 --- a/server/page.js +++ b/server/page.js @@ -5,7 +5,7 @@ const serializeJS = require('serialize-javascript') function page (url, contents, appState) { var dehydratedAppState = serializeJS(appState) var defaultMetadata = { - title: 'datBase - Open data powered by Dat', + title: 'datDirectory - Open data powered by Dat', author: 'Dat Project', description: 'Future-friendly apps for your research data pipeline.', image: 'https://datbase.org/public/img/dat-hexagon.png', diff --git a/server/router.js b/server/router.js index 0c504403..56141360 100644 --- a/server/router.js +++ b/server/router.js @@ -85,7 +85,7 @@ module.exports = function (config) { archive.stat(name, function (err, st) { if (err) return onerror(err, res) debug('file requested', st.size) - mx.track('file requested', {size: st.size}) + mx.track('file requested', { size: st.size }) if (st.isDirectory()) { res.statusCode = 302 @@ -95,7 +95,7 @@ module.exports = function (config) { var r = req.headers.range && range(st.size, req.headers.range)[0] res.setHeader('Accept-Ranges', 'bytes') - res.setHeader('Content-Type', mime.lookup(name)) + res.setHeader('Content-Type', mime.getType(name)) if (r) { res.statusCode = 206 @@ -131,10 +131,10 @@ module.exports = function (config) { router.get('/metadata/:archiveKey', function (req, res) { var timeout = parseInt(req.query.timeout, 10) || 1000 debug('requesting metadata for key', req.params.archiveKey) - archiver.get(req.params.archiveKey, {timeout}, function (err, archive) { + archiver.get(req.params.archiveKey, { timeout }, function (err, archive) { if (err) return onerror(err, res) - archiver.metadata(archive, {timeout}, function (err, info) { - if (err) info.error = {message: err.message} + archiver.metadata(archive, { timeout }, function (err, info) { + if (err) info.error = { message: err.message } info.health = archiver.health(archive) return res.status(200).json(info) }) @@ -149,7 +149,7 @@ module.exports = function (config) { router.get('/:username', function (req, res) { var state = getDefaultAppState() debug('looking for user', req.params.username) - db.users.get({username: req.params.username}, function (err, results) { + db.users.get({ username: req.params.username }, function (err, results) { if (err) return onerror(err, res) if (!results.length) { debug('user not found') @@ -157,7 +157,7 @@ module.exports = function (config) { } var user = results[0] debug('profile views', user) - mx.track('profile viewed', {distinct_id: user.email}) + mx.track('profile viewed', { distinct_id: user.email }) state.profile = { username: user.username, role: user.role, @@ -169,7 +169,7 @@ module.exports = function (config) { id: user.id } debug('getting dats') - db.dats.get({user_id: user.id}, function (err, results) { + db.dats.get({ user_id: user.id }, function (err, results) { if (err) return onerror(err, res) state.profile.dats = results debug('sending profile', state.profile) @@ -184,7 +184,7 @@ module.exports = function (config) { db.dats.getByShortname(req.params, function (err, dat) { if (err) { var state = getDefaultAppState() - state.archive.error = {message: err.message} + state.archive.error = { message: err.message } debug('could not get dat with ' + req.params, err) return sendSPA(req, res, state) } @@ -224,14 +224,14 @@ module.exports = function (config) { if (err) return onerror(err, res) archive.stat(filename, function (err, entry) { if (err) { - state.preview.error = {message: err.message} - entry = {name: filename} + state.preview.error = { message: err.message } + entry = { name: filename } } entry.name = filename entry.archiveKey = req.params.archiveKey entry.type = entry.isDirectory ? entry.isDirectory() ? 'directory' : 'file' - : 'file' + : 'file' if (entry.type === 'directory') { state.archive.root = entry.name return sendSPA(req, res, state) @@ -249,7 +249,7 @@ module.exports = function (config) { function onerror (err, res) { console.trace(err) - return res.status(400).json({statusCode: 400, message: err.message}) + return res.status(400).json({ statusCode: 400, message: err.message }) } function archiveRoute (key, cb) { @@ -260,7 +260,7 @@ module.exports = function (config) { debug(key, err) if (cancelled) return true cancelled = true - state.archive.error = {message: err.message} + state.archive.error = { message: err.message } return cb(state) } @@ -272,7 +272,7 @@ module.exports = function (config) { }, 1000) var state = getDefaultAppState() - mx.track('archive viewed', {key: key}) + mx.track('archive viewed', { key: key }) archiver.get(key, function (err, archive, key) { if (err) return onerror(err) @@ -283,8 +283,8 @@ module.exports = function (config) { if (cancelled) return cancelled = true - archiver.metadata(archive, {timeout: 1000}, function (err, info) { - if (err) state.archive.error = {message: err.message} + archiver.metadata(archive, { timeout: 1000 }, function (err, info) { + if (err) state.archive.error = { message: err.message } state.archive = xtend(state.archive, info) state.archive.key = key cb(state) diff --git a/tests/e2e-webrtc/connect.js b/tests/e2e-webrtc/connect.js index d178981c..479f8232 100644 --- a/tests/e2e-webrtc/connect.js +++ b/tests/e2e-webrtc/connect.js @@ -9,13 +9,13 @@ function makeServer () { }).on('error', (err) => { throw err }) - server.listen({path: '/tmp/nightwatch-ipc.sock'}, () => { + server.listen({ path: '/tmp/nightwatch-ipc.sock' }, () => { }) return server } function makeClient () { - var socket = net.connect({path: '/tmp/nightwatch-ipc.sock'}, () => { + var socket = net.connect({ path: '/tmp/nightwatch-ipc.sock' }, () => { socket.on('data', (data) => { }) }).on('error', () => { diff --git a/tests/e2e/preview.js b/tests/e2e/preview.js index c22bae6d..58205101 100644 --- a/tests/e2e/preview.js +++ b/tests/e2e/preview.js @@ -18,4 +18,4 @@ module.exports = new function () { client.expect.element('.dat-detail.size').text.to.contain('48 B') }) } -} +}() diff --git a/tests/e2e/server.js b/tests/e2e/server.js index e5dd3a7b..41ac1759 100644 --- a/tests/e2e/server.js +++ b/tests/e2e/server.js @@ -3,8 +3,8 @@ var path = require('path') var testServer = process.env.TEST_SERVER || 'https://datbase.org' const os = require('os') const modificatorKey = (os.type().toLowerCase() === 'darwin') - ? 'COMMAND' - : 'CONTROL' + ? 'COMMAND' + : 'CONTROL' module.exports = new function () { var key = fs.readFileSync(path.join(__dirname, '..', 'key.txt')).toString() @@ -12,8 +12,8 @@ module.exports = new function () { var testCases = this testCases['opening the browser and navigating to the url'] = (client) => { client - .url(testServer) - .assert.containsText('body', 'dat') + .url(testServer) + .assert.containsText('body', 'dat') } testCases['viewing a dat that doesnt exist gives explore page'] = (client) => { client @@ -37,7 +37,7 @@ module.exports = new function () { } testCases['viewing a dat that exists with file list works'] = (client) => { client - .setValue("input[name='import-dat']", key) + .setValue("input[name='import-dat']", key) client.keys(client.Keys.ENTER, function (done) { client.pause(2000) client @@ -62,4 +62,4 @@ module.exports = new function () { .keys([client.Keys[modificatorKey], 'v']) .expect.element("input[name='import-dat']").value.to.equal('dat://' + key).before(3000) } -} +}() diff --git a/tests/e2e/user.js b/tests/e2e/user.js index ff38fa74..9d12eb55 100644 --- a/tests/e2e/user.js +++ b/tests/e2e/user.js @@ -86,4 +86,4 @@ module.exports = new function () { client.end() } -} +}() diff --git a/tests/helpers.js b/tests/helpers.js index 53abc064..98702854 100644 --- a/tests/helpers.js +++ b/tests/helpers.js @@ -17,13 +17,13 @@ module.exports = { }) }, users: { - joe: {name: 'joe schmo', username: 'joe', password: 'very secret', email: 'hi@joe.com', description: 'hello i am a description', token: null, role: 'user'}, - bob: {name: 'bob smob', username: 'bob', password: 'so secret', email: 'hi@bob.com', description: 'i like it', token: null, role: 'user'}, - admin: {name: 'pam spam', username: 'pam', password: 'secret123', email: 'hi@pam.com', description: 'i dont eat it', token: null, role: 'admin'} + joe: { name: 'joe schmo', username: 'joe', password: 'very secret', email: 'hi@joe.com', description: 'hello i am a description', token: null, role: 'user' }, + bob: { name: 'bob smob', username: 'bob', password: 'so secret', email: 'hi@bob.com', description: 'i like it', token: null, role: 'user' }, + admin: { name: 'pam spam', username: 'pam', password: 'secret123', email: 'hi@pam.com', description: 'i dont eat it', token: null, role: 'admin' } }, dats: { - cats: {name: 'cats', title: 'all of the cats', description: 'live on the corner of washington and 7th', keywords: 'furry, fluffy'}, - penguins: {name: 'penguins', title: 'all of the penguins', description: 'lives in your house', keywords: 'sloppy, loud'}, - dogs: {name: 'dogs', title: 'all of the dogs', description: 'lives in your house', keywords: 'sloppy, loud'} + cats: { name: 'cats', title: 'all of the cats', description: 'live on the corner of washington and 7th', keywords: 'furry, fluffy' }, + penguins: { name: 'penguins', title: 'all of the penguins', description: 'lives in your house', keywords: 'sloppy, loud' }, + dogs: { name: 'dogs', title: 'all of the dogs', description: 'lives in your house', keywords: 'sloppy, loud' } } } diff --git a/tests/unit/api.js b/tests/unit/api.js index 36c15275..750f9145 100644 --- a/tests/unit/api.js +++ b/tests/unit/api.js @@ -24,7 +24,7 @@ test('api', function (t) { t.end() test('api POST users should fail', function (t) { - request.post({url: api + '/users', body: users.joe, json: true}, function (err, resp, body) { + request.post({ url: api + '/users', body: users.joe, json: true }, function (err, resp, body) { t.ifError(err) t.same(body.statusCode, 400) t.end() @@ -32,7 +32,7 @@ test('api', function (t) { }) test('api GET users should fail without login', function (t) { - request({url: api + '/users', json: true}, function (err, resp, body) { + request({ url: api + '/users', json: true }, function (err, resp, body) { t.ifError(err) t.same(body.statusCode, 400) t.end() @@ -40,7 +40,7 @@ test('api', function (t) { }) test('api GET dats should pass without login', function (t) { - request({url: api + '/dats', json: true}, function (err, resp, body) { + request({ url: api + '/dats', json: true }, function (err, resp, body) { t.ifError(err) t.same(body, [], 'zero dats') t.end() @@ -78,7 +78,7 @@ test('api', function (t) { }) test('api id should not update even after a failure ', function (t) { - client.secureRequest({url: '/users?id=' + users.joe.id, method: 'GET', json: true}, function (err, resp, body) { + client.secureRequest({ url: '/users?id=' + users.joe.id, method: 'GET', json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 1, 'joe is still there') t.same(body[0].id, users.joe.id, 'same id in body and joe') @@ -87,7 +87,7 @@ test('api', function (t) { }) test('api should get the users we created', function (t) { - client.secureRequest({url: '/users', json: true}, function (err, resp, body) { + client.secureRequest({ url: '/users', json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 3, 'has three users') if (body.length) { @@ -107,10 +107,10 @@ test('api', function (t) { t.ok(body.token, 'has token') t.ok(body.key, 'has key') t.same(body.username, users.joe.username, 'has username') - client.secureRequest({url: '/users', method: 'PUT', body: {id: users.joe.id, description: 'this is a new description'}, json: true}, function (err, resp, body) { + client.secureRequest({ url: '/users', method: 'PUT', body: { id: users.joe.id, description: 'this is a new description' }, json: true }, function (err, resp, body) { t.ifError(err) t.same(body.updated, 1, 'updated one user') - client.secureRequest({url: '/users', json: true}, function (err, resp, body) { + client.secureRequest({ url: '/users', json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 3, 'has three users') if (body.length) t.same(body[0].description, 'this is a new description', 'user has new description') @@ -121,10 +121,10 @@ test('api', function (t) { }) }) test('api joe cannot update bob', function (t) { - client.secureRequest({url: '/users', method: 'put', body: {id: users.bob.id, email: 'joebob@email.com'}, json: true}, function (err, resp, body) { + client.secureRequest({ url: '/users', method: 'put', body: { id: users.bob.id, email: 'joebob@email.com' }, json: true }, function (err, resp, body) { t.ok(err) t.same(err.statusCode, 400, 'request denied') - client.secureRequest({url: '/users', json: true}, function (err, resp, body) { + client.secureRequest({ url: '/users', json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 3, 'has three users') if (body.length) t.same(body[1].email, users.bob.email, 'bob has the same email') @@ -134,10 +134,10 @@ test('api', function (t) { }) test('api joe cannot delete bob', function (t) { - client.secureRequest({method: 'DELETE', url: '/users', body: {id: users.bob.id}, json: true}, function (err, resp, body) { + client.secureRequest({ method: 'DELETE', url: '/users', body: { id: users.bob.id }, json: true }, function (err, resp, body) { t.ok(err) t.same(err.statusCode, 400, 'request denied') - client.secureRequest({url: '/users', json: true}, function (err, resp, body) { + client.secureRequest({ url: '/users', json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 3, 'has three users') t.end() @@ -147,12 +147,12 @@ test('api', function (t) { test('api can create a dat', function (t) { dats.cats.url = datKey - client.secureRequest({method: 'POST', url: '/dats', body: dats.cats, json: true}, function (err, resp, body) { + client.secureRequest({ method: 'POST', url: '/dats', body: dats.cats, json: true }, function (err, resp, body) { t.ifError(err) t.ok(body.id, 'has an id') dats.cats.id = body.id dats.cats.user_id = body.user_id - client.secureRequest({url: '/dats', json: true}, function (err, resp, body) { + client.secureRequest({ url: '/dats', json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 1) t.end() @@ -161,7 +161,7 @@ test('api', function (t) { }) test('api can get a dat', function (t) { - client.secureRequest({url: '/dats?id=' + dats.cats.id, json: true}, function (err, resp, body) { + client.secureRequest({ url: '/dats?id=' + dats.cats.id, json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 1, 'has one dat') if (body.length) t.same(body[0].name, dats.cats.name, 'is the right dat') @@ -171,7 +171,7 @@ test('api', function (t) { test('api can update a dat thats mine using POST', function (t) { dats.cats.description = 'this is a new description' - client.secureRequest({url: '/dats', body: dats.cats, method: 'POST', json: true}, function (err, resp, body) { + client.secureRequest({ url: '/dats', body: dats.cats, method: 'POST', json: true }, function (err, resp, body) { t.ifError(err) t.same(body.updated, 1) t.end() @@ -182,7 +182,7 @@ test('api', function (t) { var bad = Object.assign({}, dats.penguins) bad.url = datKey bad.name = 'this is a bad name' - client.secureRequest({method: 'POST', url: '/dats', body: bad, json: true}, function (err, resp, body) { + client.secureRequest({ method: 'POST', url: '/dats', body: bad, json: true }, function (err, resp, body) { t.ok(err) t.ok(err.message.indexOf('name pattern mismatch') > -1, 'has pattern mismatch error') t.end() @@ -190,7 +190,7 @@ test('api', function (t) { }) test('api can get a dat by username/dataset combo', function (t) { - client.secureRequest({url: `/${users.joe.username}/${dats.cats.name}`, json: true}, function (err, resp, user) { + client.secureRequest({ url: `/${users.joe.username}/${dats.cats.name}`, json: true }, function (err, resp, user) { t.ifError(err) t.same(user.name, dats.cats.name, 'is the right dat') t.end() @@ -198,7 +198,7 @@ test('api', function (t) { }) test('api can get a dat by username/dataset combo without login', function (t) { - request({url: `${rootUrl}/${users.joe.username}/${dats.cats.name}`, json: true}, function (err, resp, body) { + request({ url: `${rootUrl}/${users.joe.username}/${dats.cats.name}`, json: true }, function (err, resp, body) { t.ifError(err) t.same(resp.headers['hyperdrive-key'], dats.cats.url, 'has url') t.end() @@ -207,12 +207,12 @@ test('api', function (t) { test('api can create another dat', function (t) { dats.penguins.url = datKey - client.secureRequest({method: 'POST', url: '/dats', body: dats.penguins, json: true}, function (err, resp, body) { + client.secureRequest({ method: 'POST', url: '/dats', body: dats.penguins, json: true }, function (err, resp, body) { t.ifError(err) t.ok(body.id, 'has an id') dats.penguins.id = body.id dats.penguins.user_id = body.user_id - client.secureRequest({url: '/dats', json: true}, function (err, resp, body) { + client.secureRequest({ url: '/dats', json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 2) t.end() @@ -221,7 +221,7 @@ test('api', function (t) { }) test('api can get dats with limit and offset', function (t) { - client.secureRequest({url: '/dats?limit=1&offset=1', json: true}, function (err, resp, body) { + client.secureRequest({ url: '/dats?limit=1&offset=1', json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 1, 'has one dat') t.same(body[0].name, dats.penguins.name, 'is the right dat') @@ -230,7 +230,7 @@ test('api', function (t) { }) test('api cannot delete a dat that doesnt exist', function (t) { - client.secureRequest({method: 'DELETE', url: '/dats', body: {id: 'notanid'}, json: true}, function (err, resp, body) { + client.secureRequest({ method: 'DELETE', url: '/dats', body: { id: 'notanid' }, json: true }, function (err, resp, body) { t.ok(err) t.same(err.statusCode, 400, 'request denied') t.end() @@ -241,7 +241,7 @@ test('api', function (t) { client.logout(function () { client.login(users.bob, function (err) { t.ifError(err) - client.secureRequest({method: 'DELETE', url: '/dats', body: {id: dats.cats.id}, json: true}, function (err, resp, body) { + client.secureRequest({ method: 'DELETE', url: '/dats', body: { id: dats.cats.id }, json: true }, function (err, resp, body) { t.ok(err) t.same(err.statusCode, 400, 'request denied') t.end() @@ -251,10 +251,10 @@ test('api', function (t) { }) test('api bob cannot update joes dat using POST', function (t) { - client.secureRequest({method: 'POST', url: '/dats', body: {id: dats.cats.id, name: 'hax00rs'}, json: true}, function (err, resp, body) { + client.secureRequest({ method: 'POST', url: '/dats', body: { id: dats.cats.id, name: 'hax00rs' }, json: true }, function (err, resp, body) { t.ok(err) t.same(err.statusCode, 400, 'request denied') - client.secureRequest({url: '/dats?id=' + dats.cats.id, json: true}, function (err, resp, body) { + client.secureRequest({ url: '/dats?id=' + dats.cats.id, json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 1, 'got the dat') t.same(body[0].name, dats.cats.name, 'name is the same') @@ -264,10 +264,10 @@ test('api', function (t) { }) test('api bob cannot update joes dat', function (t) { - client.secureRequest({method: 'PUT', url: '/dats', body: {id: dats.cats.id, name: 'hax00rs'}, json: true}, function (err, resp, body) { + client.secureRequest({ method: 'PUT', url: '/dats', body: { id: dats.cats.id, name: 'hax00rs' }, json: true }, function (err, resp, body) { t.ok(err) t.same(err.statusCode, 400, 'request denied') - client.secureRequest({url: '/dats?id=' + dats.cats.id, json: true}, function (err, resp, body) { + client.secureRequest({ url: '/dats?id=' + dats.cats.id, json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 1, 'got the dat') t.same(body[0].name, dats.cats.name, 'name is the same') @@ -278,16 +278,16 @@ test('api', function (t) { test('api bob can delete his own dat', function (t) { dats.dogs.url = datKey - client.secureRequest({method: 'POST', url: '/dats', body: dats.dogs, json: true}, function (err, resp, body) { + client.secureRequest({ method: 'POST', url: '/dats', body: dats.dogs, json: true }, function (err, resp, body) { t.ifError(err) t.ok(body.id, 'has an id') dats.dogs.id = body.id dats.dogs.user_id = body.user_id t.same(body.name, dats.dogs.name, 'is the right dat') - client.secureRequest({method: 'DELETE', url: '/dats', body: {name: dats.dogs.name}, json: true}, function (err, resp, body) { + client.secureRequest({ method: 'DELETE', url: '/dats', body: { name: dats.dogs.name }, json: true }, function (err, resp, body) { t.ifError(err) t.same(body.deleted, 1, 'deletes one row') - client.secureRequest({url: '/dats', json: true}, function (err, resp, body) { + client.secureRequest({ url: '/dats', json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 2, 'only two dat') t.end() @@ -297,10 +297,10 @@ test('api', function (t) { }) test('api bob can delete himself', function (t) { - client.secureRequest({method: 'DELETE', url: '/users', body: {id: users.bob.id}, json: true}, function (err, resp, body) { + client.secureRequest({ method: 'DELETE', url: '/users', body: { id: users.bob.id }, json: true }, function (err, resp, body) { t.ifError(err) t.same(body.deleted, 1, 'deletes one row') - client.secureRequest({url: '/users', json: true}, function (err, resp, body) { + client.secureRequest({ url: '/users', json: true }, function (err, resp, body) { t.ok(err) t.same(err.statusCode, 400, 'once bob is gone he cant use the api') t.end() @@ -311,7 +311,7 @@ test('api', function (t) { test('api no trace of bob after deletion', function (t) { client.login(users.joe, function (err) { t.ifError(err) - client.secureRequest({url: '/users', json: true}, function (err, resp, body) { + client.secureRequest({ url: '/users', json: true }, function (err, resp, body) { t.ifError(err) t.same(body.length, 2, 'has two users') t.end() @@ -322,7 +322,7 @@ test('api', function (t) { test('api should allow password reset', function (t) { client.secureRequest({ url: '/password-reset', - body: {email: users.joe.email}, + body: { email: users.joe.email }, method: 'POST', json: true }, function (err, resp, body) { @@ -331,9 +331,9 @@ test('api', function (t) { t.same(sent.length, 1) t.same(sent[0].data.to, users.joe.email) const [, urlstring] = sent[0].message.content.match(/href="(.*?)"/) - const {query} = require('url').parse(urlstring, 1) - const goodQuery = xtend(query, {newPassword: 'foobar'}) - const brokenQuery = xtend(goodQuery, {resetToken: 'zzz'}) + const { query } = require('url').parse(urlstring, 1) + const goodQuery = xtend(query, { newPassword: 'foobar' }) + const brokenQuery = xtend(goodQuery, { resetToken: 'zzz' }) client.secureRequest({ url: '/password-reset-confirm', body: brokenQuery,