Compare commits
39 Commits
Author | SHA1 | Date | |
---|---|---|---|
c9da9de528 | |||
63809ffa0f | |||
3cbe5cfa20 | |||
03304f0b17 | |||
b5f2a7fb5a | |||
ac88bdf0b7 | |||
3d9b379fd9 | |||
06bed316b5 | |||
a711e44aea | |||
2f9f94fec2 | |||
692e5f722e | |||
042218d1b8 | |||
2d9860441e | |||
d4bdea8d56 | |||
d327e9de65 | |||
72b0b22088 | |||
7bdc1fd674 | |||
9cbef1a1e3 | |||
7d2a2ead3f | |||
7e7a89424c | |||
aca13da8cc | |||
c6e762f96b | |||
a8eb773e6c | |||
183f02f26f | |||
be2a9499c6 | |||
5e207a1a64 | |||
7053c866f9 | |||
523ac48fb6 | |||
a1da3f9a5e | |||
f73fb0c2fb | |||
bf746a4227 | |||
f1ee6c5942 | |||
c2a60646f7 | |||
671ae6357f | |||
72ac07db5a | |||
f65b537255 | |||
1923a1d296 | |||
d2a31ce33e | |||
d0afbae699 |
2
.gitignore
vendored
@ -1,7 +1,7 @@
|
||||
.gradle/
|
||||
build/
|
||||
.idea/
|
||||
/logs/
|
||||
logs/
|
||||
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
/deploy.ps1
|
||||
|
14
.space.kts
@ -4,15 +4,15 @@ job("Deploy") {
|
||||
}
|
||||
|
||||
container(image = "gradle:jdk17-alpine") {
|
||||
env["SPC_HOST"] = Params("spc-host")
|
||||
env["SPC_USER"] = Secrets("spc-webmaster-user")
|
||||
env["SPC_ID"] = Secrets("spc-webmaster-id")
|
||||
env["SPC_HOST"] = "{{ project:spc-host }}"
|
||||
env["SPC_USER"] = "{{ project:spc-webmaster-user }}"
|
||||
env["SPC_ID"] = "{{ project:spc-webmaster-id }}"
|
||||
kotlinScript { api ->
|
||||
api.space().projects.automation.deployments.start(
|
||||
project = api.projectIdentifier(),
|
||||
targetIdentifier = TargetIdentifier.Key("spc-site"),
|
||||
version = "current",
|
||||
// automatically update deployment status based on a status of a job
|
||||
// automatically update deployment status based on the status of the job
|
||||
syncWithAutomationJob = true
|
||||
)
|
||||
api.gradle("uploadDistribution")
|
||||
@ -26,9 +26,9 @@ job("Restart service"){
|
||||
}
|
||||
|
||||
container(image = "gradle:jdk17-alpine") {
|
||||
env["SPC_HOST"] = Params("spc-host")
|
||||
env["SPC_USER"] = Secrets("spc-webmaster-user")
|
||||
env["SPC_ID"] = Secrets("spc-webmaster-id")
|
||||
env["SPC_HOST"] = "{{ project:spc-host }}"
|
||||
env["SPC_USER"] = "{{ project:spc-webmaster-user }}"
|
||||
env["SPC_ID"] = "{{ project:spc-webmaster-id }}"
|
||||
kotlinScript { api ->
|
||||
api.gradle("reloadDistribution")
|
||||
}
|
||||
|
20
Epikhin.md
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
content_type: magprog_mentor
|
||||
name: Андрей Епихин
|
||||
id: Epikhin
|
||||
image: images/mentors/Epikhin.jpg
|
||||
language: ru
|
||||
---
|
||||
#### Организация
|
||||
ИСП РАН, лаборатория СПО цифрового моделирования технических систем https://unicfd.ru/
|
||||
|
||||
#### Биография
|
||||
Закончил МГТУ им.Н.Э.Баумана по специальности «Баллистика и аэродинамика». В 2018 году защитил диссертацию на соискание ученой степени кандидата технических наук по специальности «Аэродинамика и процессы теплообмена летательных аппаратов». В настоящее время является заведующим лаборатории цифрового моделирования технических систем Института системного программирования им. В.П. Иванникова РАН.
|
||||
|
||||
#### Направление исследований
|
||||
Общая тема исследований сосредоточена на решении задач механики сплошной среды, включая разработку программ и библиотек для моделирования течений жидкостей и газов, цифровое моделирование актуальных задач промышленности. В рамках данного направления можно выделить две основные тематики:
|
||||
1. Разработка и реализация методов и подходов для численного моделирования задач механики сплошной среды с применением свободного программного обеспечения и программирования.
|
||||
2. Численное моделирование и решение задач аэродинамики струйных и отрывных течений, вычислительной аэродинамики и аэроакустики, расчет турбин и пропеллеров, размыва донной поверхности и др.
|
||||
|
||||
#### Требования к студентам
|
||||
Кандидату необходимы знания и навыки в численных методах, аэрогазодинамике, программировании. При этом программирование выполняет роль прикладного инструмента, позволяющего реализовать новые модели и алгоритмы на основе выбранного открытого программного обеспечения. В качестве основного стека программ с открытым исходным кодом используются: OpenFOAM, Paraview, Salome.
|
5
Epikhin[info].md
Normal file
@ -0,0 +1,5 @@
|
||||
**ИСП РАН**
|
||||
|
||||
Механика сплошной среды, разработка программ и библиотек для моделирования течений жидкостей и газов, цифровое моделирование актуальных задач промышленности.
|
||||
|
||||
Ключевые слова: *Механика сплошных сред, Открытое ПО, OpenFOAM, Paraview, Salome.*
|
20
Kuznetsov.md
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
content_type: magprog_mentor
|
||||
name: Михаил Кузнецов
|
||||
id: Kuznetsov
|
||||
image: images/mentors/Kuznetsov.jpg
|
||||
language: ru
|
||||
---
|
||||
#### Организация
|
||||
ИЯИ РАН
|
||||
|
||||
#### Биография
|
||||
Выпускник магистратуры ЯрГУ (2010), аспирантуры МФТИ (2014), кандидат физ.-мат. наук (2017), сотрудник ИЯИ РАН (2010-н.в.), постдок Свободного университета Брюсселя (2019-2022), преподаватель кафедры фундаментальных взаимодействий и космологии ЛФИ МФТИ (2022-н.в.), член международной коллаборации Telescope Array (2016-н.в.)
|
||||
|
||||
Научные интересы связаны с астрофизикой частиц и физикой космических лучей, включая непрямой поиск темной материи, разработку и применение новых методов обработки экспериментальных данных в астрофизике, в т.ч. методов машинного обучения. В настоящее время основное направление работы - исследование массового состава и анизотропии космических лучей высоких и сверхвысоких энергий, поиск их источников. Публикации: https://inspirehep.net/authors/1713002
|
||||
|
||||
#### Направление исследований
|
||||
Астрофизика частиц: обработка экспериментальных данных, численное моделирование физических процессов, проверка теоретических моделей.
|
||||
|
||||
#### Требования к студентам
|
||||
Знание одного, лучше двух языков программирования
|
5
Kuznetsov[info].md
Normal file
@ -0,0 +1,5 @@
|
||||
**ИЯИ РАН**
|
||||
|
||||
Астрофизика частиц: обработка экспериментальных данных, численное моделирование физических процессов, проверка теоретических моделей.
|
||||
|
||||
Ключевые слова: *Астрофизика частиц, Python.*
|
@ -35,7 +35,7 @@ dependencies {
|
||||
implementation("io.ktor:ktor-server-netty:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-http-redirect:$ktorVersion")
|
||||
implementation("io.ktor:ktor-server-forwarded-header:$ktorVersion")
|
||||
implementation("ch.qos.logback:logback-classic:1.2.11")
|
||||
implementation("ch.qos.logback:logback-classic:1.4.12")
|
||||
|
||||
testImplementation("io.ktor:ktor-server-tests:$ktorVersion")
|
||||
}
|
||||
@ -52,22 +52,23 @@ apiValidation{
|
||||
|
||||
val host = System.getenv("SPC_HOST")
|
||||
val user = System.getenv("SPC_USER")
|
||||
//val password = System.getenv("SPC_PASSWORD")
|
||||
val identityString = System.getenv("SPC_ID")
|
||||
val password = System.getenv("SPC_PASSWORD")
|
||||
val privateKey = System.getenv("SPC_ID")
|
||||
//val publicKey = System.getenv("SPC_PUBKEY")
|
||||
val serviceName = "sciprog-site"
|
||||
|
||||
if (host != null && user != null || identityString != null) {
|
||||
if (host != null && user != null || privateKey != null) {
|
||||
val uploadDistribution by tasks.creating {
|
||||
group = "distribution"
|
||||
dependsOn("installDist")
|
||||
doLast {
|
||||
JSch {
|
||||
addIdentity("spc-webmaster", identityString.encodeToByteArray(), null, null)
|
||||
addIdentity("webmaster", privateKey.encodeToByteArray(), null, null)
|
||||
}.useSession(host, user) {
|
||||
//stopping service during the upload
|
||||
execute("sudo systemctl stop $serviceName")
|
||||
uploadDirectory(buildDir.resolve("install/spc-site"), "/opt")
|
||||
//adding executable flag to the entry point
|
||||
//adding an executable flag to the entry point
|
||||
execute("sudo chmod +x /opt/spc-site/bin/spc-site")
|
||||
execute("sudo systemctl start $serviceName")
|
||||
}
|
||||
@ -78,7 +79,7 @@ if (host != null && user != null || identityString != null) {
|
||||
group = "distribution"
|
||||
doLast {
|
||||
JSch {
|
||||
addIdentity("spc-webmaster", identityString.encodeToByteArray(), null, null)
|
||||
addIdentity("webmaster", privateKey.encodeToByteArray(), null, null)
|
||||
}.useSession(host, user) {
|
||||
execute("sudo systemctl restart $serviceName")
|
||||
}
|
||||
|
101
data/bmk/assets/css/fontawesome-all.min.css
vendored
Before Width: | Height: | Size: 20 KiB |
@ -1,18 +0,0 @@
|
||||
/*
|
||||
Stellar by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
/* Header */
|
||||
|
||||
body.is-preload #header.alt > * {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
body.is-preload #header.alt .logo {
|
||||
-moz-transform: none;
|
||||
-webkit-transform: none;
|
||||
-ms-transform: none;
|
||||
transform: none;
|
||||
}
|
2
data/bmk/assets/js/breakpoints.min.js
vendored
@ -1,2 +0,0 @@
|
||||
/* breakpoints.js v1.0 | @ajlkn | MIT licensed */
|
||||
var breakpoints=function(){"use strict";function e(e){t.init(e)}var t={list:null,media:{},events:[],init:function(e){t.list=e,window.addEventListener("resize",t.poll),window.addEventListener("orientationchange",t.poll),window.addEventListener("load",t.poll),window.addEventListener("fullscreenchange",t.poll)},active:function(e){var n,a,s,i,r,d,c;if(!(e in t.media)){if(">="==e.substr(0,2)?(a="gte",n=e.substr(2)):"<="==e.substr(0,2)?(a="lte",n=e.substr(2)):">"==e.substr(0,1)?(a="gt",n=e.substr(1)):"<"==e.substr(0,1)?(a="lt",n=e.substr(1)):"!"==e.substr(0,1)?(a="not",n=e.substr(1)):(a="eq",n=e),n&&n in t.list)if(i=t.list[n],Array.isArray(i)){if(r=parseInt(i[0]),d=parseInt(i[1]),isNaN(r)){if(isNaN(d))return;c=i[1].substr(String(d).length)}else c=i[0].substr(String(r).length);if(isNaN(r))switch(a){case"gte":s="screen";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: -1px)";break;case"not":s="screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (max-width: "+d+c+")"}else if(isNaN(d))switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen";break;case"gt":s="screen and (max-width: -1px)";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+")";break;default:s="screen and (min-width: "+r+c+")"}else switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+"), screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (min-width: "+r+c+") and (max-width: "+d+c+")"}}else s="("==i.charAt(0)?"screen and "+i:i;t.media[e]=!!s&&s}return t.media[e]!==!1&&window.matchMedia(t.media[e]).matches},on:function(e,n){t.events.push({query:e,handler:n,state:!1}),t.active(e)&&n()},poll:function(){var e,n;for(e=0;e<t.events.length;e++)n=t.events[e],t.active(n.query)?n.state||(n.state=!0,n.handler()):n.state&&(n.state=!1)}};return e._=t,e.on=function(e,n){t.on(e,n)},e.active=function(e){return t.active(e)},e}();!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.breakpoints=t()}(this,function(){return breakpoints});
|
2
data/bmk/assets/js/browser.min.js
vendored
@ -1,2 +0,0 @@
|
||||
/* browser.js v1.0.1 | @ajlkn | MIT licensed */
|
||||
var browser=function(){"use strict";var t={name:null,version:null,os:null,osVersion:null,touch:null,mobile:null,_canUse:null,canUse:function(e){t._canUse||(t._canUse=document.createElement("div"));var n=t._canUse.style,r=e.charAt(0).toUpperCase()+e.slice(1);return e in n||"Moz"+r in n||"Webkit"+r in n||"O"+r in n||"ms"+r in n},init:function(){for(var e=navigator.userAgent,n="other",r=0,i=[["firefox",/Firefox\/([0-9\.]+)/],["bb",/BlackBerry.+Version\/([0-9\.]+)/],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/],["opera",/OPR\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)/],["edge",/Edge\/([0-9\.]+)/],["safari",/Version\/([0-9\.]+).+Safari/],["chrome",/Chrome\/([0-9\.]+)/],["ie",/MSIE ([0-9]+)/],["ie",/Trident\/.+rv:([0-9]+)/]],o=0;o<i.length;o++)if(e.match(i[o][1])){n=i[o][0],r=parseFloat(RegExp.$1);break}for(t.name=n,t.version=r,n="other",i=[["ios",/([0-9_]+) like Mac OS X/,function(e){return e.replace("_",".").replace("_","")}],["ios",/CPU like Mac OS X/,function(e){return 0}],["wp",/Windows Phone ([0-9\.]+)/,null],["android",/Android ([0-9\.]+)/,null],["mac",/Macintosh.+Mac OS X ([0-9_]+)/,function(e){return e.replace("_",".").replace("_","")}],["windows",/Windows NT ([0-9\.]+)/,null],["bb",/BlackBerry.+Version\/([0-9\.]+)/,null],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/,null],["linux",/Linux/,null],["bsd",/BSD/,null],["unix",/X11/,null]],o=r=0;o<i.length;o++)if(e.match(i[o][1])){n=i[o][0],r=parseFloat(i[o][2]?i[o][2](RegExp.$1):RegExp.$1);break}"mac"==n&&"ontouchstart"in window&&(1024==screen.width&&1366==screen.height||834==screen.width&&1112==screen.height||810==screen.width&&1080==screen.height||768==screen.width&&1024==screen.height)&&(n="ios"),t.os=n,t.osVersion=r,t.touch="wp"==t.os?0<navigator.msMaxTouchPoints:!!("ontouchstart"in window),t.mobile="wp"==t.os||"android"==t.os||"ios"==t.os||"bb"==t.os}};return t.init(),t}();!function(e,n){"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?module.exports=n():e.browser=n()}(this,function(){return browser});
|
2
data/bmk/assets/js/jquery.min.js
vendored
2
data/bmk/assets/js/jquery.scrollex.min.js
vendored
@ -1,2 +0,0 @@
|
||||
/* jquery.scrollex v0.2.1 | (c) @ajlkn | github.com/ajlkn/jquery.scrollex | MIT licensed */
|
||||
!function(t){function e(t,e,n){return"string"==typeof t&&("%"==t.slice(-1)?t=parseInt(t.substring(0,t.length-1))/100*e:"vh"==t.slice(-2)?t=parseInt(t.substring(0,t.length-2))/100*n:"px"==t.slice(-2)&&(t=parseInt(t.substring(0,t.length-2)))),t}var n=t(window),i=1,o={};n.on("scroll",function(){var e=n.scrollTop();t.map(o,function(t){window.clearTimeout(t.timeoutId),t.timeoutId=window.setTimeout(function(){t.handler(e)},t.options.delay)})}).on("load",function(){n.trigger("scroll")}),jQuery.fn.scrollex=function(l){var s=t(this);if(0==this.length)return s;if(this.length>1){for(var r=0;r<this.length;r++)t(this[r]).scrollex(l);return s}if(s.data("_scrollexId"))return s;var a,u,h,c,p;switch(a=i++,u=jQuery.extend({top:0,bottom:0,delay:0,mode:"default",enter:null,leave:null,initialize:null,terminate:null,scroll:null},l),u.mode){case"top":h=function(t,e,n,i,o){return t>=i&&o>=t};break;case"bottom":h=function(t,e,n,i,o){return n>=i&&o>=n};break;case"middle":h=function(t,e,n,i,o){return e>=i&&o>=e};break;case"top-only":h=function(t,e,n,i,o){return i>=t&&n>=i};break;case"bottom-only":h=function(t,e,n,i,o){return n>=o&&o>=t};break;default:case"default":h=function(t,e,n,i,o){return n>=i&&o>=t}}return c=function(t){var i,o,l,s,r,a,u=this.state,h=!1,c=this.$element.offset();i=n.height(),o=t+i/2,l=t+i,s=this.$element.outerHeight(),r=c.top+e(this.options.top,s,i),a=c.top+s-e(this.options.bottom,s,i),h=this.test(t,o,l,r,a),h!=u&&(this.state=h,h?this.options.enter&&this.options.enter.apply(this.element):this.options.leave&&this.options.leave.apply(this.element)),this.options.scroll&&this.options.scroll.apply(this.element,[(o-r)/(a-r)])},p={id:a,options:u,test:h,handler:c,state:null,element:this,$element:s,timeoutId:null},o[a]=p,s.data("_scrollexId",p.id),p.options.initialize&&p.options.initialize.apply(this),s},jQuery.fn.unscrollex=function(){var e=t(this);if(0==this.length)return e;if(this.length>1){for(var n=0;n<this.length;n++)t(this[n]).unscrollex();return e}var i,l;return(i=e.data("_scrollexId"))?(l=o[i],window.clearTimeout(l.timeoutId),delete o[i],e.removeData("_scrollexId"),l.options.terminate&&l.options.terminate.apply(this),e):e}}(jQuery);
|
2
data/bmk/assets/js/jquery.scrolly.min.js
vendored
@ -1,2 +0,0 @@
|
||||
/* jquery.scrolly v1.0.0-dev | (c) @ajlkn | MIT licensed */
|
||||
(function(e){function u(s,o){var u,a,f;if((u=e(s))[t]==0)return n;a=u[i]()[r];switch(o.anchor){case"middle":f=a-(e(window).height()-u.outerHeight())/2;break;default:case r:f=Math.max(a,0)}return typeof o[i]=="function"?f-=o[i]():f-=o[i],f}var t="length",n=null,r="top",i="offset",s="click.scrolly",o=e(window);e.fn.scrolly=function(i){var o,a,f,l,c=e(this);if(this[t]==0)return c;if(this[t]>1){for(o=0;o<this[t];o++)e(this[o]).scrolly(i);return c}l=n,f=c.attr("href");if(f.charAt(0)!="#"||f[t]<2)return c;a=jQuery.extend({anchor:r,easing:"swing",offset:0,parent:e("body,html"),pollOnce:!1,speed:1e3},i),a.pollOnce&&(l=u(f,a)),c.off(s).on(s,function(e){var t=l!==n?l:u(f,a);t!==n&&(e.preventDefault(),a.parent.stop().animate({scrollTop:t},a.speed,a.easing))})}})(jQuery);
|
@ -1,123 +0,0 @@
|
||||
/*
|
||||
Stellar by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
|
||||
var $window = $(window),
|
||||
$body = $('body'),
|
||||
$main = $('#main');
|
||||
|
||||
// Breakpoints.
|
||||
breakpoints({
|
||||
xlarge: [ '1281px', '1680px' ],
|
||||
large: [ '981px', '1280px' ],
|
||||
medium: [ '737px', '980px' ],
|
||||
small: [ '481px', '736px' ],
|
||||
xsmall: [ '361px', '480px' ],
|
||||
xxsmall: [ null, '360px' ]
|
||||
});
|
||||
|
||||
// Play initial animations on page load.
|
||||
$window.on('load', function() {
|
||||
window.setTimeout(function() {
|
||||
$body.removeClass('is-preload');
|
||||
}, 100);
|
||||
});
|
||||
|
||||
// Nav.
|
||||
var $nav = $('#nav');
|
||||
|
||||
if ($nav.length > 0) {
|
||||
|
||||
// Shrink effect.
|
||||
$main
|
||||
.scrollex({
|
||||
mode: 'top',
|
||||
enter: function() {
|
||||
$nav.addClass('alt');
|
||||
},
|
||||
leave: function() {
|
||||
$nav.removeClass('alt');
|
||||
},
|
||||
});
|
||||
|
||||
// Links.
|
||||
var $nav_a = $nav.find('a');
|
||||
|
||||
$nav_a
|
||||
.scrolly({
|
||||
speed: 1000,
|
||||
offset: function() { return $nav.height(); }
|
||||
})
|
||||
.on('click', function() {
|
||||
|
||||
var $this = $(this);
|
||||
|
||||
// External link? Bail.
|
||||
if ($this.attr('href').charAt(0) != '#')
|
||||
return;
|
||||
|
||||
// Deactivate all links.
|
||||
$nav_a
|
||||
.removeClass('active')
|
||||
.removeClass('active-locked');
|
||||
|
||||
// Activate link *and* lock it (so Scrollex doesn't try to activate other links as we're scrolling to this one's section).
|
||||
$this
|
||||
.addClass('active')
|
||||
.addClass('active-locked');
|
||||
|
||||
})
|
||||
.each(function() {
|
||||
|
||||
var $this = $(this),
|
||||
id = $this.attr('href'),
|
||||
$section = $(id);
|
||||
|
||||
// No section for this link? Bail.
|
||||
if ($section.length < 1)
|
||||
return;
|
||||
|
||||
// Scrollex.
|
||||
$section.scrollex({
|
||||
mode: 'middle',
|
||||
initialize: function() {
|
||||
|
||||
// Deactivate section.
|
||||
if (browser.canUse('transition'))
|
||||
$section.addClass('inactive');
|
||||
|
||||
},
|
||||
enter: function() {
|
||||
|
||||
// Activate section.
|
||||
$section.removeClass('inactive');
|
||||
|
||||
// No locked links? Deactivate all links and activate this section's one.
|
||||
if ($nav_a.filter('.active-locked').length == 0) {
|
||||
|
||||
$nav_a.removeClass('active');
|
||||
$this.addClass('active');
|
||||
|
||||
}
|
||||
|
||||
// Otherwise, if this section's link is the one that's locked, unlock it.
|
||||
else if ($this.hasClass('active-locked'))
|
||||
$this.removeClass('active-locked');
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Scrolly.
|
||||
$('.scrolly').scrolly({
|
||||
speed: 1000
|
||||
});
|
||||
|
||||
})(jQuery);
|
@ -1,587 +0,0 @@
|
||||
(function($) {
|
||||
|
||||
/**
|
||||
* Generate an indented list of links from a nav. Meant for use with panel().
|
||||
* @return {jQuery} jQuery object.
|
||||
*/
|
||||
$.fn.navList = function() {
|
||||
|
||||
var $this = $(this);
|
||||
$a = $this.find('a'),
|
||||
b = [];
|
||||
|
||||
$a.each(function() {
|
||||
|
||||
var $this = $(this),
|
||||
indent = Math.max(0, $this.parents('li').length - 1),
|
||||
href = $this.attr('href'),
|
||||
target = $this.attr('target');
|
||||
|
||||
b.push(
|
||||
'<a ' +
|
||||
'class="link depth-' + indent + '"' +
|
||||
( (typeof target !== 'undefined' && target != '') ? ' target="' + target + '"' : '') +
|
||||
( (typeof href !== 'undefined' && href != '') ? ' href="' + href + '"' : '') +
|
||||
'>' +
|
||||
'<span class="indent-' + indent + '"></span>' +
|
||||
$this.text() +
|
||||
'</a>'
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
return b.join('');
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Panel-ify an element.
|
||||
* @param {object} userConfig User config.
|
||||
* @return {jQuery} jQuery object.
|
||||
*/
|
||||
$.fn.panel = function(userConfig) {
|
||||
|
||||
// No elements?
|
||||
if (this.length == 0)
|
||||
return $this;
|
||||
|
||||
// Multiple elements?
|
||||
if (this.length > 1) {
|
||||
|
||||
for (var i=0; i < this.length; i++)
|
||||
$(this[i]).panel(userConfig);
|
||||
|
||||
return $this;
|
||||
|
||||
}
|
||||
|
||||
// Vars.
|
||||
var $this = $(this),
|
||||
$body = $('body'),
|
||||
$window = $(window),
|
||||
id = $this.attr('id'),
|
||||
config;
|
||||
|
||||
// Config.
|
||||
config = $.extend({
|
||||
|
||||
// Delay.
|
||||
delay: 0,
|
||||
|
||||
// Hide panel on link click.
|
||||
hideOnClick: false,
|
||||
|
||||
// Hide panel on escape keypress.
|
||||
hideOnEscape: false,
|
||||
|
||||
// Hide panel on swipe.
|
||||
hideOnSwipe: false,
|
||||
|
||||
// Reset scroll position on hide.
|
||||
resetScroll: false,
|
||||
|
||||
// Reset forms on hide.
|
||||
resetForms: false,
|
||||
|
||||
// Side of viewport the panel will appear.
|
||||
side: null,
|
||||
|
||||
// Target element for "class".
|
||||
target: $this,
|
||||
|
||||
// Class to toggle.
|
||||
visibleClass: 'visible'
|
||||
|
||||
}, userConfig);
|
||||
|
||||
// Expand "target" if it's not a jQuery object already.
|
||||
if (typeof config.target != 'jQuery')
|
||||
config.target = $(config.target);
|
||||
|
||||
// Panel.
|
||||
|
||||
// Methods.
|
||||
$this._hide = function(event) {
|
||||
|
||||
// Already hidden? Bail.
|
||||
if (!config.target.hasClass(config.visibleClass))
|
||||
return;
|
||||
|
||||
// If an event was provided, cancel it.
|
||||
if (event) {
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
}
|
||||
|
||||
// Hide.
|
||||
config.target.removeClass(config.visibleClass);
|
||||
|
||||
// Post-hide stuff.
|
||||
window.setTimeout(function() {
|
||||
|
||||
// Reset scroll position.
|
||||
if (config.resetScroll)
|
||||
$this.scrollTop(0);
|
||||
|
||||
// Reset forms.
|
||||
if (config.resetForms)
|
||||
$this.find('form').each(function() {
|
||||
this.reset();
|
||||
});
|
||||
|
||||
}, config.delay);
|
||||
|
||||
};
|
||||
|
||||
// Vendor fixes.
|
||||
$this
|
||||
.css('-ms-overflow-style', '-ms-autohiding-scrollbar')
|
||||
.css('-webkit-overflow-scrolling', 'touch');
|
||||
|
||||
// Hide on click.
|
||||
if (config.hideOnClick) {
|
||||
|
||||
$this.find('a')
|
||||
.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)');
|
||||
|
||||
$this
|
||||
.on('click', 'a', function(event) {
|
||||
|
||||
var $a = $(this),
|
||||
href = $a.attr('href'),
|
||||
target = $a.attr('target');
|
||||
|
||||
if (!href || href == '#' || href == '' || href == '#' + id)
|
||||
return;
|
||||
|
||||
// Cancel original event.
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
// Hide panel.
|
||||
$this._hide();
|
||||
|
||||
// Redirect to href.
|
||||
window.setTimeout(function() {
|
||||
|
||||
if (target == '_blank')
|
||||
window.open(href);
|
||||
else
|
||||
window.location.href = href;
|
||||
|
||||
}, config.delay + 10);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Event: Touch stuff.
|
||||
$this.on('touchstart', function(event) {
|
||||
|
||||
$this.touchPosX = event.originalEvent.touches[0].pageX;
|
||||
$this.touchPosY = event.originalEvent.touches[0].pageY;
|
||||
|
||||
})
|
||||
|
||||
$this.on('touchmove', function(event) {
|
||||
|
||||
if ($this.touchPosX === null
|
||||
|| $this.touchPosY === null)
|
||||
return;
|
||||
|
||||
var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX,
|
||||
diffY = $this.touchPosY - event.originalEvent.touches[0].pageY,
|
||||
th = $this.outerHeight(),
|
||||
ts = ($this.get(0).scrollHeight - $this.scrollTop());
|
||||
|
||||
// Hide on swipe?
|
||||
if (config.hideOnSwipe) {
|
||||
|
||||
var result = false,
|
||||
boundary = 20,
|
||||
delta = 50;
|
||||
|
||||
switch (config.side) {
|
||||
|
||||
case 'left':
|
||||
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta);
|
||||
break;
|
||||
|
||||
case 'right':
|
||||
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta));
|
||||
break;
|
||||
|
||||
case 'top':
|
||||
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta);
|
||||
break;
|
||||
|
||||
case 'bottom':
|
||||
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
if (result) {
|
||||
|
||||
$this.touchPosX = null;
|
||||
$this.touchPosY = null;
|
||||
$this._hide();
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Prevent vertical scrolling past the top or bottom.
|
||||
if (($this.scrollTop() < 0 && diffY < 0)
|
||||
|| (ts > (th - 2) && ts < (th + 2) && diffY > 0)) {
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// Event: Prevent certain events inside the panel from bubbling.
|
||||
$this.on('click touchend touchstart touchmove', function(event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
// Event: Hide panel if a child anchor tag pointing to its ID is clicked.
|
||||
$this.on('click', 'a[href="#' + id + '"]', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
config.target.removeClass(config.visibleClass);
|
||||
|
||||
});
|
||||
|
||||
// Body.
|
||||
|
||||
// Event: Hide panel on body click/tap.
|
||||
$body.on('click touchend', function(event) {
|
||||
$this._hide(event);
|
||||
});
|
||||
|
||||
// Event: Toggle.
|
||||
$body.on('click', 'a[href="#' + id + '"]', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
config.target.toggleClass(config.visibleClass);
|
||||
|
||||
});
|
||||
|
||||
// Window.
|
||||
|
||||
// Event: Hide on ESC.
|
||||
if (config.hideOnEscape)
|
||||
$window.on('keydown', function(event) {
|
||||
|
||||
if (event.keyCode == 27)
|
||||
$this._hide(event);
|
||||
|
||||
});
|
||||
|
||||
return $this;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Apply "placeholder" attribute polyfill to one or more forms.
|
||||
* @return {jQuery} jQuery object.
|
||||
*/
|
||||
$.fn.placeholder = function() {
|
||||
|
||||
// Browser natively supports placeholders? Bail.
|
||||
if (typeof (document.createElement('input')).placeholder != 'undefined')
|
||||
return $(this);
|
||||
|
||||
// No elements?
|
||||
if (this.length == 0)
|
||||
return $this;
|
||||
|
||||
// Multiple elements?
|
||||
if (this.length > 1) {
|
||||
|
||||
for (var i=0; i < this.length; i++)
|
||||
$(this[i]).placeholder();
|
||||
|
||||
return $this;
|
||||
|
||||
}
|
||||
|
||||
// Vars.
|
||||
var $this = $(this);
|
||||
|
||||
// Text, TextArea.
|
||||
$this.find('input[type=text],textarea')
|
||||
.each(function() {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.val() == ''
|
||||
|| i.val() == i.attr('placeholder'))
|
||||
i
|
||||
.addClass('polyfill-placeholder')
|
||||
.val(i.attr('placeholder'));
|
||||
|
||||
})
|
||||
.on('blur', function() {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.attr('name').match(/-polyfill-field$/))
|
||||
return;
|
||||
|
||||
if (i.val() == '')
|
||||
i
|
||||
.addClass('polyfill-placeholder')
|
||||
.val(i.attr('placeholder'));
|
||||
|
||||
})
|
||||
.on('focus', function() {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.attr('name').match(/-polyfill-field$/))
|
||||
return;
|
||||
|
||||
if (i.val() == i.attr('placeholder'))
|
||||
i
|
||||
.removeClass('polyfill-placeholder')
|
||||
.val('');
|
||||
|
||||
});
|
||||
|
||||
// Password.
|
||||
$this.find('input[type=password]')
|
||||
.each(function() {
|
||||
|
||||
var i = $(this);
|
||||
var x = $(
|
||||
$('<div>')
|
||||
.append(i.clone())
|
||||
.remove()
|
||||
.html()
|
||||
.replace(/type="password"/i, 'type="text"')
|
||||
.replace(/type=password/i, 'type=text')
|
||||
);
|
||||
|
||||
if (i.attr('id') != '')
|
||||
x.attr('id', i.attr('id') + '-polyfill-field');
|
||||
|
||||
if (i.attr('name') != '')
|
||||
x.attr('name', i.attr('name') + '-polyfill-field');
|
||||
|
||||
x.addClass('polyfill-placeholder')
|
||||
.val(x.attr('placeholder')).insertAfter(i);
|
||||
|
||||
if (i.val() == '')
|
||||
i.hide();
|
||||
else
|
||||
x.hide();
|
||||
|
||||
i
|
||||
.on('blur', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
||||
|
||||
if (i.val() == '') {
|
||||
|
||||
i.hide();
|
||||
x.show();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
x
|
||||
.on('focus', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
|
||||
|
||||
x.hide();
|
||||
|
||||
i
|
||||
.show()
|
||||
.focus();
|
||||
|
||||
})
|
||||
.on('keypress', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
x.val('');
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// Events.
|
||||
$this
|
||||
.on('submit', function() {
|
||||
|
||||
$this.find('input[type=text],input[type=password],textarea')
|
||||
.each(function(event) {
|
||||
|
||||
var i = $(this);
|
||||
|
||||
if (i.attr('name').match(/-polyfill-field$/))
|
||||
i.attr('name', '');
|
||||
|
||||
if (i.val() == i.attr('placeholder')) {
|
||||
|
||||
i.removeClass('polyfill-placeholder');
|
||||
i.val('');
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
})
|
||||
.on('reset', function(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
$this.find('select')
|
||||
.val($('option:first').val());
|
||||
|
||||
$this.find('input,textarea')
|
||||
.each(function() {
|
||||
|
||||
var i = $(this),
|
||||
x;
|
||||
|
||||
i.removeClass('polyfill-placeholder');
|
||||
|
||||
switch (this.type) {
|
||||
|
||||
case 'submit':
|
||||
case 'reset':
|
||||
break;
|
||||
|
||||
case 'password':
|
||||
i.val(i.attr('defaultValue'));
|
||||
|
||||
x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
||||
|
||||
if (i.val() == '') {
|
||||
i.hide();
|
||||
x.show();
|
||||
}
|
||||
else {
|
||||
i.show();
|
||||
x.hide();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'checkbox':
|
||||
case 'radio':
|
||||
i.attr('checked', i.attr('defaultValue'));
|
||||
break;
|
||||
|
||||
case 'text':
|
||||
case 'textarea':
|
||||
i.val(i.attr('defaultValue'));
|
||||
|
||||
if (i.val() == '') {
|
||||
i.addClass('polyfill-placeholder');
|
||||
i.val(i.attr('placeholder'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
i.val(i.attr('defaultValue'));
|
||||
break;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
return $this;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Moves elements to/from the first positions of their respective parents.
|
||||
* @param {jQuery} $elements Elements (or selector) to move.
|
||||
* @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations.
|
||||
*/
|
||||
$.prioritize = function($elements, condition) {
|
||||
|
||||
var key = '__prioritize';
|
||||
|
||||
// Expand $elements if it's not already a jQuery object.
|
||||
if (typeof $elements != 'jQuery')
|
||||
$elements = $($elements);
|
||||
|
||||
// Step through elements.
|
||||
$elements.each(function() {
|
||||
|
||||
var $e = $(this), $p,
|
||||
$parent = $e.parent();
|
||||
|
||||
// No parent? Bail.
|
||||
if ($parent.length == 0)
|
||||
return;
|
||||
|
||||
// Not moved? Move it.
|
||||
if (!$e.data(key)) {
|
||||
|
||||
// Condition is false? Bail.
|
||||
if (!condition)
|
||||
return;
|
||||
|
||||
// Get placeholder (which will serve as our point of reference for when this element needs to move back).
|
||||
$p = $e.prev();
|
||||
|
||||
// Couldn't find anything? Means this element's already at the top, so bail.
|
||||
if ($p.length == 0)
|
||||
return;
|
||||
|
||||
// Move element to top of parent.
|
||||
$e.prependTo($parent);
|
||||
|
||||
// Mark element as moved.
|
||||
$e.data(key, $p);
|
||||
|
||||
}
|
||||
|
||||
// Moved already?
|
||||
else {
|
||||
|
||||
// Condition is true? Bail.
|
||||
if (condition)
|
||||
return;
|
||||
|
||||
$p = $e.data(key);
|
||||
|
||||
// Move element back to its original location (using our placeholder).
|
||||
$e.insertAfter($p);
|
||||
|
||||
// Unmark element as moved.
|
||||
$e.removeData(key);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
})(jQuery);
|
@ -1,51 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Basic */
|
||||
|
||||
// MSIE: Required for IEMobile.
|
||||
@-ms-viewport {
|
||||
width: device-width;
|
||||
}
|
||||
|
||||
// MSIE: Prevents scrollbar from overlapping content.
|
||||
body {
|
||||
-ms-overflow-style: scrollbar;
|
||||
}
|
||||
|
||||
// Ensures page width is always >=320px.
|
||||
@include breakpoint('<=xsmall') {
|
||||
html, body {
|
||||
min-width: 320px;
|
||||
}
|
||||
}
|
||||
|
||||
// Set box model to border-box.
|
||||
// Based on css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice
|
||||
html {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
*, *:before, *:after {
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: _palette(bg);
|
||||
@include vendor('background-image', (
|
||||
'url("images/overlay.png")',
|
||||
'linear-gradient(45deg, #{_palette(bg1)} 15%, #{_palette(bg2) 85%})',
|
||||
));
|
||||
|
||||
// Stops initial animations until page loads.
|
||||
&.is-preload {
|
||||
*, *:before, *:after {
|
||||
@include vendor('animation', 'none !important');
|
||||
@include vendor('transition', 'none !important');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,76 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
// Reset.
|
||||
// Based on meyerweb.com/eric/tools/css/reset (v2.0 | 20110126 | License: public domain)
|
||||
|
||||
html, body, div, span, applet, object,
|
||||
iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
|
||||
pre, a, abbr, acronym, address, big, cite,
|
||||
code, del, dfn, em, img, ins, kbd, q, s, samp,
|
||||
small, strike, strong, sub, sup, tt, var, b,
|
||||
u, i, center, dl, dt, dd, ol, ul, li, fieldset,
|
||||
form, label, legend, table, caption, tbody,
|
||||
tfoot, thead, tr, th, td, article, aside,
|
||||
canvas, details, embed, figure, figcaption,
|
||||
footer, header, hgroup, menu, nav, output, ruby,
|
||||
section, summary, time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: inherit;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
article, aside, details, figcaption, figure,
|
||||
footer, header, hgroup, menu, nav, section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
body {
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
list-style:none;
|
||||
}
|
||||
|
||||
blockquote, q {
|
||||
quotes: none;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
|
||||
mark {
|
||||
background-color: transparent;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
input::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
input, select, textarea {
|
||||
-moz-appearance: none;
|
||||
-webkit-appearance: none;
|
||||
-ms-appearance: none;
|
||||
appearance: none;
|
||||
}
|
@ -1,216 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Type */
|
||||
|
||||
body {
|
||||
background-color: _palette(bg);
|
||||
color: _palette(fg);
|
||||
}
|
||||
|
||||
body, input, select, textarea {
|
||||
font-family: _font(family);
|
||||
font-size: 17pt;
|
||||
font-weight: _font(weight);
|
||||
line-height: 1.65;
|
||||
|
||||
@include breakpoint('<=xlarge') {
|
||||
font-size: 14pt;
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
@include breakpoint('<=xxsmall') {
|
||||
font-size: 11pt;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
@include vendor('transition', (
|
||||
'color #{_duration(transition)} ease',
|
||||
'border-bottom #{_duration(transition)} ease'
|
||||
));
|
||||
text-decoration: none;
|
||||
border-bottom: dotted 1px;
|
||||
color: inherit;
|
||||
|
||||
&:hover {
|
||||
border-bottom-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
strong, b {
|
||||
font-weight: _font(weight-bold);
|
||||
}
|
||||
|
||||
em, i {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
|
||||
&.content {
|
||||
-moz-columns: 20em 2;
|
||||
-webkit-columns: 20em 2;
|
||||
-ms-columns: 20em 2;
|
||||
columns: 20em 2;
|
||||
-moz-column-gap: _size(element-margin);
|
||||
-webkit-column-gap: _size(element-margin);
|
||||
-ms-column-gap: _size(element-margin);
|
||||
column-gap: _size(element-margin);
|
||||
text-align: justify;
|
||||
}
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-weight: _font(weight);
|
||||
line-height: 1.5;
|
||||
margin: 0 0 (_size(element-margin) * 0.35) 0;
|
||||
letter-spacing: _font(letter-spacing);
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.5em;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.25em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 0.7em;
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
}
|
||||
}
|
||||
|
||||
sub {
|
||||
font-size: 0.8em;
|
||||
position: relative;
|
||||
top: 0.5em;
|
||||
}
|
||||
|
||||
sup {
|
||||
font-size: 0.8em;
|
||||
position: relative;
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: solid 4px;
|
||||
font-style: italic;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
padding: (_size(element-margin) / 4) 0 (_size(element-margin) / 4) _size(element-margin);
|
||||
}
|
||||
|
||||
code {
|
||||
border-radius: _size(border-radius);
|
||||
border: solid 1px;
|
||||
font-family: _font(family-fixed);
|
||||
font-size: 0.9em;
|
||||
margin: 0 0.25em;
|
||||
padding: 0.25em 0.65em;
|
||||
}
|
||||
|
||||
pre {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
font-family: _font(family-fixed);
|
||||
font-size: 0.9em;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
|
||||
code {
|
||||
display: block;
|
||||
line-height: 1.75;
|
||||
padding: 1em 1.5em;
|
||||
overflow-x: auto;
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
border-bottom: solid 1px;
|
||||
margin: _size(element-margin) 0;
|
||||
|
||||
&.major {
|
||||
margin: (_size(element-margin) * 1.5) 0;
|
||||
}
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.align-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.align-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
@mixin color-typography($p: null) {
|
||||
@if $p != null {
|
||||
background-color: _palette($p, bg);
|
||||
color: _palette($p, fg);
|
||||
}
|
||||
|
||||
input, select, textarea {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
a {
|
||||
&:hover {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
}
|
||||
|
||||
strong, b {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left-color: _palette($p, border);
|
||||
}
|
||||
|
||||
code {
|
||||
background: _palette($p, border-bg);
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
|
||||
hr {
|
||||
border-bottom-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
|
||||
@include color-typography;
|
@ -1,101 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Actions */
|
||||
|
||||
ul.actions {
|
||||
@include vendor('display', 'flex');
|
||||
cursor: default;
|
||||
list-style: none;
|
||||
margin-left: (_size(element-margin) * -0.5);
|
||||
padding-left: 0;
|
||||
|
||||
li {
|
||||
padding: 0 0 0 (_size(element-margin) * 0.5);
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
&.special {
|
||||
@include vendor('justify-content', 'center');
|
||||
width: 100%;
|
||||
margin-left: 0;
|
||||
|
||||
li {
|
||||
&:first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.stacked {
|
||||
@include vendor('flex-direction', 'column');
|
||||
margin-left: 0;
|
||||
|
||||
li {
|
||||
padding: (_size(element-margin) * 0.65) 0 0 0;
|
||||
|
||||
&:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.fit {
|
||||
width: calc(100% + #{_size(element-margin) * 0.5});
|
||||
|
||||
li {
|
||||
@include vendor('flex-grow', '1');
|
||||
@include vendor('flex-shrink', '1');
|
||||
width: 100%;
|
||||
|
||||
> * {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&.stacked {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
&:not(.fixed) {
|
||||
@include vendor('flex-direction', 'column');
|
||||
margin-left: 0;
|
||||
width: 100% !important;
|
||||
|
||||
li {
|
||||
@include vendor('flex-grow', '1');
|
||||
@include vendor('flex-shrink', '1');
|
||||
padding: (_size(element-margin) * 0.5) 0 0 0;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
|
||||
> * {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
button,
|
||||
.button {
|
||||
width: 100%;
|
||||
|
||||
&.icon {
|
||||
&:before {
|
||||
margin-left: -0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Box */
|
||||
|
||||
.box {
|
||||
border-radius: _size(border-radius);
|
||||
border: solid _size(border-width);
|
||||
margin-bottom: _size(element-margin);
|
||||
padding: 1.5em;
|
||||
|
||||
> :last-child,
|
||||
> :last-child > :last-child,
|
||||
> :last-child > :last-child > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
&.alt {
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-box($p: null) {
|
||||
.box {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
|
||||
@include color-box;
|
@ -1,109 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Button */
|
||||
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
button,
|
||||
.button {
|
||||
@include vendor('appearance', 'none');
|
||||
@include vendor('transition', (
|
||||
'background-color #{_duration(transition)} ease-in-out',
|
||||
'color #{_duration(transition)} ease-in-out'
|
||||
));
|
||||
border-radius: _size(border-radius);
|
||||
border: 0;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-weight: _font(weight);
|
||||
height: 2.75em;
|
||||
line-height: 2.75em;
|
||||
min-width: 9.25em;
|
||||
padding: 0 1.5em;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
|
||||
&.icon {
|
||||
padding-left: 1.35em;
|
||||
|
||||
&:before {
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
&.fit {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&.small {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
&.large {
|
||||
font-size: 1.35em;
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&:disabled {
|
||||
@include vendor('pointer-events', 'none');
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
min-width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-button($p: null) {
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
button,
|
||||
.button {
|
||||
background-color: transparent;
|
||||
box-shadow: inset 0 0 0 1px _palette($p, border);
|
||||
color: _palette($p, fg-bold) !important;
|
||||
|
||||
&:hover {
|
||||
background-color: _palette($p, border-bg);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: _palette($p, border2-bg);
|
||||
}
|
||||
|
||||
&.icon {
|
||||
&:before {
|
||||
color: _palette($p, fg-light);
|
||||
}
|
||||
}
|
||||
|
||||
&.primary {
|
||||
background-color: _palette(accent);
|
||||
color: _palette(invert, bg) !important;
|
||||
box-shadow: none;
|
||||
|
||||
&:hover {
|
||||
background-color: lighten(_palette(accent), 3);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: darken(_palette(accent), 3);
|
||||
}
|
||||
|
||||
&.icon {
|
||||
&:before {
|
||||
color: _palette(invert, bg) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-button;
|
@ -1,60 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Features */
|
||||
|
||||
.features {
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-wrap', 'wrap');
|
||||
@include vendor('justify-content', 'center');
|
||||
width: calc(100% + #{_size(element-margin)});
|
||||
margin: 0 0 (_size(element-margin) * 1.5) (_size(element-margin) * -1);
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
|
||||
li {
|
||||
width: calc(#{(100% / 3)} - #{_size(element-margin)});
|
||||
margin-left: _size(element-margin);
|
||||
margin-top: (_size(element-margin) * 1.5);
|
||||
padding: 0;
|
||||
|
||||
&:nth-child(1),
|
||||
&:nth-child(2),
|
||||
&:nth-child(3) {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
> :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
li {
|
||||
width: calc(#{(100% / 2)} - #{_size(element-margin)});
|
||||
|
||||
&:nth-child(3) {
|
||||
margin-top: (_size(element-margin) * 1.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
width: 100%;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
|
||||
li {
|
||||
width: 100%;
|
||||
margin-left: 0;
|
||||
margin-top: _size(element-margin);
|
||||
|
||||
&:nth-child(2),
|
||||
&:nth-child(3) {
|
||||
margin-top: _size(element-margin);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,221 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Form */
|
||||
|
||||
form {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
font-size: 0.9em;
|
||||
font-weight: _font(weight-bold);
|
||||
margin: 0 0 (_size(element-margin) * 0.5) 0;
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
select,
|
||||
textarea {
|
||||
@include vendor('appearance', 'none');
|
||||
border-radius: _size(border-radius);
|
||||
border: solid 1px;
|
||||
color: inherit;
|
||||
display: block;
|
||||
outline: 0;
|
||||
padding: 0 1em;
|
||||
text-decoration: none;
|
||||
width: 100%;
|
||||
|
||||
&:invalid {
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
select {
|
||||
background-size: 1.25rem;
|
||||
background-repeat: no-repeat;
|
||||
background-position: calc(100% - 1rem) center;
|
||||
height: _size(element-height);
|
||||
padding-right: _size(element-height);
|
||||
text-overflow: ellipsis;
|
||||
|
||||
&:focus {
|
||||
&::-ms-value {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
&::-ms-expand {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
select {
|
||||
height: _size(element-height);
|
||||
}
|
||||
|
||||
textarea {
|
||||
padding: 0.75em 1em;
|
||||
}
|
||||
|
||||
input[type="checkbox"],
|
||||
input[type="radio"], {
|
||||
@include vendor('appearance', 'none');
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: -2em;
|
||||
opacity: 0;
|
||||
width: 1em;
|
||||
z-index: -1;
|
||||
|
||||
& + label {
|
||||
@include icon(false, solid);
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: 1em;
|
||||
font-weight: _font(weight);
|
||||
padding-left: (_size(element-height) * 0.6) + 0.75em;
|
||||
padding-right: 0.75em;
|
||||
position: relative;
|
||||
|
||||
&:before {
|
||||
border-radius: _size(border-radius);
|
||||
border: solid 1px;
|
||||
content: '';
|
||||
display: inline-block;
|
||||
font-size: 0.8em;
|
||||
height: (_size(element-height) * 0.75);
|
||||
left: 0;
|
||||
line-height: (_size(element-height) * 0.75);
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
top: 0;
|
||||
width: (_size(element-height) * 0.75);
|
||||
}
|
||||
}
|
||||
|
||||
&:checked + label {
|
||||
&:before {
|
||||
content: '\f00c';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
& + label {
|
||||
&:before {
|
||||
border-radius: _size(border-radius);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
input[type="radio"] {
|
||||
& + label {
|
||||
&:before {
|
||||
border-radius: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
:-moz-placeholder {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
::-moz-placeholder {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
:-ms-input-placeholder {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
@mixin color-form($p: null) {
|
||||
label {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
select,
|
||||
textarea {
|
||||
background-color: _palette($p, border-bg);
|
||||
border-color: _palette($p, border);
|
||||
|
||||
&:focus {
|
||||
border-color: _palette(accent);
|
||||
box-shadow: 0 0 0 1px _palette(accent);
|
||||
}
|
||||
}
|
||||
|
||||
select {
|
||||
background-image: svg-url("<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'><path d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='#{_palette($p, border)}' /></svg>");
|
||||
|
||||
option {
|
||||
color: _palette($p, fg-bold);
|
||||
background: _palette($p, bg);
|
||||
}
|
||||
}
|
||||
|
||||
input[type="checkbox"],
|
||||
input[type="radio"], {
|
||||
& + label {
|
||||
color: _palette($p, fg);
|
||||
|
||||
&:before {
|
||||
background: _palette($p, border-bg);
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
|
||||
&:checked + label {
|
||||
&:before {
|
||||
background-color: _palette($p, fg-bold);
|
||||
border-color: _palette($p, fg-bold);
|
||||
color: _palette($p, bg);
|
||||
}
|
||||
}
|
||||
|
||||
&:focus + label {
|
||||
&:before {
|
||||
border-color: _palette(accent);
|
||||
box-shadow: 0 0 0 1px _palette(accent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::-webkit-input-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
|
||||
:-moz-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
|
||||
::-moz-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
|
||||
:-ms-input-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
|
||||
.formerize-placeholder {
|
||||
color: _palette($p, fg-light) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@include color-form;
|
@ -1,146 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Icon */
|
||||
|
||||
.icon {
|
||||
@include icon;
|
||||
@include vendor('transition', (
|
||||
'background-color #{_duration(transition)} ease-in-out',
|
||||
'color #{_duration(transition)} ease-in-out'
|
||||
));
|
||||
border-bottom: none;
|
||||
position: relative;
|
||||
|
||||
> .label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&:before {
|
||||
line-height: solid;
|
||||
}
|
||||
|
||||
&.solid {
|
||||
&:before {
|
||||
font-weight: 900;
|
||||
}
|
||||
}
|
||||
|
||||
&.brands {
|
||||
&:before {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
}
|
||||
}
|
||||
|
||||
&.major {
|
||||
border: solid 1px;
|
||||
display: inline-block;
|
||||
border-radius: 100%;
|
||||
padding: 0.65em;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
cursor: default;
|
||||
|
||||
&:before {
|
||||
display: inline-block;
|
||||
font-size: 6.25rem;
|
||||
width: 2.25em;
|
||||
height: 2.25em;
|
||||
line-height: 2.2em;
|
||||
border-radius: 100%;
|
||||
border: solid 1px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
&.alt {
|
||||
display: inline-block;
|
||||
border: solid 1px;
|
||||
border-radius: 100%;
|
||||
|
||||
&:before {
|
||||
display: block;
|
||||
font-size: 1.25em;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
text-align: center;
|
||||
line-height: 2em;
|
||||
}
|
||||
}
|
||||
|
||||
&.style1 {
|
||||
color: _palette(accent1);
|
||||
}
|
||||
|
||||
&.style2 {
|
||||
color: _palette(accent2);
|
||||
}
|
||||
|
||||
&.style3 {
|
||||
color: _palette(accent3);
|
||||
}
|
||||
|
||||
&.style4 {
|
||||
color: _palette(accent4);
|
||||
}
|
||||
|
||||
&.style5 {
|
||||
color: _palette(accent5);
|
||||
}
|
||||
|
||||
@include breakpoint('<=xlarge') {
|
||||
&.major {
|
||||
&:before {
|
||||
font-size: 5.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
&.major {
|
||||
&:before {
|
||||
font-size: 4.75rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
&.major {
|
||||
margin: 0 0 (_size(element-margin) * 0.75) 0;
|
||||
padding: 0.35em;
|
||||
|
||||
&:before {
|
||||
font-size: 3.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-icon($p: null) {
|
||||
.icon {
|
||||
&.major {
|
||||
border-color: _palette($p, border);
|
||||
|
||||
&:before {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
|
||||
&.alt {
|
||||
border-color: _palette($p, border);
|
||||
color: _palette($p, fg-bold);
|
||||
|
||||
&:hover {
|
||||
background-color: _palette($p, border-bg);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: _palette($p, border2-bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-icon;
|
@ -1,22 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Icons */
|
||||
|
||||
ul.icons {
|
||||
cursor: default;
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
padding: 0 0.65em 0 0;
|
||||
|
||||
&:last-child {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Image */
|
||||
|
||||
.image {
|
||||
border-radius: _size(border-radius);
|
||||
border: 0;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
|
||||
img {
|
||||
border-radius: _size(border-radius);
|
||||
display: block;
|
||||
}
|
||||
|
||||
&.left,
|
||||
&.right {
|
||||
max-width: 40%;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&.left {
|
||||
float: left;
|
||||
margin: 0 1.5em 1em 0;
|
||||
top: 0.25em;
|
||||
}
|
||||
|
||||
&.right {
|
||||
float: right;
|
||||
margin: 0 0 1em 1.5em;
|
||||
top: 0.25em;
|
||||
}
|
||||
|
||||
&.fit {
|
||||
display: block;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
width: 100%;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&.main {
|
||||
display: block;
|
||||
margin: 0 0 (_size(element-margin) * 1.5) 0;
|
||||
width: 100%;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,94 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* List */
|
||||
|
||||
ol {
|
||||
list-style: decimal;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
padding-left: 1.25em;
|
||||
|
||||
li {
|
||||
padding-left: 0.25em;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: disc;
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
padding-left: 1em;
|
||||
|
||||
li {
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
|
||||
&.alt {
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
|
||||
li {
|
||||
border-top: solid 1px;
|
||||
padding: 0.5em 0;
|
||||
|
||||
&:first-child {
|
||||
border-top: 0;
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dl {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
|
||||
dt {
|
||||
display: block;
|
||||
font-weight: _font(weight-bold);
|
||||
margin: 0 0 (_size(element-margin) * 0.5) 0;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: _size(element-margin);
|
||||
}
|
||||
|
||||
&.alt {
|
||||
dt {
|
||||
display: block;
|
||||
width: 3em;
|
||||
margin: 0;
|
||||
clear: left;
|
||||
float: left;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin: 0 0 0.85em 5.5em;
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-list($p: null) {
|
||||
ul {
|
||||
&.alt {
|
||||
li {
|
||||
border-top-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dl {
|
||||
dt {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-list;
|
@ -1,31 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Row */
|
||||
|
||||
.row {
|
||||
@include html-grid(1.5em);
|
||||
|
||||
@include breakpoint('<=xlarge') {
|
||||
@include html-grid(1.5em, 'xlarge');
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
@include html-grid(1.5em, 'large');
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
@include html-grid(1.5em, 'medium');
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
@include html-grid(1em, 'small');
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
@include html-grid(1.25em, 'xsmall');
|
||||
}
|
||||
}
|
@ -1,104 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Section/Article */
|
||||
|
||||
section, article {
|
||||
&.special {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
header {
|
||||
&.major {
|
||||
margin-bottom: (_size(element-margin) * 1.5);
|
||||
|
||||
h2 {
|
||||
font-size: 2em;
|
||||
|
||||
&:after {
|
||||
display: block;
|
||||
content: '';
|
||||
width: 3.25em;
|
||||
height: 2px;
|
||||
margin: (_size(element-margin) * 0.35) 0 (_size(element-margin) * 0.5) 0;
|
||||
border-radius: 2px;
|
||||
|
||||
section.special &, article.special & {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 1.25em;
|
||||
letter-spacing: _font(letter-spacing);
|
||||
}
|
||||
|
||||
&.special {
|
||||
text-align: center;
|
||||
|
||||
h2 {
|
||||
&:after {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
&.major {
|
||||
margin-top: (_size(element-margin) * 1.5);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
header {
|
||||
&.major {
|
||||
margin-bottom: 0;
|
||||
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 1em;
|
||||
letter-spacing: 0;
|
||||
|
||||
br {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
&.major {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-section($p: null) {
|
||||
header {
|
||||
&.major {
|
||||
h2 {
|
||||
&:after {
|
||||
background-color: _palette($p, border);
|
||||
|
||||
@if $p == 'invert' {
|
||||
@include vendor('background-image', 'linear-gradient(90deg, #{_palette(accent1)}, #{_palette(accent3)}, #{_palette(accent5)})');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-section;
|
@ -1,93 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Spotlight */
|
||||
|
||||
.spotlight {
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('align-items', 'center');
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
|
||||
.content {
|
||||
@include vendor('flex', '1');
|
||||
|
||||
> :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
header {
|
||||
&.major {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.image {
|
||||
display: inline-block;
|
||||
margin-left: 4em;
|
||||
padding: 0.65em;
|
||||
border-radius: 100%;
|
||||
border: solid 1px;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
border-radius: 100%;
|
||||
width: 16em;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
@include vendor('flex-direction', 'column-reverse');
|
||||
text-align: center;
|
||||
|
||||
.content {
|
||||
@include vendor('flex', '0 1 auto');
|
||||
width: 100%;
|
||||
|
||||
header {
|
||||
&.major {
|
||||
h2 {
|
||||
&:after {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.actions {
|
||||
@include vendor('justify-content', 'center');
|
||||
width: calc(100% + #{_size(element-margin) * 0.5});
|
||||
}
|
||||
}
|
||||
|
||||
.image {
|
||||
@include vendor('flex', '0 1 auto');
|
||||
margin-left: 0;
|
||||
margin-bottom: _size(element-margin);
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
.image {
|
||||
padding: 0.35em;
|
||||
|
||||
img {
|
||||
width: 12em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-spotlight($p: null) {
|
||||
.spotlight {
|
||||
.image {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-spotlight;
|
@ -1,108 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Statistics */
|
||||
|
||||
.statistics {
|
||||
@include vendor('display', 'flex');
|
||||
width: 100%;
|
||||
margin: 0 0 (_size(element-margin) * 1.5) 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
cursor: default;
|
||||
|
||||
li {
|
||||
@include vendor('flex', '1');
|
||||
padding: 1.5em;
|
||||
color: _palette(fg-bold);
|
||||
text-align: center;
|
||||
|
||||
&.style1 {
|
||||
background-color: _palette(accent1);
|
||||
}
|
||||
|
||||
&.style2 {
|
||||
background-color: _palette(accent2);
|
||||
}
|
||||
|
||||
&.style3 {
|
||||
background-color: _palette(accent3);
|
||||
}
|
||||
|
||||
&.style4 {
|
||||
background-color: _palette(accent4);
|
||||
}
|
||||
|
||||
&.style5 {
|
||||
background-color: _palette(accent5);
|
||||
}
|
||||
|
||||
strong, b {
|
||||
display: block;
|
||||
font-size: 2em;
|
||||
line-height: 1.1;
|
||||
color: inherit !important;
|
||||
font-weight: _font(weight);
|
||||
letter-spacing: _font(letter-spacing);
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
border-top-left-radius: _size(border-radius);
|
||||
border-bottom-left-radius: _size(border-radius);
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border-top-right-radius: _size(border-radius);
|
||||
border-bottom-right-radius: _size(border-radius);
|
||||
}
|
||||
|
||||
.icon {
|
||||
display: inline-block;
|
||||
|
||||
&:before {
|
||||
font-size: 2.75rem;
|
||||
line-height: 1.3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
li {
|
||||
strong, b {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
display: block;
|
||||
width: 20em;
|
||||
max-width: 100%;
|
||||
margin: 0 auto _size(element-margin) auto;
|
||||
|
||||
li {
|
||||
&:first-child {
|
||||
border-bottom-left-radius: 0;
|
||||
border-top-right-radius: _size(border-radius);
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-left-radius: _size(border-radius);
|
||||
}
|
||||
|
||||
.icon {
|
||||
&:before {
|
||||
font-size: 3.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
strong, b {
|
||||
font-size: 2.5em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,114 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Table */
|
||||
|
||||
.table-wrapper {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
table {
|
||||
margin: 0 0 _size(element-margin) 0;
|
||||
width: 100%;
|
||||
|
||||
tbody {
|
||||
tr {
|
||||
border: solid 1px;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0.75em 0.75em;
|
||||
}
|
||||
|
||||
th {
|
||||
font-size: 0.9em;
|
||||
font-weight: _font(weight-bold);
|
||||
padding: 0 0.75em 0.75em 0.75em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
thead {
|
||||
border-bottom: solid 2px;
|
||||
}
|
||||
|
||||
tfoot {
|
||||
border-top: solid 2px;
|
||||
}
|
||||
|
||||
&.alt {
|
||||
border-collapse: separate;
|
||||
|
||||
tbody {
|
||||
tr {
|
||||
td {
|
||||
border: solid 1px;
|
||||
border-left-width: 0;
|
||||
border-top-width: 0;
|
||||
|
||||
&:first-child {
|
||||
border-left-width: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
td {
|
||||
border-top-width: 1px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
thead {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
tfoot {
|
||||
border-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin color-table($p: null) {
|
||||
table {
|
||||
tbody {
|
||||
tr {
|
||||
border-color: _palette($p, border);
|
||||
|
||||
&:nth-child(2n + 1) {
|
||||
background-color: _palette($p, border-bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
th {
|
||||
color: _palette($p, fg-bold);
|
||||
}
|
||||
|
||||
thead {
|
||||
border-bottom-color: _palette($p, border);
|
||||
}
|
||||
|
||||
tfoot {
|
||||
border-top-color: _palette($p, border);
|
||||
}
|
||||
|
||||
&.alt {
|
||||
tbody {
|
||||
tr {
|
||||
td {
|
||||
border-color: _palette($p, border);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include color-table;
|
@ -1,60 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Footer */
|
||||
|
||||
#footer {
|
||||
@include vendor('display', 'flex');
|
||||
@include vendor('flex-wrap', 'wrap');
|
||||
@include padding(5em, 5em);
|
||||
width: calc(100% + #{_size(element-margin)});
|
||||
margin: 0 0 (_size(element-margin) * 1.5) (_size(element-margin) * -1);
|
||||
|
||||
> * {
|
||||
width: calc(50% - #{_size(element-margin)});
|
||||
margin-left: _size(element-margin);
|
||||
}
|
||||
|
||||
.copyright {
|
||||
width: 100%;
|
||||
margin: (_size(element-margin) * 1.25) 0 _size(element-margin) 0;
|
||||
font-size: 0.8em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
@include padding(4em, 4em);
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
@include padding(4em, 3em);
|
||||
display: block;
|
||||
margin: 0 0 (_size(element-margin) * 1.5) 0;
|
||||
width: 100%;
|
||||
|
||||
> * {
|
||||
width: 100%;
|
||||
margin-left: 0;
|
||||
margin-bottom: (_size(element-margin) * 1.5);
|
||||
}
|
||||
|
||||
.copyright {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
@include padding(3em, 2em);
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
@include padding(3em, 1.5em);
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
@include padding(2.5em, 1em);
|
||||
}
|
||||
}
|
@ -1,116 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Header */
|
||||
|
||||
#header {
|
||||
@include padding(5em, 5em, (0, 0, -2em, 0));
|
||||
text-align: center;
|
||||
|
||||
h1 {
|
||||
margin: 0 0 (_size(element-margin) * 0.125) 0;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 1.25em;
|
||||
letter-spacing: _font(letter-spacing);
|
||||
}
|
||||
|
||||
&.alt {
|
||||
@include padding(6em, 5em, (1em, 0, 0, 0));
|
||||
|
||||
h1 {
|
||||
font-size: 3.25em;
|
||||
}
|
||||
|
||||
> * {
|
||||
@include vendor('transition', 'opacity 3s ease');
|
||||
@include vendor('transition-delay', '0.5s');
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.logo {
|
||||
@include vendor('transition', (
|
||||
'opacity 1.25s ease',
|
||||
'transform 0.5s ease'
|
||||
));
|
||||
@include vendor('transition-delay', '0s');
|
||||
display: block;
|
||||
margin: 0 0 (_size(element-margin) * 0.75) 0;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
max-width: 75%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
@include padding(4em, 4em, (0, 0, -2em, 0));
|
||||
|
||||
&.alt {
|
||||
@include padding(5em, 4em, (1em, 0, 0, 0));
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
@include padding(4em, 3em, (0, 0, -2em, 0));
|
||||
|
||||
&.alt {
|
||||
@include padding(4em, 3em, (1em, 0, 0, 0));
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
@include padding(3em, 2em, (0, 0, -1em, 0));
|
||||
|
||||
p {
|
||||
font-size: 1em;
|
||||
letter-spacing: 0;
|
||||
|
||||
br {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
&.alt {
|
||||
@include padding(3em, 2em, (1em, 0, 0, 0));
|
||||
|
||||
h1 {
|
||||
font-size: 2.5em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
@include padding(3em, 1.5em, (0, 0, -1em, 0));
|
||||
|
||||
&.alt {
|
||||
@include padding(3em, 1.5em, (1em, 0, 0, 0));
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xxsmall') {
|
||||
@include padding(2.5em, 1em, (0, 0, -1em, 0));
|
||||
|
||||
&.alt {
|
||||
@include padding(2.5em, 1em, (1em, 0, 0, 0));
|
||||
}
|
||||
}
|
||||
|
||||
body.is-preload & {
|
||||
&.alt {
|
||||
> * {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.logo {
|
||||
@include vendor('transform', 'scale(0.8) rotate(-30deg)');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,99 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Main */
|
||||
|
||||
#main {
|
||||
@include color(invert);
|
||||
border-radius: _size(border-radius-main);
|
||||
|
||||
> .main {
|
||||
@include padding(5em, 5em);
|
||||
border-top: solid 1px _palette(invert, border);
|
||||
|
||||
&:first-child {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
> .image.main:first-child {
|
||||
margin: -5em 0 5em -5em;
|
||||
width: calc(100% + 10em);
|
||||
border-top-right-radius: _size(border-radius-main);
|
||||
border-top-left-radius: _size(border-radius-main);
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
|
||||
img {
|
||||
border-top-right-radius: _size(border-radius-main);
|
||||
border-top-left-radius: _size(border-radius-main);
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=large') {
|
||||
> .main {
|
||||
@include padding(4em, 4em);
|
||||
|
||||
> .image.main:first-child {
|
||||
margin: -4em 0 4em -4em;
|
||||
width: calc(100% + 8em);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=medium') {
|
||||
> .main {
|
||||
@include padding(4em, 3em);
|
||||
|
||||
> .image.main:first-child {
|
||||
margin: -4em 0 4em -3em;
|
||||
width: calc(100% + 6em);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
> .main {
|
||||
@include padding(3em, 2em);
|
||||
|
||||
> .image.main:first-child {
|
||||
margin: -3em 0 2em -2em;
|
||||
width: calc(100% + 4em);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
> .main {
|
||||
@include padding(3em, 1.5em);
|
||||
|
||||
> .image.main:first-child {
|
||||
margin: -3em 0 1.5em -1.5em;
|
||||
width: calc(100% + 3em);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=xxsmall') {
|
||||
border-radius: 0;
|
||||
|
||||
> .main {
|
||||
@include padding(2.5em, 1em);
|
||||
|
||||
> .image.main:first-child {
|
||||
margin: -2.5em 0 1.5em -1em;
|
||||
width: calc(100% + 2em);
|
||||
border-radius: 0;
|
||||
|
||||
img {
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,96 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Nav */
|
||||
|
||||
#nav {
|
||||
@include vendor('transition', (
|
||||
'background-color #{_duration(transition)} ease',
|
||||
'border-top-left-radius #{_duration(transition)} ease',
|
||||
'border-top-right-radius #{_duration(transition)} ease',
|
||||
'padding #{_duration(transition)} ease',
|
||||
));
|
||||
@include color-typography(invert);
|
||||
position: absolute;
|
||||
width: _size(inner);
|
||||
max-width: calc(100% - #{_size(element-margin) * 2});
|
||||
padding: 1em;
|
||||
background-color: _palette(invert, bg-alt);
|
||||
border-top-left-radius: _size(border-radius-main);
|
||||
border-top-right-radius: _size(border-radius-main);
|
||||
cursor: default;
|
||||
text-align: center;
|
||||
|
||||
& + #main {
|
||||
padding-top: 4.25em;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
|
||||
li {
|
||||
@include vendor('transition', (
|
||||
'margin #{_duration(transition)} ease'
|
||||
));
|
||||
display: inline-block;
|
||||
margin: 0 0.35em;
|
||||
padding: 0;
|
||||
vertical-align: middle;
|
||||
|
||||
a {
|
||||
@include vendor('transition', (
|
||||
'font-size #{_duration(transition)} ease'
|
||||
));
|
||||
display: inline-block;
|
||||
height: 2.25em;
|
||||
line-height: 2.25em;
|
||||
padding: 0 1.25em;
|
||||
border: 0;
|
||||
border-radius: _size(border-radius);
|
||||
box-shadow: inset 0 0 0 1px transparent;
|
||||
|
||||
&:hover {
|
||||
background-color: _palette(invert, border-bg);
|
||||
}
|
||||
|
||||
&.active {
|
||||
background-color: _palette(invert, bg);
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.alt {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
padding: 0.5em 1em;
|
||||
background-color: transparentize(_palette(invert, bg-alt), 0.05);
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
z-index: _misc(z-index-base);
|
||||
|
||||
ul {
|
||||
li {
|
||||
margin: 0 0.175em;
|
||||
|
||||
a {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include breakpoint('<=small') {
|
||||
display: none;
|
||||
|
||||
& + #main {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
///
|
||||
/// Stellar by HTML5 UP
|
||||
/// html5up.net | @ajlkn
|
||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
///
|
||||
|
||||
/* Wrapper */
|
||||
|
||||
#wrapper {
|
||||
width: _size(inner);
|
||||
max-width: calc(100% - 4em);
|
||||
margin: 0 auto;
|
||||
|
||||
@include breakpoint('<=xsmall') {
|
||||
max-width: calc(100% - 2em);
|
||||
}
|
||||
|
||||
@include breakpoint('<=xxsmall') {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
@ -1,223 +0,0 @@
|
||||
// breakpoints.scss v1.0 | @ajlkn | MIT licensed */
|
||||
|
||||
// Vars.
|
||||
|
||||
/// Breakpoints.
|
||||
/// @var {list}
|
||||
$breakpoints: () !global;
|
||||
|
||||
// Mixins.
|
||||
|
||||
/// Sets breakpoints.
|
||||
/// @param {map} $x Breakpoints.
|
||||
@mixin breakpoints($x: ()) {
|
||||
$breakpoints: $x !global;
|
||||
}
|
||||
|
||||
/// Wraps @content in a @media block targeting a specific orientation.
|
||||
/// @param {string} $orientation Orientation.
|
||||
@mixin orientation($orientation) {
|
||||
@media screen and (orientation: #{$orientation}) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
/// Wraps @content in a @media block using a given query.
|
||||
/// @param {string} $query Query.
|
||||
@mixin breakpoint($query: null) {
|
||||
|
||||
$breakpoint: null;
|
||||
$op: null;
|
||||
$media: null;
|
||||
|
||||
// Determine operator, breakpoint.
|
||||
|
||||
// Greater than or equal.
|
||||
@if (str-slice($query, 0, 2) == '>=') {
|
||||
|
||||
$op: 'gte';
|
||||
$breakpoint: str-slice($query, 3);
|
||||
|
||||
}
|
||||
|
||||
// Less than or equal.
|
||||
@elseif (str-slice($query, 0, 2) == '<=') {
|
||||
|
||||
$op: 'lte';
|
||||
$breakpoint: str-slice($query, 3);
|
||||
|
||||
}
|
||||
|
||||
// Greater than.
|
||||
@elseif (str-slice($query, 0, 1) == '>') {
|
||||
|
||||
$op: 'gt';
|
||||
$breakpoint: str-slice($query, 2);
|
||||
|
||||
}
|
||||
|
||||
// Less than.
|
||||
@elseif (str-slice($query, 0, 1) == '<') {
|
||||
|
||||
$op: 'lt';
|
||||
$breakpoint: str-slice($query, 2);
|
||||
|
||||
}
|
||||
|
||||
// Not.
|
||||
@elseif (str-slice($query, 0, 1) == '!') {
|
||||
|
||||
$op: 'not';
|
||||
$breakpoint: str-slice($query, 2);
|
||||
|
||||
}
|
||||
|
||||
// Equal.
|
||||
@else {
|
||||
|
||||
$op: 'eq';
|
||||
$breakpoint: $query;
|
||||
|
||||
}
|
||||
|
||||
// Build media.
|
||||
@if ($breakpoint and map-has-key($breakpoints, $breakpoint)) {
|
||||
|
||||
$a: map-get($breakpoints, $breakpoint);
|
||||
|
||||
// Range.
|
||||
@if (type-of($a) == 'list') {
|
||||
|
||||
$x: nth($a, 1);
|
||||
$y: nth($a, 2);
|
||||
|
||||
// Max only.
|
||||
@if ($x == null) {
|
||||
|
||||
// Greater than or equal (>= 0 / anything)
|
||||
@if ($op == 'gte') {
|
||||
$media: 'screen';
|
||||
}
|
||||
|
||||
// Less than or equal (<= y)
|
||||
@elseif ($op == 'lte') {
|
||||
$media: 'screen and (max-width: ' + $y + ')';
|
||||
}
|
||||
|
||||
// Greater than (> y)
|
||||
@elseif ($op == 'gt') {
|
||||
$media: 'screen and (min-width: ' + ($y + 1) + ')';
|
||||
}
|
||||
|
||||
// Less than (< 0 / invalid)
|
||||
@elseif ($op == 'lt') {
|
||||
$media: 'screen and (max-width: -1px)';
|
||||
}
|
||||
|
||||
// Not (> y)
|
||||
@elseif ($op == 'not') {
|
||||
$media: 'screen and (min-width: ' + ($y + 1) + ')';
|
||||
}
|
||||
|
||||
// Equal (<= y)
|
||||
@else {
|
||||
$media: 'screen and (max-width: ' + $y + ')';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Min only.
|
||||
@else if ($y == null) {
|
||||
|
||||
// Greater than or equal (>= x)
|
||||
@if ($op == 'gte') {
|
||||
$media: 'screen and (min-width: ' + $x + ')';
|
||||
}
|
||||
|
||||
// Less than or equal (<= inf / anything)
|
||||
@elseif ($op == 'lte') {
|
||||
$media: 'screen';
|
||||
}
|
||||
|
||||
// Greater than (> inf / invalid)
|
||||
@elseif ($op == 'gt') {
|
||||
$media: 'screen and (max-width: -1px)';
|
||||
}
|
||||
|
||||
// Less than (< x)
|
||||
@elseif ($op == 'lt') {
|
||||
$media: 'screen and (max-width: ' + ($x - 1) + ')';
|
||||
}
|
||||
|
||||
// Not (< x)
|
||||
@elseif ($op == 'not') {
|
||||
$media: 'screen and (max-width: ' + ($x - 1) + ')';
|
||||
}
|
||||
|
||||
// Equal (>= x)
|
||||
@else {
|
||||
$media: 'screen and (min-width: ' + $x + ')';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Min and max.
|
||||
@else {
|
||||
|
||||
// Greater than or equal (>= x)
|
||||
@if ($op == 'gte') {
|
||||
$media: 'screen and (min-width: ' + $x + ')';
|
||||
}
|
||||
|
||||
// Less than or equal (<= y)
|
||||
@elseif ($op == 'lte') {
|
||||
$media: 'screen and (max-width: ' + $y + ')';
|
||||
}
|
||||
|
||||
// Greater than (> y)
|
||||
@elseif ($op == 'gt') {
|
||||
$media: 'screen and (min-width: ' + ($y + 1) + ')';
|
||||
}
|
||||
|
||||
// Less than (< x)
|
||||
@elseif ($op == 'lt') {
|
||||
$media: 'screen and (max-width: ' + ($x - 1) + ')';
|
||||
}
|
||||
|
||||
// Not (< x and > y)
|
||||
@elseif ($op == 'not') {
|
||||
$media: 'screen and (max-width: ' + ($x - 1) + '), screen and (min-width: ' + ($y + 1) + ')';
|
||||
}
|
||||
|
||||
// Equal (>= x and <= y)
|
||||
@else {
|
||||
$media: 'screen and (min-width: ' + $x + ') and (max-width: ' + $y + ')';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// String.
|
||||
@else {
|
||||
|
||||
// Missing a media type? Prefix with "screen".
|
||||
@if (str-slice($a, 0, 1) == '(') {
|
||||
$media: 'screen and ' + $a;
|
||||
}
|
||||
|
||||
// Otherwise, use as-is.
|
||||
@else {
|
||||
$media: $a;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Output.
|
||||
@media #{$media} {
|
||||
@content;
|
||||
}
|
||||
|
||||
}
|
@ -1,90 +0,0 @@
|
||||
/// Removes a specific item from a list.
|
||||
/// @author Hugo Giraudel
|
||||
/// @param {list} $list List.
|
||||
/// @param {integer} $index Index.
|
||||
/// @return {list} Updated list.
|
||||
@function remove-nth($list, $index) {
|
||||
|
||||
$result: null;
|
||||
|
||||
@if type-of($index) != number {
|
||||
@warn "$index: #{quote($index)} is not a number for `remove-nth`.";
|
||||
}
|
||||
@else if $index == 0 {
|
||||
@warn "List index 0 must be a non-zero integer for `remove-nth`.";
|
||||
}
|
||||
@else if abs($index) > length($list) {
|
||||
@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
|
||||
}
|
||||
@else {
|
||||
|
||||
$result: ();
|
||||
$index: if($index < 0, length($list) + $index + 1, $index);
|
||||
|
||||
@for $i from 1 through length($list) {
|
||||
|
||||
@if $i != $index {
|
||||
$result: append($result, nth($list, $i));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@return $result;
|
||||
|
||||
}
|
||||
|
||||
/// Gets a value from a map.
|
||||
/// @author Hugo Giraudel
|
||||
/// @param {map} $map Map.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function val($map, $keys...) {
|
||||
|
||||
@if nth($keys, 1) == null {
|
||||
$keys: remove-nth($keys, 1);
|
||||
}
|
||||
|
||||
@each $key in $keys {
|
||||
$map: map-get($map, $key);
|
||||
}
|
||||
|
||||
@return $map;
|
||||
|
||||
}
|
||||
|
||||
/// Gets a duration value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _duration($keys...) {
|
||||
@return val($duration, $keys...);
|
||||
}
|
||||
|
||||
/// Gets a font value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _font($keys...) {
|
||||
@return val($font, $keys...);
|
||||
}
|
||||
|
||||
/// Gets a misc value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _misc($keys...) {
|
||||
@return val($misc, $keys...);
|
||||
}
|
||||
|
||||
/// Gets a palette value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _palette($keys...) {
|
||||
@return val($palette, $keys...);
|
||||
}
|
||||
|
||||
/// Gets a size value.
|
||||
/// @param {string} $keys Key(s).
|
||||
/// @return {string} Value.
|
||||
@function _size($keys...) {
|
||||
@return val($size, $keys...);
|
||||
}
|
@ -1,149 +0,0 @@
|
||||
// html-grid.scss v1.0 | @ajlkn | MIT licensed */
|
||||
|
||||
// Mixins.
|
||||
|
||||
/// Initializes the current element as an HTML grid.
|
||||
/// @param {mixed} $gutters Gutters (either a single number to set both column/row gutters, or a list to set them individually).
|
||||
/// @param {mixed} $suffix Column class suffix (optional; either a single suffix or a list).
|
||||
@mixin html-grid($gutters: 1.5em, $suffix: '') {
|
||||
|
||||
// Initialize.
|
||||
$cols: 12;
|
||||
$multipliers: 0, 0.25, 0.5, 1, 1.50, 2.00;
|
||||
$unit: 100% / $cols;
|
||||
|
||||
// Suffixes.
|
||||
$suffixes: null;
|
||||
|
||||
@if (type-of($suffix) == 'list') {
|
||||
$suffixes: $suffix;
|
||||
}
|
||||
@else {
|
||||
$suffixes: ($suffix);
|
||||
}
|
||||
|
||||
// Gutters.
|
||||
$guttersCols: null;
|
||||
$guttersRows: null;
|
||||
|
||||
@if (type-of($gutters) == 'list') {
|
||||
|
||||
$guttersCols: nth($gutters, 1);
|
||||
$guttersRows: nth($gutters, 2);
|
||||
|
||||
}
|
||||
@else {
|
||||
|
||||
$guttersCols: $gutters;
|
||||
$guttersRows: 0;
|
||||
|
||||
}
|
||||
|
||||
// Row.
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
box-sizing: border-box;
|
||||
align-items: stretch;
|
||||
|
||||
// Columns.
|
||||
> * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
// Gutters.
|
||||
&.gtr-uniform {
|
||||
> * {
|
||||
> :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Alignment.
|
||||
&.aln-left {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
&.aln-center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
&.aln-right {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
&.aln-top {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
&.aln-middle {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
&.aln-bottom {
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
// Step through suffixes.
|
||||
@each $suffix in $suffixes {
|
||||
|
||||
// Suffix.
|
||||
@if ($suffix != '') {
|
||||
$suffix: '-' + $suffix;
|
||||
}
|
||||
@else {
|
||||
$suffix: '';
|
||||
}
|
||||
|
||||
// Row.
|
||||
|
||||
// Important.
|
||||
> .imp#{$suffix} {
|
||||
order: -1;
|
||||
}
|
||||
|
||||
// Columns, offsets.
|
||||
@for $i from 1 through $cols {
|
||||
> .col-#{$i}#{$suffix} {
|
||||
width: $unit * $i;
|
||||
}
|
||||
|
||||
> .off-#{$i}#{$suffix} {
|
||||
margin-left: $unit * $i;
|
||||
}
|
||||
}
|
||||
|
||||
// Step through multipliers.
|
||||
@each $multiplier in $multipliers {
|
||||
|
||||
// Gutters.
|
||||
$class: null;
|
||||
|
||||
@if ($multiplier != 1) {
|
||||
$class: '.gtr-' + ($multiplier * 100);
|
||||
}
|
||||
|
||||
&#{$class} {
|
||||
margin-top: ($guttersRows * $multiplier * -1);
|
||||
margin-left: ($guttersCols * $multiplier * -1);
|
||||
|
||||
> * {
|
||||
padding: ($guttersRows * $multiplier) 0 0 ($guttersCols * $multiplier);
|
||||
}
|
||||
|
||||
// Uniform.
|
||||
&.gtr-uniform {
|
||||
margin-top: $guttersCols * $multiplier * -1;
|
||||
|
||||
> * {
|
||||
padding-top: $guttersCols * $multiplier;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,78 +0,0 @@
|
||||
/// Makes an element's :before pseudoelement a FontAwesome icon.
|
||||
/// @param {string} $content Optional content value to use.
|
||||
/// @param {string} $category Optional category to use.
|
||||
/// @param {string} $where Optional pseudoelement to target (before or after).
|
||||
@mixin icon($content: false, $category: regular, $where: before) {
|
||||
|
||||
text-decoration: none;
|
||||
|
||||
&:#{$where} {
|
||||
|
||||
@if $content {
|
||||
content: $content;
|
||||
}
|
||||
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
text-rendering: auto;
|
||||
line-height: 1;
|
||||
text-transform: none !important;
|
||||
|
||||
@if ($category == brands) {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
}
|
||||
@elseif ($category == solid) {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-weight: 900;
|
||||
}
|
||||
@else {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Applies padding to an element, taking the current element-margin value into account.
|
||||
/// @param {mixed} $tb Top/bottom padding.
|
||||
/// @param {mixed} $lr Left/right padding.
|
||||
/// @param {list} $pad Optional extra padding (in the following order top, right, bottom, left)
|
||||
/// @param {bool} $important If true, adds !important.
|
||||
@mixin padding($tb, $lr, $pad: (0,0,0,0), $important: null) {
|
||||
|
||||
@if $important {
|
||||
$important: '!important';
|
||||
}
|
||||
|
||||
$x: 0.1em;
|
||||
|
||||
@if unit(_size(element-margin)) == 'rem' {
|
||||
$x: 0.1rem;
|
||||
}
|
||||
|
||||
padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important};
|
||||
|
||||
}
|
||||
|
||||
/// Encodes a SVG data URL so IE doesn't choke (via codepen.io/jakob-e/pen/YXXBrp).
|
||||
/// @param {string} $svg SVG data URL.
|
||||
/// @return {string} Encoded SVG data URL.
|
||||
@function svg-url($svg) {
|
||||
|
||||
$svg: str-replace($svg, '"', '\'');
|
||||
$svg: str-replace($svg, '%', '%25');
|
||||
$svg: str-replace($svg, '<', '%3C');
|
||||
$svg: str-replace($svg, '>', '%3E');
|
||||
$svg: str-replace($svg, '&', '%26');
|
||||
$svg: str-replace($svg, '#', '%23');
|
||||
$svg: str-replace($svg, '{', '%7B');
|
||||
$svg: str-replace($svg, '}', '%7D');
|
||||
$svg: str-replace($svg, ';', '%3B');
|
||||
|
||||
@return url("data:image/svg+xml;charset=utf8,#{$svg}");
|
||||
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
// Misc.
|
||||
$misc: (
|
||||
z-index-base: 10000
|
||||
);
|
||||
|
||||
// Duration.
|
||||
$duration: (
|
||||
transition: 0.2s
|
||||
);
|
||||
|
||||
// Size.
|
||||
$size: (
|
||||
border-radius: 8px,
|
||||
border-radius-main: 0.25em,
|
||||
element-height: 2.75em,
|
||||
element-margin: 2em,
|
||||
inner: 64em
|
||||
);
|
||||
|
||||
// Font.
|
||||
$font: (
|
||||
family: ('Source Sans Pro', Helvetica, sans-serif),
|
||||
family-fixed: ('Courier New', monospace),
|
||||
weight: 300,
|
||||
weight-bold: 400,
|
||||
letter-spacing: -0.025em
|
||||
);
|
||||
|
||||
// Palette.
|
||||
$palette: (
|
||||
bg: #935d8c,
|
||||
fg: rgba(255,255,255,0.65),
|
||||
fg-bold: #ffffff,
|
||||
fg-light: rgba(255,255,255,0.5),
|
||||
border: rgba(255,255,255,0.35),
|
||||
border-bg: rgba(255,255,255,0.075),
|
||||
border2: rgba(255,255,255,0.75),
|
||||
border2-bg: rgba(255,255,255,0.2),
|
||||
|
||||
invert: (
|
||||
bg: #ffffff,
|
||||
bg-alt: #f7f7f7,
|
||||
fg: #636363,
|
||||
fg-bold: #636363,
|
||||
fg-light: rgba(99,99,99,0.25),
|
||||
border: #dddddd,
|
||||
border-bg: rgba(222,222,222,0.25),
|
||||
border2: #dddddd,
|
||||
border2-bg: rgba(222,222,222,0.5),
|
||||
),
|
||||
|
||||
accent: #8cc9f0,
|
||||
accent1: #efa8b0,
|
||||
accent2: #c79cc8,
|
||||
accent3: #a89cc8,
|
||||
accent4: #9bb2e1,
|
||||
accent5: #8cc9f0,
|
||||
bg1: #e37682,
|
||||
bg2: #5f4d93
|
||||
);
|
@ -1,376 +0,0 @@
|
||||
// vendor.scss v1.0 | @ajlkn | MIT licensed */
|
||||
|
||||
// Vars.
|
||||
|
||||
/// Vendor prefixes.
|
||||
/// @var {list}
|
||||
$vendor-prefixes: (
|
||||
'-moz-',
|
||||
'-webkit-',
|
||||
'-ms-',
|
||||
''
|
||||
);
|
||||
|
||||
/// Properties that should be vendorized.
|
||||
/// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
|
||||
/// @var {list}
|
||||
$vendor-properties: (
|
||||
|
||||
// Animation.
|
||||
'animation',
|
||||
'animation-delay',
|
||||
'animation-direction',
|
||||
'animation-duration',
|
||||
'animation-fill-mode',
|
||||
'animation-iteration-count',
|
||||
'animation-name',
|
||||
'animation-play-state',
|
||||
'animation-timing-function',
|
||||
|
||||
// Appearance.
|
||||
'appearance',
|
||||
|
||||
// Backdrop filter.
|
||||
'backdrop-filter',
|
||||
|
||||
// Background image options.
|
||||
'background-clip',
|
||||
'background-origin',
|
||||
'background-size',
|
||||
|
||||
// Box sizing.
|
||||
'box-sizing',
|
||||
|
||||
// Clip path.
|
||||
'clip-path',
|
||||
|
||||
// Filter effects.
|
||||
'filter',
|
||||
|
||||
// Flexbox.
|
||||
'align-content',
|
||||
'align-items',
|
||||
'align-self',
|
||||
'flex',
|
||||
'flex-basis',
|
||||
'flex-direction',
|
||||
'flex-flow',
|
||||
'flex-grow',
|
||||
'flex-shrink',
|
||||
'flex-wrap',
|
||||
'justify-content',
|
||||
'order',
|
||||
|
||||
// Font feature.
|
||||
'font-feature-settings',
|
||||
'font-language-override',
|
||||
'font-variant-ligatures',
|
||||
|
||||
// Font kerning.
|
||||
'font-kerning',
|
||||
|
||||
// Fragmented borders and backgrounds.
|
||||
'box-decoration-break',
|
||||
|
||||
// Grid layout.
|
||||
'grid-column',
|
||||
'grid-column-align',
|
||||
'grid-column-end',
|
||||
'grid-column-start',
|
||||
'grid-row',
|
||||
'grid-row-align',
|
||||
'grid-row-end',
|
||||
'grid-row-start',
|
||||
'grid-template-columns',
|
||||
'grid-template-rows',
|
||||
|
||||
// Hyphens.
|
||||
'hyphens',
|
||||
'word-break',
|
||||
|
||||
// Masks.
|
||||
'mask',
|
||||
'mask-border',
|
||||
'mask-border-outset',
|
||||
'mask-border-repeat',
|
||||
'mask-border-slice',
|
||||
'mask-border-source',
|
||||
'mask-border-width',
|
||||
'mask-clip',
|
||||
'mask-composite',
|
||||
'mask-image',
|
||||
'mask-origin',
|
||||
'mask-position',
|
||||
'mask-repeat',
|
||||
'mask-size',
|
||||
|
||||
// Multicolumn.
|
||||
'break-after',
|
||||
'break-before',
|
||||
'break-inside',
|
||||
'column-count',
|
||||
'column-fill',
|
||||
'column-gap',
|
||||
'column-rule',
|
||||
'column-rule-color',
|
||||
'column-rule-style',
|
||||
'column-rule-width',
|
||||
'column-span',
|
||||
'column-width',
|
||||
'columns',
|
||||
|
||||
// Object fit.
|
||||
'object-fit',
|
||||
'object-position',
|
||||
|
||||
// Regions.
|
||||
'flow-from',
|
||||
'flow-into',
|
||||
'region-fragment',
|
||||
|
||||
// Scroll snap points.
|
||||
'scroll-snap-coordinate',
|
||||
'scroll-snap-destination',
|
||||
'scroll-snap-points-x',
|
||||
'scroll-snap-points-y',
|
||||
'scroll-snap-type',
|
||||
|
||||
// Shapes.
|
||||
'shape-image-threshold',
|
||||
'shape-margin',
|
||||
'shape-outside',
|
||||
|
||||
// Tab size.
|
||||
'tab-size',
|
||||
|
||||
// Text align last.
|
||||
'text-align-last',
|
||||
|
||||
// Text decoration.
|
||||
'text-decoration-color',
|
||||
'text-decoration-line',
|
||||
'text-decoration-skip',
|
||||
'text-decoration-style',
|
||||
|
||||
// Text emphasis.
|
||||
'text-emphasis',
|
||||
'text-emphasis-color',
|
||||
'text-emphasis-position',
|
||||
'text-emphasis-style',
|
||||
|
||||
// Text size adjust.
|
||||
'text-size-adjust',
|
||||
|
||||
// Text spacing.
|
||||
'text-spacing',
|
||||
|
||||
// Transform.
|
||||
'transform',
|
||||
'transform-origin',
|
||||
|
||||
// Transform 3D.
|
||||
'backface-visibility',
|
||||
'perspective',
|
||||
'perspective-origin',
|
||||
'transform-style',
|
||||
|
||||
// Transition.
|
||||
'transition',
|
||||
'transition-delay',
|
||||
'transition-duration',
|
||||
'transition-property',
|
||||
'transition-timing-function',
|
||||
|
||||
// Unicode bidi.
|
||||
'unicode-bidi',
|
||||
|
||||
// User select.
|
||||
'user-select',
|
||||
|
||||
// Writing mode.
|
||||
'writing-mode',
|
||||
|
||||
);
|
||||
|
||||
/// Values that should be vendorized.
|
||||
/// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
|
||||
/// @var {list}
|
||||
$vendor-values: (
|
||||
|
||||
// Cross fade.
|
||||
'cross-fade',
|
||||
|
||||
// Element function.
|
||||
'element',
|
||||
|
||||
// Filter function.
|
||||
'filter',
|
||||
|
||||
// Flexbox.
|
||||
'flex',
|
||||
'inline-flex',
|
||||
|
||||
// Grab cursors.
|
||||
'grab',
|
||||
'grabbing',
|
||||
|
||||
// Gradients.
|
||||
'linear-gradient',
|
||||
'repeating-linear-gradient',
|
||||
'radial-gradient',
|
||||
'repeating-radial-gradient',
|
||||
|
||||
// Grid layout.
|
||||
'grid',
|
||||
'inline-grid',
|
||||
|
||||
// Image set.
|
||||
'image-set',
|
||||
|
||||
// Intrinsic width.
|
||||
'max-content',
|
||||
'min-content',
|
||||
'fit-content',
|
||||
'fill',
|
||||
'fill-available',
|
||||
'stretch',
|
||||
|
||||
// Sticky position.
|
||||
'sticky',
|
||||
|
||||
// Transform.
|
||||
'transform',
|
||||
|
||||
// Zoom cursors.
|
||||
'zoom-in',
|
||||
'zoom-out',
|
||||
|
||||
);
|
||||
|
||||
// Functions.
|
||||
|
||||
/// Removes a specific item from a list.
|
||||
/// @author Hugo Giraudel
|
||||
/// @param {list} $list List.
|
||||
/// @param {integer} $index Index.
|
||||
/// @return {list} Updated list.
|
||||
@function remove-nth($list, $index) {
|
||||
|
||||
$result: null;
|
||||
|
||||
@if type-of($index) != number {
|
||||
@warn "$index: #{quote($index)} is not a number for `remove-nth`.";
|
||||
}
|
||||
@else if $index == 0 {
|
||||
@warn "List index 0 must be a non-zero integer for `remove-nth`.";
|
||||
}
|
||||
@else if abs($index) > length($list) {
|
||||
@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
|
||||
}
|
||||
@else {
|
||||
|
||||
$result: ();
|
||||
$index: if($index < 0, length($list) + $index + 1, $index);
|
||||
|
||||
@for $i from 1 through length($list) {
|
||||
|
||||
@if $i != $index {
|
||||
$result: append($result, nth($list, $i));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@return $result;
|
||||
|
||||
}
|
||||
|
||||
/// Replaces a substring within another string.
|
||||
/// @author Hugo Giraudel
|
||||
/// @param {string} $string String.
|
||||
/// @param {string} $search Substring.
|
||||
/// @param {string} $replace Replacement.
|
||||
/// @return {string} Updated string.
|
||||
@function str-replace($string, $search, $replace: '') {
|
||||
|
||||
$index: str-index($string, $search);
|
||||
|
||||
@if $index {
|
||||
@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
|
||||
}
|
||||
|
||||
@return $string;
|
||||
|
||||
}
|
||||
|
||||
/// Replaces a substring within each string in a list.
|
||||
/// @param {list} $strings List of strings.
|
||||
/// @param {string} $search Substring.
|
||||
/// @param {string} $replace Replacement.
|
||||
/// @return {list} Updated list of strings.
|
||||
@function str-replace-all($strings, $search, $replace: '') {
|
||||
|
||||
@each $string in $strings {
|
||||
$strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));
|
||||
}
|
||||
|
||||
@return $strings;
|
||||
|
||||
}
|
||||
|
||||
// Mixins.
|
||||
|
||||
/// Wraps @content in vendorized keyframe blocks.
|
||||
/// @param {string} $name Name.
|
||||
@mixin keyframes($name) {
|
||||
|
||||
@-moz-keyframes #{$name} { @content; }
|
||||
@-webkit-keyframes #{$name} { @content; }
|
||||
@-ms-keyframes #{$name} { @content; }
|
||||
@keyframes #{$name} { @content; }
|
||||
|
||||
}
|
||||
|
||||
/// Vendorizes a declaration's property and/or value(s).
|
||||
/// @param {string} $property Property.
|
||||
/// @param {mixed} $value String/list of value(s).
|
||||
@mixin vendor($property, $value) {
|
||||
|
||||
// Determine if property should expand.
|
||||
$expandProperty: index($vendor-properties, $property);
|
||||
|
||||
// Determine if value should expand (and if so, add '-prefix-' placeholder).
|
||||
$expandValue: false;
|
||||
|
||||
@each $x in $value {
|
||||
@each $y in $vendor-values {
|
||||
@if $y == str-slice($x, 1, str-length($y)) {
|
||||
|
||||
$value: set-nth($value, index($value, $x), '-prefix-' + $x);
|
||||
$expandValue: true;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Expand property?
|
||||
@if $expandProperty {
|
||||
@each $vendor in $vendor-prefixes {
|
||||
#{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
|
||||
}
|
||||
}
|
||||
|
||||
// Expand just the value?
|
||||
@elseif $expandValue {
|
||||
@each $vendor in $vendor-prefixes {
|
||||
#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
|
||||
}
|
||||
}
|
||||
|
||||
// Neither? Treat them as a normal declaration.
|
||||
@else {
|
||||
#{$property}: #{$value};
|
||||
}
|
||||
|
||||
}
|
@ -1,70 +0,0 @@
|
||||
@import 'libs/vars';
|
||||
@import 'libs/functions';
|
||||
@import 'libs/mixins';
|
||||
@import 'libs/vendor';
|
||||
@import 'libs/breakpoints';
|
||||
@import 'libs/html-grid';
|
||||
@import 'fontawesome-all.min.css';
|
||||
@import 'https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400';
|
||||
|
||||
/*
|
||||
Stellar by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
// Breakpoints.
|
||||
|
||||
@include breakpoints((
|
||||
xlarge: ( 1281px, 1680px ),
|
||||
large: ( 981px, 1280px ),
|
||||
medium: ( 737px, 980px ),
|
||||
small: ( 481px, 736px ),
|
||||
xsmall: ( 361px, 480px ),
|
||||
xxsmall: ( null, 360px )
|
||||
));
|
||||
|
||||
// Mixins.
|
||||
|
||||
@mixin color($p) {
|
||||
@include color-typography($p);
|
||||
@include color-box($p);
|
||||
@include color-button($p);
|
||||
@include color-form($p);
|
||||
@include color-icon($p);
|
||||
@include color-list($p);
|
||||
@include color-section($p);
|
||||
@include color-table($p);
|
||||
@include color-spotlight($p);
|
||||
}
|
||||
|
||||
// Base.
|
||||
|
||||
@import 'base/reset';
|
||||
@import 'base/page';
|
||||
@import 'base/typography';
|
||||
|
||||
// Component.
|
||||
|
||||
@import 'components/row';
|
||||
@import 'components/box';
|
||||
@import 'components/button';
|
||||
@import 'components/form';
|
||||
@import 'components/icon';
|
||||
@import 'components/image';
|
||||
@import 'components/list';
|
||||
@import 'components/actions';
|
||||
@import 'components/icons';
|
||||
@import 'components/section';
|
||||
@import 'components/table';
|
||||
@import 'components/features';
|
||||
@import 'components/statistics';
|
||||
@import 'components/spotlight';
|
||||
|
||||
// Layout.
|
||||
|
||||
@import 'layout/header';
|
||||
@import 'layout/nav';
|
||||
@import 'layout/main';
|
||||
@import 'layout/footer';
|
||||
@import 'layout/wrapper';
|
@ -1,28 +0,0 @@
|
||||
@import 'libs/vars';
|
||||
@import 'libs/functions';
|
||||
@import 'libs/mixins';
|
||||
@import 'libs/vendor';
|
||||
@import 'libs/breakpoints';
|
||||
@import 'libs/html-grid';
|
||||
|
||||
/*
|
||||
Stellar by HTML5 UP
|
||||
html5up.net | @ajlkn
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
/* Header */
|
||||
|
||||
#header {
|
||||
body.is-preload & {
|
||||
&.alt {
|
||||
> * {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.logo {
|
||||
@include vendor('transform', 'none');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
---
|
||||
title: БМК-Сервис
|
||||
fragment: about
|
||||
language: ru
|
||||
---
|
||||
ООО «БМК-Сервис» - отечественная высокотехнологическая компания - разработчик программного обеспечения в области геофизических исследований.
|
||||
|
||||
Компания основана в 2020 году и ее штат состоит из инженеров, программистов, математиков и научных сотрудников. Исследования, разработки, а также тестирование компании размещены в г. Долгопрудный Московской области.
|
||||
|
||||
Мы создаем решения для оптимального планирования морских сейсморазведочных 2D, 3D, и 4D работ. Наша экспертиза позволяет соединить различные аспекты при планировании разведки. Совместный учет геофизических и навигационных особенностей вместе с передовыми практиками программирование позволяет нам создавать передовое программное обеспечение для решений в области оптимального планирования разведывательных работ.
|
||||
|
||||
Разрабатываемое программное обеспечение протестировано с лидирующими отечественными нефтесервисными компаниями, среди которых СКФ Гео и Росгеология, а также защищено свидетельством о государственной регистрации программы для ЭВМ № 2022667423 «Программное обеспечение для моделирования и оптимизации проведения морских сейсморазведочных работ».
|
@ -1,18 +0,0 @@
|
||||
---
|
||||
title: Решения
|
||||
fragment: solutions
|
||||
language: ru
|
||||
---
|
||||
|
||||
### Рынок сейсморазведки
|
||||
|
||||
По оценкам, к концу 2030 года мировой рынок сейсморазведки принесет доход в размере 11 658,2 млн долларов США, увеличившись со среднегодовым темпом роста в 3,96%. На рост помимо увеличения спроса на поиск новых залежей нефти и природного газа, развитее Carbon Capture & Storage технологий требует изучение геологических структур под дном морей для создания хранилищ углекислого газа.
|
||||
|
||||
Стоимость сейсморазведки при этом может составлять порядка $100,000 за квадратную милю для 3D работ. При этом основная часть затрат находится в аренде сейсморазведочного судна. Поэтому для уменьшения стоимости работ и увеличения прибыли необходимо производить оптимальное планирование разведки.
|
||||
|
||||
### LotSeis
|
||||
Планирование разведки состоит из нескольких этапов от выдвижения гипотез о геологической структуре и построения области разведки до создания траектории движения сейсморазведочного судна. LotSeis помогает с последней частью.
|
||||
|
||||
LotSeis является продвинутым программным обеспечением, которое автоматизирует и оптимизирует планирование сейсморазведки. LotSeis разделяет планирование на два этапа. Первый основан на геофизическом планировании. Рассчитывается карта разрешений съемки, которая позволяет выбрать более подходящую конфигурацию корабля или изменить область разведки. Второй этап производит оптимизацию навигации. LotSeis позволяет задавать препятствия различных форм и устанавливать для них разные безопасные расстояния. В результате LotSeis создает оптимальный маршрут движения судна, учитывая все физические ограничения и особенности.
|
||||
|
||||
Ядро оптимизации LotSeis основано на продвинутых алгоритмах, симулирующих природные явления. Архитектура ядра позволяет добавлять различные модули, изменяющие решение. Это делает LotSeis гибким решением, которое может подстраиваться под клиента. LotSeis является частью Kotlin-экосистемы, поэтому использует наиболее продвинуты инструменты и технологии.
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
title: Партнеры
|
||||
fragment: partners
|
||||
language: ru
|
||||
---
|
@ -1,25 +0,0 @@
|
||||
content:
|
||||
- title: Институт физики Земли им. О.Ю. Шмидта РАН
|
||||
target: "https://ifz.ru/"
|
||||
image: images/ifz.jpeg
|
||||
- title: Институт океанологии им. П.П. Ширшова
|
||||
target: "https://ocean.ru/"
|
||||
image: images/IMG_8289.jpg
|
||||
- title: ООО «СПЛИТ»
|
||||
target: "https://split-k.com/"
|
||||
image: images/scf.jpg
|
||||
- title: ООО «СКФ ГЕО»
|
||||
target: "https://www.scf-group.ru/"
|
||||
image: images/split.png
|
||||
- title: АО «Морская арктическая геологоразведочная экспедиция»
|
||||
target: "https://mage.ru/ru/"
|
||||
image: images/IMG_8287.jpg
|
||||
- title: АО «Росгеология»
|
||||
target: "https://rusgeology.ru/"
|
||||
image: images/rosgeo.jpeg
|
||||
- title: МФТИ
|
||||
target: "https://mipt.ru/"
|
||||
image: images/IMG_8290.jpg
|
||||
- title: ФГБОУ «Фонд содействия развитию малых форм предприятий в научно-технической сфере»
|
||||
target: "https://fasie.ru/"
|
||||
image: images/IMG_8284.jpg
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
title: "Команда"
|
||||
fragment: team
|
||||
language: ru
|
||||
---
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
type: team
|
||||
title: Святослав Ковалев
|
||||
image: kovalev.png
|
||||
order: 4
|
||||
language: ru
|
||||
---
|
||||
Более 15 лет опыта в ИТ-сфере. Участвовал в проектах по разработке CAD-ов, антивирусов. Занимал должности математика-программиста, разработчика в тестировании, инженера-программиста, тимлида, системного аналитика. Выпускник ФГАОУ ВО «Южный федеральный университет».
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
type: team
|
||||
title: Сергей Курков
|
||||
image: kurcov.png
|
||||
order: 1
|
||||
language: ru
|
||||
---
|
||||
Руководитель высокотехнологичных проектов с более чем 10-летним опытом работы. Реализовано более 10 проектов по разработке оборудования и программного обеспечения, организации производства, по заказам нефтяных и нефтесервисных компаний, в том числе международных. Выпускник МФТИ.
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
type: team
|
||||
title: Александр Нозик
|
||||
image: Nozik.jpg
|
||||
order: 3
|
||||
language: ru
|
||||
---
|
||||
Более 15 лет опыта в научном программировании. Реализация международных проектов. Руководитель центра Научного программирования МФТИ, заместитель руководителя лаборатории методов ядерной физики в МФТИ, Руководитель исследовательской группы в JetBrains Research, автор образовательных курсов в МФТИ. Выпускник МФТИ.
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
type: team
|
||||
title: Владимир Пальмин
|
||||
image: palmin.jpeg
|
||||
order: 2
|
||||
language: ru
|
||||
---
|
||||
Руководитель аналитического отдела Центра Научного Программирования МФТИ. Реализовано более 3 проектов по разработке программного обеспечения, в том числе для международных нефтегазовых компаний. Выпускник МФТИ.
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
type: team
|
||||
title: Андрей Разин
|
||||
image: razin.jpg
|
||||
order: 1.5
|
||||
language: ru
|
||||
---
|
||||
Инженер-геофизик с 32-летним стажем морских геофизических работ, один из ведущих российских специалистов по сейсморазведке в «транзитных» зонах. Выпускник ФГБОУ ВО «Российский государственный геологоразведочный университет имени Серго Орджоникидзе».
|
Before Width: | Height: | Size: 181 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 840 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 299 KiB |
Before Width: | Height: | Size: 274 KiB |
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 7.9 KiB |
@ -12,15 +12,15 @@ language: en
|
||||
<h2>Master program</h2>
|
||||
</header>
|
||||
<p>Master program "Scientific programming" at MIPT aims to prepare specialists both in application programming and domain field (such as physics, biology, biotechnology, computer science and other research areas).</p>
|
||||
<p> In modern science and technology application level programming is an integral part of any major work. And in order to be successful in this field one needs to know both software engineering and the domain field. </p>
|
||||
<p> In modern science and technology, application level programming is an integral part of any major work. And in order to be successful in this field, one needs to know both software engineering and the domain field. </p>
|
||||
<ul class="actions">
|
||||
<li><a href="${resolvePageRef("education.masters")}" class="button next">More</a></li>
|
||||
<li><a href="/education/masters" class="button next">More</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
<hr/>
|
||||
|
||||
## Courses in 2022-2023:
|
||||
## Courses in 2022–2023:
|
||||
|
||||
### [Scientific literature seminar](#)
|
||||
*curated by [Aleksandr Svetlichnyi](${resolvePageRef("team")}#svetlichnyi)*
|
||||
@ -45,11 +45,6 @@ Actual program: [SPC-A-6](https://npm.mipt.ru/youtrack/articles/SPC-A-6)
|
||||
*by Konstantin Tikhonov and Rolan Grinis*
|
||||
|
||||
Actual program: [SPC-A-3](https://npm.mipt.ru/youtrack/articles/SPC-A-3)
|
||||
|
||||
### [Instruments of development](https://npm.mipt.ru/youtrack/articles/SPC-A-5)
|
||||
*curated by [Alexander Nozik](${resolvePageRef("team.index")}#nozik)*
|
||||
|
||||
Actual program: [SPC-A-5](https://npm.mipt.ru/youtrack/articles/SPC-A-5)
|
||||
|
||||
### [Advanced Python](https://npm.mipt.ru/youtrack/articles/SPC-A-4)
|
||||
*by Mikhail Zelenyy*
|
||||
|
4
data/home/content/index.md
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
pageName: SPC
|
||||
language: en
|
||||
---
|
@ -1,22 +1,23 @@
|
||||
|
||||
---
|
||||
type: team
|
||||
title: Varvara Kaplenko
|
||||
id: vviora
|
||||
order: 51
|
||||
language: en
|
||||
image: images/people/vviora.png
|
||||
---
|
||||
|
||||
**Project manager **
|
||||
|
||||
## About me
|
||||
* Astrophysicist, who decided to get closer with programming
|
||||
* I’m in love with science and I want to integrate it in business
|
||||
* Project manager by day, esportsman by night
|
||||
* I believe that gaining soft skills is one of the most crucial things in life
|
||||
|
||||
## Education
|
||||
* Bachelor’s degree in Fundamental Physics
|
||||
* Internship at Astro Space Center of Lebedev Physics Institute
|
||||
---
|
||||
type: team
|
||||
title: Varvara Kaplenko
|
||||
id: vviora
|
||||
order: 51
|
||||
language: en
|
||||
image:
|
||||
path: images/people/vviora.jpg
|
||||
position: left
|
||||
---
|
||||
|
||||
**Project manager**
|
||||
|
||||
## About me
|
||||
* Astrophysicist, who decided to get closer with programming
|
||||
* I’m in love with science, and I want to integrate it in business
|
||||
* Project manager by day, esports player by night
|
||||
* I believe that gaining soft skills is one of the most crucial things in life
|
||||
|
||||
## Education
|
||||
* Bachelor’s degree in Fundamental Physics
|
||||
* Internship at Astro Space Center of Lebedev Physics Institute
|
||||
* Student at MIPT
|
1
data/home/content/people/Kaplenko[info].md
Normal file
@ -0,0 +1 @@
|
||||
**Project manager**
|
@ -9,6 +9,4 @@ image:
|
||||
position: left
|
||||
---
|
||||
|
||||
**Education manager**
|
||||
|
||||
Student at MIPT.
|
||||
**Education manager**
|
@ -1,3 +1,7 @@
|
||||
---
|
||||
language: en
|
||||
---
|
||||
|
||||
**Director of the centre**
|
||||
|
||||
* PhD in particle physics.
|
||||
|
@ -4,6 +4,7 @@ title: Vladimir Palmin
|
||||
id: palmin
|
||||
order: 10
|
||||
language: en
|
||||
published: false
|
||||
image:
|
||||
path: images/people/palmin.jpg
|
||||
position: left
|
||||
|
@ -1 +1,5 @@
|
||||
---
|
||||
language: en
|
||||
---
|
||||
|
||||
**Vice-director for education**
|
@ -9,6 +9,4 @@ image:
|
||||
position: left
|
||||
---
|
||||
|
||||
**Vice-director for research**
|
||||
|
||||
Student at MIPT and Space Research Institute RAS
|
||||
**Vice-director for research**
|
109
data/home/content/projects/bmn.md
Normal file
@ -0,0 +1,109 @@
|
||||
---
|
||||
type: project
|
||||
title: BM@N infrastructure
|
||||
order: 150
|
||||
language: en
|
||||
image: images/projects/bmn/nica.png
|
||||
---
|
||||
## Information Systems for BM@N
|
||||
|
||||
Our team works on development of information systems and services for BM@N (Baryonic Matter at Nuclotron) experiment, part of NICA (Nuclotron-based Ion Collider fAсility) megaproject (located in Dubna, Russia). These works are performed together with scientists from JINR and other institutions.
|
||||
|
||||
The overall view of NICA complex with already running experiment BM@N and future collider experiments MPD and SPD is shown in Fig. 1. BM@N studies collisions of elementary particles and ions with a fixed target with energies up to 6 GeV per nucleon, which is a very interesting energy region for fundamental nuclear physics research.
|
||||
|
||||
<span class="image fit">
|
||||
<strong>Fig. 1</strong>
|
||||
<img src="snark://ref/images/projects/bmn/nica.png" alt="Fig. 1"/>
|
||||
</span>
|
||||
|
||||
### Event Metadata System
|
||||
|
||||
Event metadata systems (EMS) are widely used in the physics experiments on particle collisions, where large numbers of experimental events, typically billions, are collected. At the stage of particular physics analysis of experimental data, only a small subset of collected events meeting certain criteria is usually of interest, and passing over the whole amount of stored data to form the subset is overly time-consuming and resource-intensive. Instead, metadata systems allow one to obtain only the required events (or, at least, references to them) via searching and filtering based on given fields (event attributes) recorded in the metadata system.
|
||||
|
||||
The NICA Event Metadata System has been developed for storing necessary event metadata for the NICA experiments. The information system makes it possible to quickly search for a necessary subset of physics events by required parameters to use in further event data processing. It provides summary description of collision events and their identifiers to search and select events for a desired analysis task, enables their management and convenient access; provides online and offline interfaces for selecting events of interest, such as Web and REST API services, and a dedicated C++/ROOT interface.
|
||||
|
||||
The Event Metadata System, including the Event Catalogue based on PostgreSQL, Metadata API, Web Service, and other developed components, has been provisioned using a common deployment system for the first experiment of the NICA project, BM@N. The main interfaces to EMS, namely, Web UI and REST API have been developed using Kotlin multiplatform technology as a part of the single full-stack project. The EMS provides acceptable response times for the expected amount of the event metadata. The system and its services will be further evolved and improved following operational experience.
|
||||
|
||||
Figs. 2 and 3 illustrate high-level EMS architecture and its basic Web UI view.
|
||||
|
||||
<span class="image fit">
|
||||
<strong>Fig. 2</strong>
|
||||
<img src="snark://ref/images/projects/bmn/ems-arch.png" alt="Fig. 2"/>
|
||||
</span>
|
||||
|
||||
<span class="image fit">
|
||||
<strong>Fig. 3</strong>
|
||||
<img src="snark://ref/images/projects/bmn/ems-web.png" alt="Fig. 3"/>
|
||||
</span>
|
||||
|
||||
### Next-Generation Event Visualization (Event Display) System
|
||||
|
||||
In high-energy physics experiments, the ability to display both detector geometry and particle tracks has become an essential feature, required for physicists to better understand particular collision events as well as to present the physical results to a wider audience.
|
||||
|
||||
For BM@N experiment, a new event visualization solution was developed based on VisionForge, a modern open-source visualization system. An important part of the solution is integration of the system with experiment's software framework BmnRoot, which is a CERN ROOT-based environment.
|
||||
|
||||
|
||||
Figs. 4, 5 illustrate how the Web interface of a new system looks like. The user can conveniently move and rotate the camera, zoom-in and zoom-out the scene as needed, browse the scene graph (object tree). For every object it is possible to change display properties such as color, opacity and visibility. Note that the full BM@N geometry model includes more than 400,000 primitives so rendering them all requires significant resources. To optimize the resource usage, so-called “prototypes” were implemented in VisionForge model for three-dimensional objects. For a single prototype its geometry is rendered only once and reused for multiple objects, which helps to significantly reduce memory usage.
|
||||
|
||||
<span class="image fit">
|
||||
<strong>Fig. 4</strong>
|
||||
<img src="snark://ref/images/projects/bmn/vis-1.png" alt="Fig. 4"/>
|
||||
</span>
|
||||
|
||||
<span class="image fit">
|
||||
<strong>Fig. 5</strong>
|
||||
<img src="snark://ref/images/projects/bmn/vis-2.png" alt="Fig. 5"/>
|
||||
</span>
|
||||
|
||||
### Condition Database Services
|
||||
|
||||
The Unified Condition Database (shortly called UniConDa) of the BM@N experiment is one of the advanced information systems required to support automation of experimental data collecting and processing, providing a central storage for experiment metadata being necessary for event data processing, including session and run information, detector and subsystem parameters, and descriptions of simulated event files.
|
||||
|
||||
The condition database has been earlier implemented based on the PostgreSQL database management system in accordance with a well-designed scheme. An ecosystem of its supplementary services is constantly being improved to increase overall degree of database integration and convenience of the use by collaboration members.
|
||||
|
||||
For the UniConDa ecosystem, the REST API, a modern HTTP-based interface for integration with both ROOT-based and non-ROOT software systems of the experiment, was developed.
|
||||
|
||||
Additionally, Smart Data Parser, a part of the BM@N information system based on the Unified Condition Database, was created to solve the task of the parameter data migration from accumulated files of ASCII text, CSV or XML formats to the Unified Condition Database of the BM@N experiment (Fig. 6).
|
||||
|
||||
<span class="image fit">
|
||||
<strong>Fig. 6</strong>
|
||||
<img src="snark://ref/images/projects/bmn/sdp.png" alt="Fig. 6"/>
|
||||
</span>
|
||||
|
||||
### Monitoring Service
|
||||
|
||||
The software infrastructure of the BM@N experiment contains a set of various information systems that are essential for the work with experimental or simulated data on all processing stages, including the collection, storage, intermediate processing and physics analysis. In case one of such systems stops functioning, the work with BM@N data by collaboration members gets either impossible or, at least, much less productive. Due to this fact, the timely detection of possible failures in the systems due to software or hardware failures is fairly important.
|
||||
|
||||
The developed Monitoring Service is used to check availability and health status of information systems. This includes measuring, storing, visualizing and sending alert notifications on monitored parameters, such as CPU, memory and disk utilization, DBMS functioning parameters, response times of databases and API endpoints, ping round-trip times, and so on. The current implementation of the BM@N monitoring service is illustrated in Figs. 7, 8. Note that a related task of building highly available information services is currently a work in progress.
|
||||
|
||||
<span class="image fit">
|
||||
<strong>Fig. 7</strong>
|
||||
<img src="snark://ref/images/projects/bmn/mon-arch.png" alt="Fig. 7"/>
|
||||
</span>
|
||||
|
||||
<span class="image fit">
|
||||
<strong>Fig. 8</strong>
|
||||
<img src="snark://ref/images/projects/bmn/mon-db.png" alt="Fig. 8"/>
|
||||
</span>
|
||||
|
||||
|
||||
### Slow Control System Viewer
|
||||
|
||||
Web interface for slow control system of BM@N was developed. It visualizes various sensor data graphs based on parameters and time intervals provided by user as shown in Fig. 9.
|
||||
|
||||
<span class="image fit">
|
||||
<strong>Fig. 9</strong>
|
||||
<img src="snark://ref/images/projects/bmn/scs.png" alt="Fig. 9"/>
|
||||
</span>
|
||||
|
||||
### References
|
||||
|
||||
1. K. Gertsenberger, P. Klimai, M. Zelenyi. Auxiliary Services for the Condition Database of the BM@N Experiment at NICA // Phys.Part.Nucl.Lett. 20 (2023) 1217. https://www.doi.org/10.1134/S1547477123050291
|
||||
2. E. Alexandrov, I. Alexandrov, A. Chebotov, A. Degtyarev, I. Filozova, K. Gertsenberger, P. Klimai, A. Yakovlev. Implementation of the Event Metadata System for physics analysis in the NICA experiments // Journal of Physics: Conference Series 2438 (2023) 012046. https://www.doi.org/10.1088/1742-6596/2438/1/012046
|
||||
2. A. Degtyarev, K. Gertsenberger, P. Klimai. Usage of Apache Cassandra for Prototyping the Event Metadata System of the NICA Experiments // Phys.Part.Nucl.Lett. 19 (2022) 5, 562-565. https://doi.org/10.1134/S1547477122050144
|
||||
3. A. Chebotov, K. Gertsenberger, P. Klimai, A. Moshkin. Information System Based on the Condition Database for the NICA Experiments, User WEB Application, and Related Services // Phys.Part.Nucl.Lett. 19 (2022) 5, 558-561. https://doi.org/10.1134/S1547477122050132
|
||||
4. E. Alexandrov, I. Alexandrov, A. Degtyarev, K. Gertsenberger, I. Filozova, P. Klimai, A. Nozik, A. Yakovlev. Design of the Event Metadata System for the Experiments at NICA // Phys.Part.Nucl.Lett. 18 (2021) 5, 603-616. https://doi.org/10.1134/S1547477121050034
|
||||
5. K. Gertsenberger, I. Alexandrov, I. Filozova, E. Alexandrov, A. Moshkin, A. Chebotov, M. Mineev, D. Pryahina, G. Shestakova, A. Yakovlev, A. Nozik, P. Klimai. Development of Information Systems for Online and Offline Data Processing in the NICA Experiments // Phys.Part.Nucl. 52 (2021) 4, 801-807. https://doi.org/10.1134/S1063779621040250
|
||||
6. K.V. Gertsenberger, A.I. Chebotov, P.A. Klimai, I.N. Alexandrov, E.I. Alexandrov, I.A. Filozova, A.A. Moshkin. Implementation of the Condition Database for the Experiments of the NICA Complex // CEUR Workshop Proceedings, Vol. 3041 (2021) 128-132. https://doi.org/10.54546/MLIT.2021.53.54.001
|
||||
7. E.I. Alexandrov, I.N. Alexandrov, A.G. Degtyarev, I.A. Filozova, K.V. Gertsenberger, P.A. Klimai, A.V. Yakovlev. Development of the Event Metadata System for the NICA experiments // CEUR Workshop Proceedings, Vol. 3041 (2021) 439-444. https://doi.org/10.54546/MLIT.2021.80.18.001
|
||||
8. M.N.Kapishin et al, The Report on Project “Studies of Baryonic Matter at the Nuclotron (BM@N)”, https://bmn.jinr.ru/wp-content/uploads/2022/10/BMNproject_2021cor2.pdf
|
5
data/home/content/projects/bmn[info].md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
language: en
|
||||
---
|
||||
|
||||
Our team works on development of information systems and services for BM@N (Baryonic Matter at Nuclotron) experiment, part of NICA (Nuclotron-based Ion Collider fAсility) megaproject (located in Dubna, Russia). These works are performed together with scientists from JINR and other institutions.
|
@ -1,3 +1,7 @@
|
||||
---
|
||||
language: en
|
||||
---
|
||||
|
||||
Controls.kt is a data acquisition framework (work in progress). It is based on DataForge, a software framework for automated data processing.
|
||||
|
||||
[Repository and documentation](https://github.com/mipt-npm/controls.kt)
|
@ -21,7 +21,7 @@ A presentation on application of (old version of) DataForge to Troitsk nu-mass a
|
||||
<iframe width="100%" height="315" src="https://www.youtube.com/embed/OpWzLXUZnLI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
|
||||
## Questions and Answers
|
||||
In this section we will try to cover DataForge main ideas in the form of questions and answers.
|
||||
In this section, we will try to cover DataForge main ideas in the form of questions and answers.
|
||||
|
||||
### General
|
||||
**Q**: I have a lot of data to analyze. The analysis process is complicated, requires a lot of stages and data flow is not always obvious. To top it the data size is huge, so I don't want to perform operation I don't need (calculate something I won't need or calculate something twice). And yes, I need it to be performed in parallel and probably on remote computer. By the way, I am sick and tired of scripts that modify other scripts that control scripts. Could you help me?
|
||||
|
@ -1,3 +1,7 @@
|
||||
---
|
||||
language: en
|
||||
---
|
||||
|
||||
A metadata processing workflow manipulation framework.
|
||||
|
||||
[Repository and documentation](https://github.com/mipt-npm/dataforge-core)
|
@ -1,3 +1,7 @@
|
||||
---
|
||||
language: en
|
||||
---
|
||||
|
||||
An experimental Kotlin library for mathematical operations, built on the principle of context-oriented programming using mathematical abstractions.
|
||||
|
||||
[Repository and documentation](https://github.com/mipt-npm/kmath)
|
||||
|
@ -1 +1,5 @@
|
||||
---
|
||||
language: en
|
||||
---
|
||||
|
||||
Geological gas storage monitoring and leaks prevention using muons from atmosphere.
|
@ -1,3 +1,7 @@
|
||||
---
|
||||
language: en
|
||||
---
|
||||
|
||||
A kotlin visualization library wrapping popular [Plotly](https://plotly.com/javascript/) library.
|
||||
|
||||
[Repository and documentation](https://github.com/mipt-npm/plotly.kt)
|
@ -1,3 +1,7 @@
|
||||
---
|
||||
language: en
|
||||
---
|
||||
|
||||
A visualization framework written in Kotlin-multiplatform
|
||||
|
||||
[Repository and documentation](https://github.com/mipt-npm/visionforge)
|
@ -4,4 +4,4 @@ title: WIP
|
||||
language: en
|
||||
---
|
||||
|
||||
This page is work in progress.
|
||||
This page is a work in progress.
|
||||
|
308
data/home/images/SPC-logo-with-text-nobkg.svg
Normal file
@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
width="250"
|
||||
height="80"
|
||||
viewBox="0 0 250 79.999999"
|
||||
sodipodi:docname="SPC-logo-with-text-nobkg.svg"
|
||||
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<defs
|
||||
id="defs6">
|
||||
<clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath24">
|
||||
<path
|
||||
d="M 0,112.625 H 238.625 V 0 H 0 Z"
|
||||
id="path22" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="namedview4"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.9193297"
|
||||
inkscape:cx="147.60177"
|
||||
inkscape:cy="75.1404"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1009"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g10"
|
||||
inkscape:export-bgcolor="#212f45ff">
|
||||
<inkscape:page
|
||||
x="0"
|
||||
y="0"
|
||||
id="page8"
|
||||
width="250"
|
||||
height="80"
|
||||
margin="0"
|
||||
bleed="0" />
|
||||
</sodipodi:namedview>
|
||||
<g
|
||||
id="g10"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Page 1"
|
||||
transform="matrix(1.3333333,0,0,-1.3333333,0,150.16667)">
|
||||
<g
|
||||
id="g2489"
|
||||
transform="translate(-25.177948,26.312454)">
|
||||
<g
|
||||
id="g14"
|
||||
transform="translate(38.4082,52.0439)">
|
||||
<path
|
||||
d="M 0,0 -4.475,4.475 0,8.95 4.475,4.475 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path16" />
|
||||
</g>
|
||||
<g
|
||||
id="g18">
|
||||
<g
|
||||
id="g20"
|
||||
clip-path="url(#clipPath24)">
|
||||
<g
|
||||
id="g26"
|
||||
transform="translate(60.7817,56.5186)">
|
||||
<path
|
||||
d="m 0,0 -4.475,4.475 v 0 l -4.474,4.475 -4.475,4.474 c -2.472,2.472 -6.478,2.472 -8.95,0 L -17.899,8.95 -13.424,4.475 -8.949,0 v 0 l -4.475,-4.475 -4.475,-4.474 -4.475,-4.475 c 2.472,-2.472 6.478,-2.472 8.95,0 l 4.475,4.475 4.474,4.474 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path28" />
|
||||
</g>
|
||||
<g
|
||||
id="g30"
|
||||
transform="translate(124.0625,59.6826)">
|
||||
<path
|
||||
d="m 0,0 v 6.328 h 6.328 6.328 v 6.328 H 6.328 0 c -3.495,0 -6.328,-2.833 -6.328,-6.328 V 0 -6.328 -12.656 -18.984 H 0 6.328 c 3.495,0 6.328,2.833 6.328,6.328 H 6.328 0 v 6.328 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path32" />
|
||||
</g>
|
||||
<path
|
||||
d="m 105.079,59.683 h -6.328 v 6.328 h 6.328 z m 0,12.656 H 98.75 c -3.495,0 -6.328,-2.833 -6.328,-6.328 v -6.328 -6.329 -6.328 -6.328 h 6.328 v 6.328 6.328 h 6.329 c 3.494,0 6.328,2.834 6.328,6.329 v 6.328 6.328 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path34" />
|
||||
<g
|
||||
id="g36"
|
||||
transform="translate(79.7661,66.0107)">
|
||||
<path
|
||||
d="M 0,0 H 6.328 V 6.328 H 0 -6.328 c -3.495,0 -6.328,-2.833 -6.328,-6.328 v -6.328 -6.328 H -6.328 0 v -6.328 h -6.328 -6.328 v -6.328 H -6.328 0 c 3.495,0 6.328,2.833 6.328,6.328 v 6.328 6.328 H 0 -6.328 V 0 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path38" />
|
||||
</g>
|
||||
<g
|
||||
id="g40"
|
||||
transform="translate(147.3701,64.8877)">
|
||||
<path
|
||||
d="m 0,0 c -1.107,0 -1.982,0.362 -2.624,1.087 l 0.502,0.645 c 0.581,-0.649 1.298,-0.973 2.152,-0.973 0.554,0 0.96,0.118 1.22,0.353 0.26,0.237 0.39,0.511 0.39,0.825 0,0.24 -0.076,0.442 -0.226,0.605 C 1.264,2.706 1.071,2.835 0.835,2.927 0.6,3.02 0.336,3.103 0.046,3.178 c -0.29,0.075 -0.579,0.159 -0.866,0.251 -0.287,0.092 -0.549,0.204 -0.784,0.334 -0.236,0.129 -0.429,0.313 -0.58,0.552 -0.15,0.24 -0.225,0.524 -0.225,0.852 0,0.56 0.221,1.016 0.666,1.368 0.444,0.352 1.005,0.528 1.681,0.528 1.018,0 1.829,-0.318 2.43,-0.954 L 1.855,5.484 c -0.499,0.547 -1.158,0.821 -1.978,0.821 -0.41,0 -0.747,-0.102 -1.01,-0.303 -0.263,-0.201 -0.394,-0.463 -0.394,-0.784 0,-0.239 0.1,-0.438 0.301,-0.595 C -1.023,4.466 -0.774,4.35 -0.477,4.274 -0.18,4.199 0.145,4.105 0.497,3.993 0.849,3.88 1.174,3.761 1.471,3.634 1.768,3.508 2.018,3.305 2.219,3.024 2.421,2.744 2.521,2.405 2.521,2.01 2.521,1.449 2.314,0.974 1.901,0.585 1.487,0.195 0.854,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path42" />
|
||||
</g>
|
||||
<g
|
||||
id="g44"
|
||||
transform="translate(153.3154,64.8877)">
|
||||
<path
|
||||
d="m 0,0 c -0.731,0 -1.326,0.248 -1.784,0.743 -0.458,0.496 -0.687,1.116 -0.687,1.861 0,0.745 0.229,1.364 0.687,1.855 0.458,0.492 1.053,0.738 1.784,0.738 0.765,0 1.37,-0.287 1.814,-0.861 L 1.302,3.865 c -0.315,0.43 -0.735,0.646 -1.261,0.646 -0.52,0 -0.935,-0.178 -1.246,-0.533 -0.311,-0.356 -0.466,-0.814 -0.466,-1.374 0,-0.56 0.155,-1.02 0.466,-1.378 0.311,-0.36 0.726,-0.539 1.246,-0.539 0.52,0 0.939,0.215 1.261,0.646 L 1.814,0.861 C 1.37,0.287 0.765,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path46" />
|
||||
</g>
|
||||
<path
|
||||
d="m 156.975,65.011 h -0.769 v 4.951 h 0.769 z m -0.39,5.658 c -0.137,0 -0.256,0.05 -0.358,0.149 -0.103,0.099 -0.154,0.22 -0.154,0.364 0,0.143 0.051,0.266 0.154,0.369 0.102,0.102 0.221,0.154 0.358,0.154 0.144,0 0.267,-0.052 0.369,-0.154 0.103,-0.103 0.154,-0.226 0.154,-0.369 0,-0.144 -0.051,-0.265 -0.154,-0.364 -0.102,-0.099 -0.225,-0.149 -0.369,-0.149"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path48" />
|
||||
<g
|
||||
id="g50"
|
||||
transform="translate(162.2842,67.7988)">
|
||||
<path
|
||||
d="M 0,0 C -0.007,0.424 -0.15,0.805 -0.431,1.144 -0.711,1.481 -1.11,1.65 -1.63,1.65 -2.122,1.65 -2.51,1.483 -2.793,1.148 -3.077,0.813 -3.229,0.431 -3.249,0 Z m -1.537,-2.911 c -0.738,0 -1.343,0.241 -1.815,0.723 -0.471,0.482 -0.707,1.109 -0.707,1.88 0,0.725 0.232,1.338 0.697,1.841 0.465,0.502 1.046,0.753 1.743,0.753 0.731,0 1.31,-0.251 1.737,-0.753 C 0.545,1.03 0.759,0.396 0.759,-0.369 v -0.194 h -4.008 c 0.034,-0.486 0.212,-0.892 0.533,-1.22 0.321,-0.328 0.737,-0.492 1.25,-0.492 0.615,0 1.124,0.208 1.528,0.625 l 0.369,-0.502 c -0.506,-0.506 -1.162,-0.759 -1.968,-0.759"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path52" />
|
||||
</g>
|
||||
<g
|
||||
id="g54"
|
||||
transform="translate(168.3936,65.0107)">
|
||||
<path
|
||||
d="m 0,0 h -0.769 v 3.239 c 0,0.417 -0.095,0.713 -0.287,0.887 -0.191,0.175 -0.465,0.262 -0.82,0.262 -0.287,0 -0.565,-0.076 -0.835,-0.226 -0.27,-0.15 -0.48,-0.332 -0.631,-0.543 V 0 H -4.11 v 4.951 h 0.768 V 4.233 c 0.192,0.226 0.448,0.422 0.77,0.59 0.32,0.167 0.652,0.251 0.994,0.251 C -0.526,5.074 0,4.541 0,3.476 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path56" />
|
||||
</g>
|
||||
<g
|
||||
id="g58"
|
||||
transform="translate(171.1826,64.8877)">
|
||||
<path
|
||||
d="m 0,0 c -0.362,0 -0.636,0.1 -0.82,0.298 -0.185,0.198 -0.278,0.484 -0.278,0.86 v 3.239 h -0.819 v 0.677 h 0.819 v 1.354 h 0.77 V 5.074 H 0.676 V 4.397 H -0.328 V 1.322 c 0,-0.191 0.042,-0.344 0.128,-0.461 0.085,-0.116 0.21,-0.174 0.374,-0.174 0.225,0 0.399,0.068 0.522,0.206 L 0.922,0.318 C 0.696,0.106 0.389,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path60" />
|
||||
</g>
|
||||
<path
|
||||
d="m 173.714,65.011 h -0.769 v 4.951 h 0.769 z m -0.39,5.658 c -0.137,0 -0.257,0.05 -0.358,0.149 -0.103,0.099 -0.154,0.22 -0.154,0.364 0,0.143 0.051,0.266 0.154,0.369 0.101,0.102 0.221,0.154 0.358,0.154 0.144,0 0.267,-0.052 0.369,-0.154 0.103,-0.103 0.154,-0.226 0.154,-0.369 0,-0.144 -0.051,-0.265 -0.154,-0.364 -0.102,-0.099 -0.225,-0.149 -0.369,-0.149"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path62" />
|
||||
<g
|
||||
id="g64"
|
||||
transform="translate(176.2354,65.0107)">
|
||||
<path
|
||||
d="m 0,0 h -0.769 v 4.274 h -0.82 v 0.677 h 0.82 v 0.38 c 0,0.505 0.128,0.899 0.385,1.184 0.256,0.283 0.607,0.425 1.05,0.425 0.424,0 0.772,-0.127 1.046,-0.379 L 1.395,6.059 C 1.21,6.223 1.005,6.305 0.779,6.305 0.526,6.305 0.333,6.221 0.2,6.054 0.066,5.886 0,5.645 0,5.331 V 4.951 H 1.005 V 4.274 H 0 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path66" />
|
||||
</g>
|
||||
<path
|
||||
d="m 178.921,65.011 h -0.769 v 4.951 h 0.769 z m -0.39,5.658 c -0.136,0 -0.256,0.05 -0.358,0.149 -0.103,0.099 -0.153,0.22 -0.153,0.364 0,0.143 0.05,0.266 0.153,0.369 0.102,0.102 0.222,0.154 0.358,0.154 0.144,0 0.267,-0.052 0.369,-0.154 0.103,-0.103 0.155,-0.226 0.155,-0.369 0,-0.144 -0.052,-0.265 -0.155,-0.364 -0.102,-0.099 -0.225,-0.149 -0.369,-0.149"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path68" />
|
||||
<g
|
||||
id="g70"
|
||||
transform="translate(182.6416,64.8877)">
|
||||
<path
|
||||
d="m 0,0 c -0.731,0 -1.325,0.248 -1.783,0.743 -0.458,0.496 -0.687,1.116 -0.687,1.861 0,0.745 0.229,1.364 0.687,1.855 0.458,0.492 1.052,0.738 1.783,0.738 0.766,0 1.37,-0.287 1.814,-0.861 L 1.302,3.865 c -0.315,0.43 -0.735,0.646 -1.261,0.646 -0.52,0 -0.935,-0.178 -1.245,-0.533 -0.312,-0.356 -0.467,-0.814 -0.467,-1.374 0,-0.56 0.155,-1.02 0.467,-1.378 0.31,-0.36 0.725,-0.539 1.245,-0.539 0.52,0 0.939,0.215 1.261,0.646 L 1.814,0.861 C 1.37,0.287 0.766,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path72" />
|
||||
</g>
|
||||
<g
|
||||
id="g74"
|
||||
transform="translate(147.8008,56.1855)">
|
||||
<path
|
||||
d="m 0,0 c 0.402,0 0.73,0.121 0.983,0.363 0.253,0.243 0.38,0.556 0.38,0.939 0,0.383 -0.127,0.695 -0.38,0.937 C 0.73,2.482 0.402,2.604 0,2.604 H -1.794 V 0 Z M -1.794,-3.476 H -2.646 V 3.362 H 0.103 C 0.765,3.362 1.288,3.164 1.671,2.768 2.053,2.371 2.244,1.882 2.244,1.302 2.244,0.721 2.052,0.231 1.665,-0.164 1.279,-0.561 0.758,-0.759 0.103,-0.759 h -1.897 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path76" />
|
||||
</g>
|
||||
<g
|
||||
id="g78"
|
||||
transform="translate(151.9111,52.71)">
|
||||
<path
|
||||
d="M 0,0 H -0.769 V 4.951 H 0 v -0.8 C 0.458,4.753 1.008,5.054 1.65,5.054 V 4.265 C 1.555,4.285 1.452,4.295 1.343,4.295 1.11,4.295 0.857,4.213 0.584,4.049 0.311,3.886 0.116,3.704 0,3.506 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path80" />
|
||||
</g>
|
||||
<g
|
||||
id="g82"
|
||||
transform="translate(155.4834,53.833)">
|
||||
<path
|
||||
d="m 0,0 c 0.297,-0.373 0.698,-0.559 1.204,-0.559 0.506,0 0.905,0.186 1.199,0.559 0.294,0.372 0.442,0.825 0.442,1.357 0,0.534 -0.148,0.985 -0.442,1.354 C 2.109,3.08 1.71,3.265 1.204,3.265 0.698,3.265 0.297,3.078 0,2.706 -0.297,2.333 -0.446,1.884 -0.446,1.357 -0.446,0.825 -0.297,0.372 0,0 M 2.983,-0.497 C 2.535,-0.996 1.942,-1.246 1.204,-1.246 c -0.737,0 -1.331,0.25 -1.778,0.749 -0.447,0.498 -0.671,1.117 -0.671,1.854 0,0.739 0.224,1.356 0.671,1.851 0.447,0.495 1.041,0.743 1.778,0.743 0.738,0 1.331,-0.248 1.779,-0.743 C 3.431,2.713 3.654,2.096 3.654,1.357 3.654,0.62 3.431,0.001 2.983,-0.497"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path84" />
|
||||
</g>
|
||||
<g
|
||||
id="g86"
|
||||
transform="translate(162.4893,53.3252)">
|
||||
<path
|
||||
d="M 0,0 C 0.294,0 0.579,0.078 0.856,0.235 1.133,0.393 1.34,0.584 1.477,0.81 V 2.973 C 1.34,3.198 1.135,3.388 0.861,3.542 0.588,3.695 0.301,3.772 0,3.772 -0.492,3.772 -0.88,3.598 -1.163,3.25 -1.447,2.901 -1.589,2.446 -1.589,1.886 -1.589,1.333 -1.445,0.88 -1.158,0.528 -0.871,0.176 -0.485,0 0,0 m -0.112,-2.624 c -0.438,0 -0.81,0.053 -1.117,0.159 -0.308,0.106 -0.602,0.299 -0.882,0.579 l 0.389,0.574 c 0.376,-0.451 0.912,-0.676 1.61,-0.676 0.458,0 0.837,0.121 1.137,0.363 0.301,0.243 0.452,0.617 0.452,1.123 V 0.205 C 1.292,-0.055 1.053,-0.267 0.759,-0.431 0.465,-0.595 0.15,-0.677 -0.185,-0.677 c -0.655,0 -1.187,0.231 -1.593,0.693 -0.407,0.461 -0.61,1.085 -0.61,1.87 0,0.786 0.203,1.411 0.61,1.876 0.406,0.465 0.938,0.697 1.593,0.697 0.677,0 1.231,-0.29 1.662,-0.871 V 4.336 H 2.245 V -0.472 C 2.245,-1.23 2.023,-1.778 1.579,-2.117 1.135,-2.455 0.571,-2.624 -0.112,-2.624"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path88" />
|
||||
</g>
|
||||
<g
|
||||
id="g90"
|
||||
transform="translate(167.041,52.71)">
|
||||
<path
|
||||
d="M 0,0 H -0.769 V 4.951 H 0 v -0.8 C 0.458,4.753 1.008,5.054 1.65,5.054 V 4.265 C 1.555,4.285 1.452,4.295 1.343,4.295 1.11,4.295 0.857,4.213 0.584,4.049 0.311,3.886 0.116,3.704 0,3.506 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path92" />
|
||||
</g>
|
||||
<g
|
||||
id="g94"
|
||||
transform="translate(171.3867,53.1406)">
|
||||
<path
|
||||
d="M 0,0 C 0.615,0 1.069,0.205 1.363,0.615 V 1.548 C 1.069,1.958 0.615,2.163 0,2.163 -0.355,2.163 -0.647,2.063 -0.877,1.86 -1.105,1.659 -1.22,1.397 -1.22,1.076 -1.22,0.762 -1.105,0.504 -0.877,0.303 -0.647,0.101 -0.355,0 0,0 M 2.132,-0.431 H 1.363 v 0.565 c -0.417,-0.458 -0.964,-0.688 -1.639,-0.688 -0.458,0 -0.862,0.148 -1.21,0.442 -0.349,0.293 -0.523,0.693 -0.523,1.199 0,0.518 0.172,0.921 0.518,1.204 0.345,0.283 0.75,0.426 1.215,0.426 0.703,0 1.25,-0.226 1.639,-0.677 V 2.932 C 1.363,3.26 1.247,3.517 1.015,3.7 0.782,3.885 0.481,3.978 0.112,3.978 c -0.58,0 -1.086,-0.23 -1.516,-0.687 l -0.359,0.532 c 0.526,0.547 1.186,0.821 1.978,0.821 0.567,0 1.029,-0.137 1.384,-0.411 C 1.954,3.96 2.132,3.54 2.132,2.973 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path96" />
|
||||
</g>
|
||||
<g
|
||||
id="g98"
|
||||
transform="translate(181.8018,52.71)">
|
||||
<path
|
||||
d="m 0,0 h -0.769 v 3.362 c 0,0.684 -0.304,1.026 -0.913,1.026 -0.246,0 -0.491,-0.076 -0.737,-0.226 C -2.665,4.012 -2.856,3.834 -2.993,3.629 V 0 h -0.769 v 3.362 c 0,0.684 -0.304,1.026 -0.913,1.026 -0.239,0 -0.479,-0.076 -0.722,-0.226 C -5.64,4.012 -5.833,3.83 -5.977,3.619 V 0 h -0.768 v 4.951 h 0.768 V 4.233 c 0.123,0.192 0.339,0.38 0.647,0.565 0.307,0.184 0.625,0.276 0.953,0.276 0.362,0 0.656,-0.085 0.881,-0.256 0.225,-0.171 0.376,-0.393 0.451,-0.667 0.15,0.246 0.38,0.462 0.688,0.647 0.307,0.184 0.631,0.276 0.973,0.276 C -0.461,5.074 0,4.575 0,3.578 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path100" />
|
||||
</g>
|
||||
<g
|
||||
id="g102"
|
||||
transform="translate(190.084,52.71)">
|
||||
<path
|
||||
d="m 0,0 h -0.769 v 3.362 c 0,0.684 -0.304,1.026 -0.913,1.026 -0.246,0 -0.491,-0.076 -0.737,-0.226 C -2.665,4.012 -2.856,3.834 -2.993,3.629 V 0 h -0.769 v 3.362 c 0,0.684 -0.304,1.026 -0.913,1.026 -0.239,0 -0.479,-0.076 -0.722,-0.226 C -5.64,4.012 -5.833,3.83 -5.977,3.619 V 0 h -0.768 v 4.951 h 0.768 V 4.233 c 0.123,0.192 0.339,0.38 0.647,0.565 0.307,0.184 0.625,0.276 0.953,0.276 0.362,0 0.656,-0.085 0.881,-0.256 0.225,-0.171 0.376,-0.393 0.451,-0.667 0.15,0.246 0.38,0.462 0.688,0.647 0.307,0.184 0.631,0.276 0.973,0.276 C -0.461,5.074 0,4.575 0,3.578 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path104" />
|
||||
</g>
|
||||
<path
|
||||
d="m 192.391,52.71 h -0.769 v 4.951 h 0.769 z m -0.39,5.658 c -0.137,0 -0.257,0.05 -0.358,0.15 -0.103,0.098 -0.155,0.219 -0.155,0.363 0,0.143 0.052,0.266 0.155,0.369 0.101,0.103 0.221,0.154 0.358,0.154 0.144,0 0.267,-0.051 0.369,-0.154 0.103,-0.103 0.153,-0.226 0.153,-0.369 0,-0.144 -0.05,-0.265 -0.153,-0.363 -0.102,-0.1 -0.225,-0.15 -0.369,-0.15"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path106" />
|
||||
<g
|
||||
id="g108"
|
||||
transform="translate(198.0391,52.71)">
|
||||
<path
|
||||
d="m 0,0 h -0.77 v 3.239 c 0,0.417 -0.095,0.713 -0.286,0.887 -0.191,0.175 -0.465,0.262 -0.82,0.262 -0.287,0 -0.565,-0.076 -0.836,-0.226 C -2.981,4.012 -3.191,3.83 -3.342,3.619 V 0 H -4.11 v 4.951 h 0.768 V 4.233 c 0.192,0.226 0.447,0.422 0.769,0.59 0.321,0.167 0.652,0.251 0.994,0.251 C -0.526,5.074 0,4.541 0,3.476 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path110" />
|
||||
</g>
|
||||
<g
|
||||
id="g112"
|
||||
transform="translate(201.6777,53.3252)">
|
||||
<path
|
||||
d="M 0,0 C 0.294,0 0.579,0.078 0.855,0.235 1.133,0.393 1.339,0.584 1.476,0.81 V 2.973 C 1.339,3.198 1.134,3.388 0.861,3.542 0.588,3.695 0.301,3.772 0,3.772 -0.492,3.772 -0.88,3.598 -1.164,3.25 -1.447,2.901 -1.589,2.446 -1.589,1.886 -1.589,1.333 -1.445,0.88 -1.158,0.528 -0.871,0.176 -0.485,0 0,0 m -0.113,-2.624 c -0.438,0 -0.81,0.053 -1.117,0.159 -0.308,0.106 -0.602,0.299 -0.881,0.579 l 0.388,0.574 c 0.376,-0.451 0.913,-0.676 1.61,-0.676 0.458,0 0.838,0.121 1.138,0.363 0.3,0.243 0.451,0.617 0.451,1.123 V 0.205 C 1.291,-0.055 1.052,-0.267 0.759,-0.431 0.465,-0.595 0.15,-0.677 -0.185,-0.677 c -0.656,0 -1.187,0.231 -1.593,0.693 -0.408,0.461 -0.611,1.085 -0.611,1.87 0,0.786 0.203,1.411 0.611,1.876 0.406,0.465 0.937,0.697 1.593,0.697 0.677,0 1.231,-0.29 1.661,-0.871 V 4.336 H 2.245 V -0.472 C 2.245,-1.23 2.022,-1.778 1.578,-2.117 1.134,-2.455 0.57,-2.624 -0.113,-2.624"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path114" />
|
||||
</g>
|
||||
<g
|
||||
id="g116"
|
||||
transform="translate(148.3945,40.2861)">
|
||||
<path
|
||||
d="m 0,0 c -0.997,0 -1.833,0.33 -2.506,0.989 -0.673,0.659 -1.01,1.509 -1.01,2.548 0,1.038 0.337,1.888 1.01,2.547 0.673,0.659 1.509,0.989 2.506,0.989 1.094,0 1.958,-0.451 2.594,-1.353 L 1.876,5.32 C 1.678,5.614 1.411,5.854 1.077,6.038 0.742,6.223 0.383,6.314 0,6.314 -0.751,6.314 -1.378,6.054 -1.881,5.53 -2.383,5.008 -2.634,4.343 -2.634,3.537 -2.634,2.73 -2.383,2.065 -1.881,1.543 -1.378,1.021 -0.751,0.759 0,0.759 0.383,0.759 0.742,0.85 1.077,1.03 1.411,1.212 1.678,1.452 1.876,1.753 L 2.604,1.354 C 1.941,0.451 1.073,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path118" />
|
||||
</g>
|
||||
<g
|
||||
id="g120"
|
||||
transform="translate(155.8262,43.1973)">
|
||||
<path
|
||||
d="M 0,0 C -0.007,0.424 -0.15,0.805 -0.431,1.144 -0.711,1.481 -1.11,1.65 -1.63,1.65 -2.122,1.65 -2.51,1.483 -2.793,1.148 -3.077,0.813 -3.229,0.431 -3.249,0 Z m -1.537,-2.911 c -0.738,0 -1.343,0.241 -1.815,0.723 -0.471,0.482 -0.707,1.109 -0.707,1.88 0,0.725 0.232,1.338 0.697,1.841 0.465,0.502 1.046,0.753 1.743,0.753 0.731,0 1.31,-0.251 1.737,-0.753 C 0.545,1.03 0.759,0.396 0.759,-0.369 v -0.194 h -4.008 c 0.034,-0.486 0.212,-0.892 0.533,-1.22 0.321,-0.328 0.737,-0.492 1.25,-0.492 0.615,0 1.124,0.208 1.528,0.625 l 0.369,-0.502 c -0.506,-0.506 -1.162,-0.759 -1.968,-0.759"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path122" />
|
||||
</g>
|
||||
<g
|
||||
id="g124"
|
||||
transform="translate(161.9365,40.4092)">
|
||||
<path
|
||||
d="m 0,0 h -0.77 v 3.239 c 0,0.417 -0.095,0.713 -0.286,0.887 -0.191,0.175 -0.465,0.262 -0.82,0.262 -0.287,0 -0.565,-0.076 -0.836,-0.226 C -2.981,4.012 -3.191,3.83 -3.342,3.619 V 0 H -4.11 v 4.951 h 0.768 V 4.233 c 0.192,0.226 0.447,0.422 0.769,0.59 0.321,0.167 0.652,0.251 0.994,0.251 C -0.526,5.074 0,4.541 0,3.476 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path126" />
|
||||
</g>
|
||||
<g
|
||||
id="g128"
|
||||
transform="translate(164.7246,40.2861)">
|
||||
<path
|
||||
d="m 0,0 c -0.362,0 -0.636,0.1 -0.82,0.298 -0.185,0.198 -0.278,0.484 -0.278,0.86 v 3.239 h -0.819 v 0.677 h 0.819 v 1.354 h 0.77 V 5.074 H 0.676 V 4.397 H -0.328 V 1.322 c 0,-0.191 0.042,-0.344 0.128,-0.461 0.085,-0.116 0.21,-0.174 0.374,-0.174 0.225,0 0.399,0.068 0.522,0.206 L 0.922,0.318 C 0.696,0.106 0.389,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path130" />
|
||||
</g>
|
||||
<g
|
||||
id="g132"
|
||||
transform="translate(167.2559,40.4092)">
|
||||
<path
|
||||
d="M 0,0 H -0.769 V 4.951 H 0 v -0.8 C 0.458,4.753 1.008,5.054 1.65,5.054 V 4.265 C 1.555,4.285 1.452,4.295 1.343,4.295 1.11,4.295 0.857,4.213 0.585,4.049 0.312,3.886 0.116,3.704 0,3.506 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path134" />
|
||||
</g>
|
||||
<g
|
||||
id="g136"
|
||||
transform="translate(173.6416,43.1973)">
|
||||
<path
|
||||
d="M 0,0 C -0.007,0.424 -0.15,0.805 -0.431,1.144 -0.711,1.481 -1.11,1.65 -1.63,1.65 -2.122,1.65 -2.51,1.483 -2.793,1.148 -3.077,0.813 -3.229,0.431 -3.249,0 Z m -1.537,-2.911 c -0.738,0 -1.343,0.241 -1.815,0.723 -0.471,0.482 -0.707,1.109 -0.707,1.88 0,0.725 0.232,1.338 0.697,1.841 0.465,0.502 1.046,0.753 1.743,0.753 0.731,0 1.31,-0.251 1.737,-0.753 C 0.545,1.03 0.759,0.396 0.759,-0.369 v -0.194 h -4.008 c 0.034,-0.486 0.212,-0.892 0.533,-1.22 0.321,-0.328 0.737,-0.492 1.25,-0.492 0.615,0 1.124,0.208 1.528,0.625 l 0.369,-0.502 c -0.506,-0.506 -1.162,-0.759 -1.968,-0.759"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path138" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 22 KiB |
309
data/home/images/SPC-logo-with-text.svg
Normal file
@ -0,0 +1,309 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
width="250"
|
||||
height="80"
|
||||
viewBox="0 0 250 79.999999"
|
||||
sodipodi:docname="Лого.svg"
|
||||
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<defs
|
||||
id="defs6">
|
||||
<clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath24">
|
||||
<path
|
||||
d="M 0,112.625 H 238.625 V 0 H 0 Z"
|
||||
id="path22" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="namedview4"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.9193297"
|
||||
inkscape:cx="147.72934"
|
||||
inkscape:cy="75.012827"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1009"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g10">
|
||||
<inkscape:page
|
||||
x="0"
|
||||
y="0"
|
||||
id="page8"
|
||||
width="250"
|
||||
height="80" />
|
||||
</sodipodi:namedview>
|
||||
<g
|
||||
id="g10"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Page 1"
|
||||
transform="matrix(1.3333333,0,0,-1.3333333,0,150.16667)">
|
||||
<path
|
||||
d="M 0,52.623796 H 187.53208 V 112.625 H 0 Z"
|
||||
style="fill:#212f45;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.647057"
|
||||
id="path12" />
|
||||
<g
|
||||
id="g2489"
|
||||
transform="translate(-25.177948,26.312454)">
|
||||
<g
|
||||
id="g14"
|
||||
transform="translate(38.4082,52.0439)">
|
||||
<path
|
||||
d="M 0,0 -4.475,4.475 0,8.95 4.475,4.475 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path16" />
|
||||
</g>
|
||||
<g
|
||||
id="g18">
|
||||
<g
|
||||
id="g20"
|
||||
clip-path="url(#clipPath24)">
|
||||
<g
|
||||
id="g26"
|
||||
transform="translate(60.7817,56.5186)">
|
||||
<path
|
||||
d="m 0,0 -4.475,4.475 v 0 l -4.474,4.475 -4.475,4.474 c -2.472,2.472 -6.478,2.472 -8.95,0 L -17.899,8.95 -13.424,4.475 -8.949,0 v 0 l -4.475,-4.475 -4.475,-4.474 -4.475,-4.475 c 2.472,-2.472 6.478,-2.472 8.95,0 l 4.475,4.475 4.474,4.474 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path28" />
|
||||
</g>
|
||||
<g
|
||||
id="g30"
|
||||
transform="translate(124.0625,59.6826)">
|
||||
<path
|
||||
d="m 0,0 v 6.328 h 6.328 6.328 v 6.328 H 6.328 0 c -3.495,0 -6.328,-2.833 -6.328,-6.328 V 0 -6.328 -12.656 -18.984 H 0 6.328 c 3.495,0 6.328,2.833 6.328,6.328 H 6.328 0 v 6.328 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path32" />
|
||||
</g>
|
||||
<path
|
||||
d="m 105.079,59.683 h -6.328 v 6.328 h 6.328 z m 0,12.656 H 98.75 c -3.495,0 -6.328,-2.833 -6.328,-6.328 v -6.328 -6.329 -6.328 -6.328 h 6.328 v 6.328 6.328 h 6.329 c 3.494,0 6.328,2.834 6.328,6.329 v 6.328 6.328 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path34" />
|
||||
<g
|
||||
id="g36"
|
||||
transform="translate(79.7661,66.0107)">
|
||||
<path
|
||||
d="M 0,0 H 6.328 V 6.328 H 0 -6.328 c -3.495,0 -6.328,-2.833 -6.328,-6.328 v -6.328 -6.328 H -6.328 0 v -6.328 h -6.328 -6.328 v -6.328 H -6.328 0 c 3.495,0 6.328,2.833 6.328,6.328 v 6.328 6.328 H 0 -6.328 V 0 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path38" />
|
||||
</g>
|
||||
<g
|
||||
id="g40"
|
||||
transform="translate(147.3701,64.8877)">
|
||||
<path
|
||||
d="m 0,0 c -1.107,0 -1.982,0.362 -2.624,1.087 l 0.502,0.645 c 0.581,-0.649 1.298,-0.973 2.152,-0.973 0.554,0 0.96,0.118 1.22,0.353 0.26,0.237 0.39,0.511 0.39,0.825 0,0.24 -0.076,0.442 -0.226,0.605 C 1.264,2.706 1.071,2.835 0.835,2.927 0.6,3.02 0.336,3.103 0.046,3.178 c -0.29,0.075 -0.579,0.159 -0.866,0.251 -0.287,0.092 -0.549,0.204 -0.784,0.334 -0.236,0.129 -0.429,0.313 -0.58,0.552 -0.15,0.24 -0.225,0.524 -0.225,0.852 0,0.56 0.221,1.016 0.666,1.368 0.444,0.352 1.005,0.528 1.681,0.528 1.018,0 1.829,-0.318 2.43,-0.954 L 1.855,5.484 c -0.499,0.547 -1.158,0.821 -1.978,0.821 -0.41,0 -0.747,-0.102 -1.01,-0.303 -0.263,-0.201 -0.394,-0.463 -0.394,-0.784 0,-0.239 0.1,-0.438 0.301,-0.595 C -1.023,4.466 -0.774,4.35 -0.477,4.274 -0.18,4.199 0.145,4.105 0.497,3.993 0.849,3.88 1.174,3.761 1.471,3.634 1.768,3.508 2.018,3.305 2.219,3.024 2.421,2.744 2.521,2.405 2.521,2.01 2.521,1.449 2.314,0.974 1.901,0.585 1.487,0.195 0.854,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path42" />
|
||||
</g>
|
||||
<g
|
||||
id="g44"
|
||||
transform="translate(153.3154,64.8877)">
|
||||
<path
|
||||
d="m 0,0 c -0.731,0 -1.326,0.248 -1.784,0.743 -0.458,0.496 -0.687,1.116 -0.687,1.861 0,0.745 0.229,1.364 0.687,1.855 0.458,0.492 1.053,0.738 1.784,0.738 0.765,0 1.37,-0.287 1.814,-0.861 L 1.302,3.865 c -0.315,0.43 -0.735,0.646 -1.261,0.646 -0.52,0 -0.935,-0.178 -1.246,-0.533 -0.311,-0.356 -0.466,-0.814 -0.466,-1.374 0,-0.56 0.155,-1.02 0.466,-1.378 0.311,-0.36 0.726,-0.539 1.246,-0.539 0.52,0 0.939,0.215 1.261,0.646 L 1.814,0.861 C 1.37,0.287 0.765,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path46" />
|
||||
</g>
|
||||
<path
|
||||
d="m 156.975,65.011 h -0.769 v 4.951 h 0.769 z m -0.39,5.658 c -0.137,0 -0.256,0.05 -0.358,0.149 -0.103,0.099 -0.154,0.22 -0.154,0.364 0,0.143 0.051,0.266 0.154,0.369 0.102,0.102 0.221,0.154 0.358,0.154 0.144,0 0.267,-0.052 0.369,-0.154 0.103,-0.103 0.154,-0.226 0.154,-0.369 0,-0.144 -0.051,-0.265 -0.154,-0.364 -0.102,-0.099 -0.225,-0.149 -0.369,-0.149"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path48" />
|
||||
<g
|
||||
id="g50"
|
||||
transform="translate(162.2842,67.7988)">
|
||||
<path
|
||||
d="M 0,0 C -0.007,0.424 -0.15,0.805 -0.431,1.144 -0.711,1.481 -1.11,1.65 -1.63,1.65 -2.122,1.65 -2.51,1.483 -2.793,1.148 -3.077,0.813 -3.229,0.431 -3.249,0 Z m -1.537,-2.911 c -0.738,0 -1.343,0.241 -1.815,0.723 -0.471,0.482 -0.707,1.109 -0.707,1.88 0,0.725 0.232,1.338 0.697,1.841 0.465,0.502 1.046,0.753 1.743,0.753 0.731,0 1.31,-0.251 1.737,-0.753 C 0.545,1.03 0.759,0.396 0.759,-0.369 v -0.194 h -4.008 c 0.034,-0.486 0.212,-0.892 0.533,-1.22 0.321,-0.328 0.737,-0.492 1.25,-0.492 0.615,0 1.124,0.208 1.528,0.625 l 0.369,-0.502 c -0.506,-0.506 -1.162,-0.759 -1.968,-0.759"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path52" />
|
||||
</g>
|
||||
<g
|
||||
id="g54"
|
||||
transform="translate(168.3936,65.0107)">
|
||||
<path
|
||||
d="m 0,0 h -0.769 v 3.239 c 0,0.417 -0.095,0.713 -0.287,0.887 -0.191,0.175 -0.465,0.262 -0.82,0.262 -0.287,0 -0.565,-0.076 -0.835,-0.226 -0.27,-0.15 -0.48,-0.332 -0.631,-0.543 V 0 H -4.11 v 4.951 h 0.768 V 4.233 c 0.192,0.226 0.448,0.422 0.77,0.59 0.32,0.167 0.652,0.251 0.994,0.251 C -0.526,5.074 0,4.541 0,3.476 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path56" />
|
||||
</g>
|
||||
<g
|
||||
id="g58"
|
||||
transform="translate(171.1826,64.8877)">
|
||||
<path
|
||||
d="m 0,0 c -0.362,0 -0.636,0.1 -0.82,0.298 -0.185,0.198 -0.278,0.484 -0.278,0.86 v 3.239 h -0.819 v 0.677 h 0.819 v 1.354 h 0.77 V 5.074 H 0.676 V 4.397 H -0.328 V 1.322 c 0,-0.191 0.042,-0.344 0.128,-0.461 0.085,-0.116 0.21,-0.174 0.374,-0.174 0.225,0 0.399,0.068 0.522,0.206 L 0.922,0.318 C 0.696,0.106 0.389,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path60" />
|
||||
</g>
|
||||
<path
|
||||
d="m 173.714,65.011 h -0.769 v 4.951 h 0.769 z m -0.39,5.658 c -0.137,0 -0.257,0.05 -0.358,0.149 -0.103,0.099 -0.154,0.22 -0.154,0.364 0,0.143 0.051,0.266 0.154,0.369 0.101,0.102 0.221,0.154 0.358,0.154 0.144,0 0.267,-0.052 0.369,-0.154 0.103,-0.103 0.154,-0.226 0.154,-0.369 0,-0.144 -0.051,-0.265 -0.154,-0.364 -0.102,-0.099 -0.225,-0.149 -0.369,-0.149"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path62" />
|
||||
<g
|
||||
id="g64"
|
||||
transform="translate(176.2354,65.0107)">
|
||||
<path
|
||||
d="m 0,0 h -0.769 v 4.274 h -0.82 v 0.677 h 0.82 v 0.38 c 0,0.505 0.128,0.899 0.385,1.184 0.256,0.283 0.607,0.425 1.05,0.425 0.424,0 0.772,-0.127 1.046,-0.379 L 1.395,6.059 C 1.21,6.223 1.005,6.305 0.779,6.305 0.526,6.305 0.333,6.221 0.2,6.054 0.066,5.886 0,5.645 0,5.331 V 4.951 H 1.005 V 4.274 H 0 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path66" />
|
||||
</g>
|
||||
<path
|
||||
d="m 178.921,65.011 h -0.769 v 4.951 h 0.769 z m -0.39,5.658 c -0.136,0 -0.256,0.05 -0.358,0.149 -0.103,0.099 -0.153,0.22 -0.153,0.364 0,0.143 0.05,0.266 0.153,0.369 0.102,0.102 0.222,0.154 0.358,0.154 0.144,0 0.267,-0.052 0.369,-0.154 0.103,-0.103 0.155,-0.226 0.155,-0.369 0,-0.144 -0.052,-0.265 -0.155,-0.364 -0.102,-0.099 -0.225,-0.149 -0.369,-0.149"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path68" />
|
||||
<g
|
||||
id="g70"
|
||||
transform="translate(182.6416,64.8877)">
|
||||
<path
|
||||
d="m 0,0 c -0.731,0 -1.325,0.248 -1.783,0.743 -0.458,0.496 -0.687,1.116 -0.687,1.861 0,0.745 0.229,1.364 0.687,1.855 0.458,0.492 1.052,0.738 1.783,0.738 0.766,0 1.37,-0.287 1.814,-0.861 L 1.302,3.865 c -0.315,0.43 -0.735,0.646 -1.261,0.646 -0.52,0 -0.935,-0.178 -1.245,-0.533 -0.312,-0.356 -0.467,-0.814 -0.467,-1.374 0,-0.56 0.155,-1.02 0.467,-1.378 0.31,-0.36 0.725,-0.539 1.245,-0.539 0.52,0 0.939,0.215 1.261,0.646 L 1.814,0.861 C 1.37,0.287 0.766,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path72" />
|
||||
</g>
|
||||
<g
|
||||
id="g74"
|
||||
transform="translate(147.8008,56.1855)">
|
||||
<path
|
||||
d="m 0,0 c 0.402,0 0.73,0.121 0.983,0.363 0.253,0.243 0.38,0.556 0.38,0.939 0,0.383 -0.127,0.695 -0.38,0.937 C 0.73,2.482 0.402,2.604 0,2.604 H -1.794 V 0 Z M -1.794,-3.476 H -2.646 V 3.362 H 0.103 C 0.765,3.362 1.288,3.164 1.671,2.768 2.053,2.371 2.244,1.882 2.244,1.302 2.244,0.721 2.052,0.231 1.665,-0.164 1.279,-0.561 0.758,-0.759 0.103,-0.759 h -1.897 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path76" />
|
||||
</g>
|
||||
<g
|
||||
id="g78"
|
||||
transform="translate(151.9111,52.71)">
|
||||
<path
|
||||
d="M 0,0 H -0.769 V 4.951 H 0 v -0.8 C 0.458,4.753 1.008,5.054 1.65,5.054 V 4.265 C 1.555,4.285 1.452,4.295 1.343,4.295 1.11,4.295 0.857,4.213 0.584,4.049 0.311,3.886 0.116,3.704 0,3.506 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path80" />
|
||||
</g>
|
||||
<g
|
||||
id="g82"
|
||||
transform="translate(155.4834,53.833)">
|
||||
<path
|
||||
d="m 0,0 c 0.297,-0.373 0.698,-0.559 1.204,-0.559 0.506,0 0.905,0.186 1.199,0.559 0.294,0.372 0.442,0.825 0.442,1.357 0,0.534 -0.148,0.985 -0.442,1.354 C 2.109,3.08 1.71,3.265 1.204,3.265 0.698,3.265 0.297,3.078 0,2.706 -0.297,2.333 -0.446,1.884 -0.446,1.357 -0.446,0.825 -0.297,0.372 0,0 M 2.983,-0.497 C 2.535,-0.996 1.942,-1.246 1.204,-1.246 c -0.737,0 -1.331,0.25 -1.778,0.749 -0.447,0.498 -0.671,1.117 -0.671,1.854 0,0.739 0.224,1.356 0.671,1.851 0.447,0.495 1.041,0.743 1.778,0.743 0.738,0 1.331,-0.248 1.779,-0.743 C 3.431,2.713 3.654,2.096 3.654,1.357 3.654,0.62 3.431,0.001 2.983,-0.497"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path84" />
|
||||
</g>
|
||||
<g
|
||||
id="g86"
|
||||
transform="translate(162.4893,53.3252)">
|
||||
<path
|
||||
d="M 0,0 C 0.294,0 0.579,0.078 0.856,0.235 1.133,0.393 1.34,0.584 1.477,0.81 V 2.973 C 1.34,3.198 1.135,3.388 0.861,3.542 0.588,3.695 0.301,3.772 0,3.772 -0.492,3.772 -0.88,3.598 -1.163,3.25 -1.447,2.901 -1.589,2.446 -1.589,1.886 -1.589,1.333 -1.445,0.88 -1.158,0.528 -0.871,0.176 -0.485,0 0,0 m -0.112,-2.624 c -0.438,0 -0.81,0.053 -1.117,0.159 -0.308,0.106 -0.602,0.299 -0.882,0.579 l 0.389,0.574 c 0.376,-0.451 0.912,-0.676 1.61,-0.676 0.458,0 0.837,0.121 1.137,0.363 0.301,0.243 0.452,0.617 0.452,1.123 V 0.205 C 1.292,-0.055 1.053,-0.267 0.759,-0.431 0.465,-0.595 0.15,-0.677 -0.185,-0.677 c -0.655,0 -1.187,0.231 -1.593,0.693 -0.407,0.461 -0.61,1.085 -0.61,1.87 0,0.786 0.203,1.411 0.61,1.876 0.406,0.465 0.938,0.697 1.593,0.697 0.677,0 1.231,-0.29 1.662,-0.871 V 4.336 H 2.245 V -0.472 C 2.245,-1.23 2.023,-1.778 1.579,-2.117 1.135,-2.455 0.571,-2.624 -0.112,-2.624"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path88" />
|
||||
</g>
|
||||
<g
|
||||
id="g90"
|
||||
transform="translate(167.041,52.71)">
|
||||
<path
|
||||
d="M 0,0 H -0.769 V 4.951 H 0 v -0.8 C 0.458,4.753 1.008,5.054 1.65,5.054 V 4.265 C 1.555,4.285 1.452,4.295 1.343,4.295 1.11,4.295 0.857,4.213 0.584,4.049 0.311,3.886 0.116,3.704 0,3.506 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path92" />
|
||||
</g>
|
||||
<g
|
||||
id="g94"
|
||||
transform="translate(171.3867,53.1406)">
|
||||
<path
|
||||
d="M 0,0 C 0.615,0 1.069,0.205 1.363,0.615 V 1.548 C 1.069,1.958 0.615,2.163 0,2.163 -0.355,2.163 -0.647,2.063 -0.877,1.86 -1.105,1.659 -1.22,1.397 -1.22,1.076 -1.22,0.762 -1.105,0.504 -0.877,0.303 -0.647,0.101 -0.355,0 0,0 M 2.132,-0.431 H 1.363 v 0.565 c -0.417,-0.458 -0.964,-0.688 -1.639,-0.688 -0.458,0 -0.862,0.148 -1.21,0.442 -0.349,0.293 -0.523,0.693 -0.523,1.199 0,0.518 0.172,0.921 0.518,1.204 0.345,0.283 0.75,0.426 1.215,0.426 0.703,0 1.25,-0.226 1.639,-0.677 V 2.932 C 1.363,3.26 1.247,3.517 1.015,3.7 0.782,3.885 0.481,3.978 0.112,3.978 c -0.58,0 -1.086,-0.23 -1.516,-0.687 l -0.359,0.532 c 0.526,0.547 1.186,0.821 1.978,0.821 0.567,0 1.029,-0.137 1.384,-0.411 C 1.954,3.96 2.132,3.54 2.132,2.973 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path96" />
|
||||
</g>
|
||||
<g
|
||||
id="g98"
|
||||
transform="translate(181.8018,52.71)">
|
||||
<path
|
||||
d="m 0,0 h -0.769 v 3.362 c 0,0.684 -0.304,1.026 -0.913,1.026 -0.246,0 -0.491,-0.076 -0.737,-0.226 C -2.665,4.012 -2.856,3.834 -2.993,3.629 V 0 h -0.769 v 3.362 c 0,0.684 -0.304,1.026 -0.913,1.026 -0.239,0 -0.479,-0.076 -0.722,-0.226 C -5.64,4.012 -5.833,3.83 -5.977,3.619 V 0 h -0.768 v 4.951 h 0.768 V 4.233 c 0.123,0.192 0.339,0.38 0.647,0.565 0.307,0.184 0.625,0.276 0.953,0.276 0.362,0 0.656,-0.085 0.881,-0.256 0.225,-0.171 0.376,-0.393 0.451,-0.667 0.15,0.246 0.38,0.462 0.688,0.647 0.307,0.184 0.631,0.276 0.973,0.276 C -0.461,5.074 0,4.575 0,3.578 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path100" />
|
||||
</g>
|
||||
<g
|
||||
id="g102"
|
||||
transform="translate(190.084,52.71)">
|
||||
<path
|
||||
d="m 0,0 h -0.769 v 3.362 c 0,0.684 -0.304,1.026 -0.913,1.026 -0.246,0 -0.491,-0.076 -0.737,-0.226 C -2.665,4.012 -2.856,3.834 -2.993,3.629 V 0 h -0.769 v 3.362 c 0,0.684 -0.304,1.026 -0.913,1.026 -0.239,0 -0.479,-0.076 -0.722,-0.226 C -5.64,4.012 -5.833,3.83 -5.977,3.619 V 0 h -0.768 v 4.951 h 0.768 V 4.233 c 0.123,0.192 0.339,0.38 0.647,0.565 0.307,0.184 0.625,0.276 0.953,0.276 0.362,0 0.656,-0.085 0.881,-0.256 0.225,-0.171 0.376,-0.393 0.451,-0.667 0.15,0.246 0.38,0.462 0.688,0.647 0.307,0.184 0.631,0.276 0.973,0.276 C -0.461,5.074 0,4.575 0,3.578 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path104" />
|
||||
</g>
|
||||
<path
|
||||
d="m 192.391,52.71 h -0.769 v 4.951 h 0.769 z m -0.39,5.658 c -0.137,0 -0.257,0.05 -0.358,0.15 -0.103,0.098 -0.155,0.219 -0.155,0.363 0,0.143 0.052,0.266 0.155,0.369 0.101,0.103 0.221,0.154 0.358,0.154 0.144,0 0.267,-0.051 0.369,-0.154 0.103,-0.103 0.153,-0.226 0.153,-0.369 0,-0.144 -0.05,-0.265 -0.153,-0.363 -0.102,-0.1 -0.225,-0.15 -0.369,-0.15"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path106" />
|
||||
<g
|
||||
id="g108"
|
||||
transform="translate(198.0391,52.71)">
|
||||
<path
|
||||
d="m 0,0 h -0.77 v 3.239 c 0,0.417 -0.095,0.713 -0.286,0.887 -0.191,0.175 -0.465,0.262 -0.82,0.262 -0.287,0 -0.565,-0.076 -0.836,-0.226 C -2.981,4.012 -3.191,3.83 -3.342,3.619 V 0 H -4.11 v 4.951 h 0.768 V 4.233 c 0.192,0.226 0.447,0.422 0.769,0.59 0.321,0.167 0.652,0.251 0.994,0.251 C -0.526,5.074 0,4.541 0,3.476 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path110" />
|
||||
</g>
|
||||
<g
|
||||
id="g112"
|
||||
transform="translate(201.6777,53.3252)">
|
||||
<path
|
||||
d="M 0,0 C 0.294,0 0.579,0.078 0.855,0.235 1.133,0.393 1.339,0.584 1.476,0.81 V 2.973 C 1.339,3.198 1.134,3.388 0.861,3.542 0.588,3.695 0.301,3.772 0,3.772 -0.492,3.772 -0.88,3.598 -1.164,3.25 -1.447,2.901 -1.589,2.446 -1.589,1.886 -1.589,1.333 -1.445,0.88 -1.158,0.528 -0.871,0.176 -0.485,0 0,0 m -0.113,-2.624 c -0.438,0 -0.81,0.053 -1.117,0.159 -0.308,0.106 -0.602,0.299 -0.881,0.579 l 0.388,0.574 c 0.376,-0.451 0.913,-0.676 1.61,-0.676 0.458,0 0.838,0.121 1.138,0.363 0.3,0.243 0.451,0.617 0.451,1.123 V 0.205 C 1.291,-0.055 1.052,-0.267 0.759,-0.431 0.465,-0.595 0.15,-0.677 -0.185,-0.677 c -0.656,0 -1.187,0.231 -1.593,0.693 -0.408,0.461 -0.611,1.085 -0.611,1.87 0,0.786 0.203,1.411 0.611,1.876 0.406,0.465 0.937,0.697 1.593,0.697 0.677,0 1.231,-0.29 1.661,-0.871 V 4.336 H 2.245 V -0.472 C 2.245,-1.23 2.022,-1.778 1.578,-2.117 1.134,-2.455 0.57,-2.624 -0.113,-2.624"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path114" />
|
||||
</g>
|
||||
<g
|
||||
id="g116"
|
||||
transform="translate(148.3945,40.2861)">
|
||||
<path
|
||||
d="m 0,0 c -0.997,0 -1.833,0.33 -2.506,0.989 -0.673,0.659 -1.01,1.509 -1.01,2.548 0,1.038 0.337,1.888 1.01,2.547 0.673,0.659 1.509,0.989 2.506,0.989 1.094,0 1.958,-0.451 2.594,-1.353 L 1.876,5.32 C 1.678,5.614 1.411,5.854 1.077,6.038 0.742,6.223 0.383,6.314 0,6.314 -0.751,6.314 -1.378,6.054 -1.881,5.53 -2.383,5.008 -2.634,4.343 -2.634,3.537 -2.634,2.73 -2.383,2.065 -1.881,1.543 -1.378,1.021 -0.751,0.759 0,0.759 0.383,0.759 0.742,0.85 1.077,1.03 1.411,1.212 1.678,1.452 1.876,1.753 L 2.604,1.354 C 1.941,0.451 1.073,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path118" />
|
||||
</g>
|
||||
<g
|
||||
id="g120"
|
||||
transform="translate(155.8262,43.1973)">
|
||||
<path
|
||||
d="M 0,0 C -0.007,0.424 -0.15,0.805 -0.431,1.144 -0.711,1.481 -1.11,1.65 -1.63,1.65 -2.122,1.65 -2.51,1.483 -2.793,1.148 -3.077,0.813 -3.229,0.431 -3.249,0 Z m -1.537,-2.911 c -0.738,0 -1.343,0.241 -1.815,0.723 -0.471,0.482 -0.707,1.109 -0.707,1.88 0,0.725 0.232,1.338 0.697,1.841 0.465,0.502 1.046,0.753 1.743,0.753 0.731,0 1.31,-0.251 1.737,-0.753 C 0.545,1.03 0.759,0.396 0.759,-0.369 v -0.194 h -4.008 c 0.034,-0.486 0.212,-0.892 0.533,-1.22 0.321,-0.328 0.737,-0.492 1.25,-0.492 0.615,0 1.124,0.208 1.528,0.625 l 0.369,-0.502 c -0.506,-0.506 -1.162,-0.759 -1.968,-0.759"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path122" />
|
||||
</g>
|
||||
<g
|
||||
id="g124"
|
||||
transform="translate(161.9365,40.4092)">
|
||||
<path
|
||||
d="m 0,0 h -0.77 v 3.239 c 0,0.417 -0.095,0.713 -0.286,0.887 -0.191,0.175 -0.465,0.262 -0.82,0.262 -0.287,0 -0.565,-0.076 -0.836,-0.226 C -2.981,4.012 -3.191,3.83 -3.342,3.619 V 0 H -4.11 v 4.951 h 0.768 V 4.233 c 0.192,0.226 0.447,0.422 0.769,0.59 0.321,0.167 0.652,0.251 0.994,0.251 C -0.526,5.074 0,4.541 0,3.476 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path126" />
|
||||
</g>
|
||||
<g
|
||||
id="g128"
|
||||
transform="translate(164.7246,40.2861)">
|
||||
<path
|
||||
d="m 0,0 c -0.362,0 -0.636,0.1 -0.82,0.298 -0.185,0.198 -0.278,0.484 -0.278,0.86 v 3.239 h -0.819 v 0.677 h 0.819 v 1.354 h 0.77 V 5.074 H 0.676 V 4.397 H -0.328 V 1.322 c 0,-0.191 0.042,-0.344 0.128,-0.461 0.085,-0.116 0.21,-0.174 0.374,-0.174 0.225,0 0.399,0.068 0.522,0.206 L 0.922,0.318 C 0.696,0.106 0.389,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path130" />
|
||||
</g>
|
||||
<g
|
||||
id="g132"
|
||||
transform="translate(167.2559,40.4092)">
|
||||
<path
|
||||
d="M 0,0 H -0.769 V 4.951 H 0 v -0.8 C 0.458,4.753 1.008,5.054 1.65,5.054 V 4.265 C 1.555,4.285 1.452,4.295 1.343,4.295 1.11,4.295 0.857,4.213 0.585,4.049 0.312,3.886 0.116,3.704 0,3.506 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path134" />
|
||||
</g>
|
||||
<g
|
||||
id="g136"
|
||||
transform="translate(173.6416,43.1973)">
|
||||
<path
|
||||
d="M 0,0 C -0.007,0.424 -0.15,0.805 -0.431,1.144 -0.711,1.481 -1.11,1.65 -1.63,1.65 -2.122,1.65 -2.51,1.483 -2.793,1.148 -3.077,0.813 -3.229,0.431 -3.249,0 Z m -1.537,-2.911 c -0.738,0 -1.343,0.241 -1.815,0.723 -0.471,0.482 -0.707,1.109 -0.707,1.88 0,0.725 0.232,1.338 0.697,1.841 0.465,0.502 1.046,0.753 1.743,0.753 0.731,0 1.31,-0.251 1.737,-0.753 C 0.545,1.03 0.759,0.396 0.759,-0.369 v -0.194 h -4.008 c 0.034,-0.486 0.212,-0.892 0.533,-1.22 0.321,-0.328 0.737,-0.492 1.25,-0.492 0.615,0 1.124,0.208 1.528,0.625 l 0.369,-0.502 c -0.506,-0.506 -1.162,-0.759 -1.968,-0.759"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path138" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 22 KiB |