.compass.svelte-uglhuv .outer-rim:where(.svelte-uglhuv){fill:none;stroke:var(--color);stroke-width:44}.compass.svelte-uglhuv .needle:where(.svelte-uglhuv){fill:var(--color)}.compass.svelte-uglhuv .spin:where(.svelte-uglhuv){transform-origin:50% 50%;animation:svelte-uglhuv-spinning 10s infinite alternate}@-moz-keyframes svelte-uglhuv-spinning{0%{transform:rotate(30deg)}9.090909090909092%{transform:rotate(-60deg)}18.181818181818183%{transform:rotate(90deg)}27.27272727272727%{transform:rotate(-120deg)}36.36363636363637%{transform:rotate(10deg)}45.45454545454545%{transform:rotate(-280deg)}54.54545454545454%{transform:rotate(130deg)}63.63636363636363%{transform:rotate(-20deg)}72.72727272727273%{transform:rotate(160deg)}81.81818181818183%{transform:rotate(-30deg)}90.9090909090909%{transform:rotate(180deg)}to{transform:rotate(-320deg)}}@-webkit-keyframes svelte-uglhuv-spinning{0%{transform:rotate(30deg)}9.090909090909092%{transform:rotate(-60deg)}18.181818181818183%{transform:rotate(90deg)}27.27272727272727%{transform:rotate(-120deg)}36.36363636363637%{transform:rotate(10deg)}45.45454545454545%{transform:rotate(-280deg)}54.54545454545454%{transform:rotate(130deg)}63.63636363636363%{transform:rotate(-20deg)}72.72727272727273%{transform:rotate(160deg)}81.81818181818183%{transform:rotate(-30deg)}90.9090909090909%{transform:rotate(180deg)}to{transform:rotate(-320deg)}}@-o-keyframes svelte-uglhuv-spinning{0%{transform:rotate(30deg)}9.090909090909092%{transform:rotate(-60deg)}18.181818181818183%{transform:rotate(90deg)}27.27272727272727%{transform:rotate(-120deg)}36.36363636363637%{transform:rotate(10deg)}45.45454545454545%{transform:rotate(-280deg)}54.54545454545454%{transform:rotate(130deg)}63.63636363636363%{transform:rotate(-20deg)}72.72727272727273%{transform:rotate(160deg)}81.81818181818183%{transform:rotate(-30deg)}90.9090909090909%{transform:rotate(180deg)}to{transform:rotate(-320deg)}}@keyframes svelte-uglhuv-spinning{0%{transform:rotate(30deg)}9.090909090909092%{transform:rotate(-60deg)}18.181818181818183%{transform:rotate(90deg)}27.27272727272727%{transform:rotate(-120deg)}36.36363636363637%{transform:rotate(10deg)}45.45454545454545%{transform:rotate(-280deg)}54.54545454545454%{transform:rotate(130deg)}63.63636363636363%{transform:rotate(-20deg)}72.72727272727273%{transform:rotate(160deg)}81.81818181818183%{transform:rotate(-30deg)}90.9090909090909%{transform:rotate(180deg)}to{transform:rotate(-320deg)}}#scheme-toggle.svelte-cbwv04{--icon-size: 1.5rem;--padding: .5rem;--border-size: 2px;overflow:hidden;height:calc(var(--icon-size) + var(--padding) * 2 + var(--border-size));width:calc(var(--icon-size) + var(--padding) * 2 + var(--border-size));margin:auto;padding:0}#scheme-toggle.svelte-cbwv04 svg:where(.svelte-cbwv04){width:var(--icon-size);height:var(--icon-size);margin:var(--padding);transform:translateY(0);transition:transform .2s ease-in-out}#scheme-toggle.svelte-cbwv04 .moon:where(.svelte-cbwv04){fill:var(--fg);stroke:none}#scheme-toggle.svelte-cbwv04 .sun:where(.svelte-cbwv04){fill:none;stroke:var(--fg);stroke-width:2px}#scheme-toggle.light.svelte-cbwv04 svg:where(.svelte-cbwv04){transform:translateY(calc((var(--icon-size) + var(--padding) * 2 + var(--border-size) * 2) * -1))}#navbar.svelte-7ik34o{display:flex;align-items:flex-end;width:100vw;height:var(--nav-height);background-color:var(--bg);border-bottom:solid .15rem var(--bg-accent);z-index:1000;padding:.2rem 1rem}#navbar.fixed.svelte-7ik34o{position:fixed;top:0;left:0}#navbar.svelte-7ik34o a.name:where(.svelte-7ik34o){height:min-content;width:max-content}#navbar.svelte-7ik34o a.name:where(.svelte-7ik34o) h1:where(.svelte-7ik34o){padding:0;z-index:2;font-size:2rem;color:var(--fg);transition:color .2s}#navbar.svelte-7ik34o a.name:where(.svelte-7ik34o) h1:where(.svelte-7ik34o) span:where(.svelte-7ik34o){color:var(--accent);transition:color .2s}#navbar.svelte-7ik34o a.name:where(.svelte-7ik34o) h1:where(.svelte-7ik34o):hover{color:var(--accent)}#navbar.svelte-7ik34o a.name:where(.svelte-7ik34o) h1:where(.svelte-7ik34o):hover span:where(.svelte-7ik34o){color:var(--fg)}#navbar.svelte-7ik34o .compass{position:absolute;top:0;right:0;width:var(--nav-height);height:var(--nav-height);padding:.6rem .5rem .4rem;border-left:solid .2rem var(--bg-accent)}#nav-links.svelte-7ik34o{display:flex;justify-content:space-around;align-items:flex-start;margin-bottom:.5rem;height:calc(100% - 2rem)}#nav-links.svelte-7ik34o li>a{padding-right:1rem;font-family:var(--fnt-rounded);font-size:1.5rem;color:var(--fg)}#nav-links.svelte-7ik34o li>a:hover{color:var(--accent-7)}#nav-links.svelte-7ik34o li>a:active{color:var(--accent)}#nav-links.svelte-7ik34o li>a:after{visibility:hidden;content:"_";font-weight:700;animation:svelte-7ik34o-blinking .5s steps(2,start) infinite}#nav-links>li.current>a{color:var(--accent)}#nav-links>li.current>a:hover{color:var(--accent)}#nav-links>li.current>a:after{visibility:visible}#navbar.compact.svelte-7ik34o #scheme-toggle{display:none;position:absolute;top:calc(var(--nav-height) + 1rem);right:1rem;z-index:200}#navbar.compact.fixed.svelte-7ik34o #scheme-toggle{display:block}#mobile-links.svelte-7ik34o{visibility:collapse;opacity:0;display:flex;flex-direction:column;justify-content:space-around;align-items:center;font-family:var(--fnt-rounded);background-color:var(--bg);text-align:center;position:fixed;top:var(--nav-height);left:0;width:100vw;width:100svw;height:100vh;height:calc(100vh - var(--nav-height));height:calc(100svh - var(--nav-height));z-index:-100}#mobile-links.svelte-7ik34o li{display:block;width:max-content}#mobile-links.svelte-7ik34o li>a{font-family:var(--fnt-rounded);color:var(--fg);font-size:1.3rem;padding:.5rem}#mobile-links.svelte-7ik34o li.current>a{border-bottom:solid .2rem var(--accent-7);color:var(--accent-7)}#mobile-links.svelte-7ik34o li:active>a{border-color:var(--accent);color:var(--accent)}#mobile-links.navigate.svelte-7ik34o{visibility:visible;z-index:100;opacity:1}@-moz-keyframes svelte-7ik34o-blinking{to{visibility:hidden}}@-webkit-keyframes svelte-7ik34o-blinking{to{visibility:hidden}}@-o-keyframes svelte-7ik34o-blinking{to{visibility:hidden}}@keyframes svelte-7ik34o-blinking{to{visibility:hidden}}body{--bg-l: 10%;--bg: hsl(0,0%,var(--bg-l));--bg-light-l: 15%;--bg-light: hsl(0,0%,var(--bg-light-l));--bg-accent-l: 20%;--bg-accent: hsl(0,0%,var(--bg-accent-l));--fg-l: 80%;--fg: hsl(0,0%,var(--fg-l));--fg-accent-l: 90%;--fg-accent: hsl(0,0%,var(--fg-accent-l));--fg-muted-l: 70%;--fg-muted: hsl(0,0%,var(--fg-muted-l));--fg-hint-l: 60%;--fg-hint: hsl(0,0%,var(--fg-hint-l));--accent-h: 187;--color-s: 60%;--color-l: 60%;--accent-0-l: 95%;--accent-0: hsl(var(--accent-h), var(--color-s), var(--accent-0-l));--accent-1-l: 90%;--accent-1: hsl(var(--accent-h), var(--color-s), var(--accent-1-l));--accent-2-l: 85%;--accent-2: hsl(var(--accent-h), var(--color-s), var(--accent-2-l));--accent-3-l: 80%;--accent-3: hsl(var(--accent-h), var(--color-s), var(--accent-3-l));--accent-4-l: 55%;--accent-4: hsl(var(--accent-h), var(--color-s), var(--accent-4-l));--accent-5-l: 50%;--accent-5: hsl(var(--accent-h), var(--color-s), var(--accent-5-l));--accent-6-l: 40%;--accent-6: hsl(var(--accent-h), var(--color-s), var(--accent-6-l));--accent-7-l: 30%;--accent-7: hsl(var(--accent-h), var(--color-s), var(--accent-7-l));--accent-8-l: 25%;--accent-8: hsl(var(--accent-h), var(--color-s), var(--accent-8-l));--accent-9-l: 20%;--accent-9: hsl(var(--accent-h), var(--color-s), var(--accent-9-l));--accent-10-l: 5%;--accent-10: hsl(var(--accent-h), var(--color-s), var(--accent-10-l));--accent-l: var(--accent-5-l);--accent: var(--accent-5);--clr-red: hsl(0,var(--color-s),var(--color-l));--clr-choral: hsl(10,var(--color-s),var(--color-l));--clr-orange: hsl(20,var(--color-s),var(--color-l));--clr-yellow: hsl(50,calc(var(--color-s) + 20%),var(--color-l));--clr-green: hsl(100,var(--color-s),var(--color-l));--clr-aqua: hsl(140,var(--color-s),var(--color-l));--clr-cyan: hsl(180,var(--color-s),var(--color-l));--clr-teal: hsl(200,var(--color-s),var(--color-l));--clr-blue: hsl(240,var(--color-s),var(--color-l));--clr-purple: hsl(270,var(--color-s),var(--color-l));--clr-pink: hsl(300,var(--color-s),calc(var(--color-l) + 20%));--clr-magenta: hsl(330,var(--color-s),var(--color-l))}body[data-scheme=light]{--bg-l: 95%;--bg-light-l: 90%;--bg-accent-l: 85%;--fg-l: 20%;--fg-accent-l: 10%;--fg-muted-l: 30%;--fg-hint-l: 40%;--color-s: 80%;--color-l: 40%;--accent-0-l: 10%;--accent-1-l: 15%;--accent-2-l: 18%;--accent-3-l: 23%;--accent-4-l: 27%;--accent-5-l: 40%;--accent-6-l: 50%;--accent-7-l: 60%;--accent-8-l: 70%;--accent-9-l: 80%;--accent-10-l: 90%;--clr-yellow: hsl(55, 100%, 40%)}::-webkit-scrollbar{width:.3rem;height:.3rem}::-webkit-scrollbar-thumb{background-color:var(--accent);border-radius:100vw}body::-webkit-scrollbar{width:.45rem;height:.45rem}body::-webkit-scrollbar:hover{width:.75rem;height:.75rem;background-color:var(--bg-light)}body::-webkit-scrollbar-thumb{border:.15rem solid var(--bg-light)}:root{--nav-height: 4rem;--transparent: rgba(0,0,0,0);scrollbar-color:var(--accent) var(--bg-light)}*,:after,:before{margin:0;padding:0;box-sizing:border-box}#portfolio{max-width:100vw;min-height:100vh}body{background-color:var(--bg);font-family:var(--fnt-system);color:var(--fg)}@font-face{font-family:Quicksand;font-style:normal;font-weight:400;src:local("Quicksand"),url(/fonts/Quicksand.basic-latin.woff2) format("woff2");unicode-range:U+0000-00FF;font-display:swap}@font-face{font-family:Quicksand;font-style:normal;font-weight:400;src:local("Quicksand"),url(/fonts/Quicksand.croatian.woff2) format("woff2");unicode-range:U+0106,U+0107,U+010C,U+010D,U+0110,U+0111,U+0160,U+0161,U+017D,U+017E;font-display:swap}:root{--fnt-system: "Seravek", "Gill Sans Nova", system-ui, "Noto Sans", "Roboto", "Montserrat", "Calibri", "Ubuntu", source-sans-pro, sans-serif;--fnt-rounded: "Quicksand", ui-rounded, "Comfortaa", "Manjari", "Arial Rounded MT", "Calibri", source-sans-pro, sans-serif;--fnt-mono: "Fira Code", ui-monospace, "Source Code Pro", "Menlo", "Consolas", "DejaVu Sans Mono", monospace}h1,h2,h3,h4,h5,h6{padding-bottom:.5rem;font-family:Quicksand,sans-serif;color:var(--accent)}h1{font-size:2rem;padding-top:1.2rem}h2{font-size:1.8rem;padding-top:1.2rem}h3{font-size:1.6rem;padding-top:1.2rem}h4{font-size:1.4rem;padding-top:1rem}h5{font-size:1.2rem;padding-top:1rem}h6{font-size:1.1rem;padding-top:1rem}p,i,a,strong{font-size:inherit;font-family:var(--fnt-system);color:var(--fg)}p{padding-bottom:.6rem;width:clamp(1ch,100%,80ch)}a{text-decoration:none;color:var(--accent);transition:color .2s ease-in-out}a:hover{color:var(--accent-4)}a:active{color:var(--fg)}.pagewide{max-width:calc(100vw - 2rem);width:768px}.pagewide p{width:initial}.spacer{flex-grow:100}.center{display:grid;align-items:center;justify-items:center;grid-template-columns:1fr}.center>*{text-align:center;margin:auto}.center h1,.center h2,.center h3,.center h4,.center h5,.center h6{text-align:initial}.hidden{display:none;visibility:hidden}li{list-style:none}article ul,article ol{padding-bottom:.6rem}article ul>li,article ol>li{margin-left:1rem;margin-top:.5rem}article ul>li+li,article ol>li+li{margin-top:.25rem}article ul>li:before{content:">";margin-right:.75rem;transition:margin-left .2s ease-in-out,margin-right .2s ease-in-out}article ul>li:hover:before{margin-right:.5rem;margin-left:.25rem}article ol>li{margin-left:.5rem;list-style-type:decimal;list-style-type:decimal-leading-zero;list-style-position:inside}article ol>li::marker{font-family:var(--fnt-mono)}article ol>li:hover::marker{color:var(--accent)}hr{border:solid 1px var(--bg-accent)}button,.button{display:block;background-color:var(--bg);padding:.5rem 1.5rem;width:max-content;height:min-content;border:solid .15rem var(--bg-accent);border-radius:100vw;outline:inherit;transition:background-color ease-in-out .2s,border-color ease-in-out .2s;font-family:var(--fnt-rounded);font-size:1rem;color:var(--fg);cursor:pointer}button.sharp,.button.sharp{border-radius:.5rem;padding:.5rem 1rem}button:hover,.button:hover{background-color:var(--accent-7);border-color:var(--accent);color:var(--accent-1)}button.active,.button.active,button:active,.button:active{background-color:var(--accent-8);color:var(--accent-2)}@media screen and (min-width: 768px){button,.button{padding:.7rem 2.5rem}}.checkbox{display:inline-block;width:.8rem;height:.8rem;border-radius:.1rem;border:var(--accent) solid .15rem}.checkbox:hover{border:var(--accent-7) solid .2rem}.checkbox.checked{background-color:var(--accent);clip-path:polygon(0 0,100% 0,50% 50%,30% 30%,15% 45%,50% 80%,100% 30%,100% 100%,0 100%)}.checkbox.checked:hover{background-color:var(--accent-7)}.tag.button{background-color:var(--bg-accent);padding:.25rem .5rem;border-radius:.5rem;border:none;font-size:.75rem;color:var(--fg-light);--icon-color: var(--fg-light)}.tag.button.hash:before{content:"#"}.tag.button:hover,.tag.button:focus{background-color:var(--fg-hint);--icon-color: var(--bg);color:var(--bg)}.tag.button:active{background-color:var(--fg-muted);--icon-color: var(--bg);color:var(--bg)}.island{padding:1rem;border-radius:.2rem;background-color:var(--bg-light);border:2px solid var(--bg-accent)}input[type=text],input[type=email],textarea{box-sizing:border-box;width:100%;padding:.5vh;margin-bottom:2vh;resize:vertical;background:none;color:var(--fg);border:none;border-bottom:solid .15rem var(--accent);transition:border-bottom ease-in-out .2s}input[type=text]:focus,input[type=email]:focus,textarea:focus{outline:none;border-bottom:solid .15rem var(--accent-7)}input[type=text]:invalid,input[type=email]:invalid,textarea:invalid{outline:none;box-shadow:none;border-bottom:solid .15rem var(--clr-red)}blockquote{border-left:2px solid var(--fg-hint);padding:.5rem .75rem;margin:1rem .2rem 1rem .75rem;background-color:#0000001a;border-radius:0 .2rem .2rem 0}blockquote>:nth-child(1){padding-top:0;margin-top:0}blockquote:has(span[data-paraphrased]){border-left:2px dashed var(--fg-hint)}div.code-block{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;background:var(--bg);border-radius:.25rem;overflow:hidden;margin-bottom:.75rem}div.code-block .block-heading{grid-column:1/-1;grid-row:1/2;display:flex;align-items:center;-webkit-user-select:none;user-select:none;padding:.2rem}div.code-block .block-heading *{font-size:.8rem;padding:.25rem .5rem}div.code-block .block-heading.collapsed{height:0;padding:0}div.code-block .block-heading .heading.name{font-weight:700}div.code-block .block-heading .heading.language{font-style:italic}div.code-block .block-heading .hint{color:var(--accent-6)}div.code-block .line-numbers{grid-row:2/3;grid-column:1/2;min-width:3ch;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none;text-align:right;color:var(--fg-hint);border-top:1px solid var(--fg-hint);padding:.2rem;opacity:.5}div.code-block .line-numbers.collapsed{min-width:0;padding:0}div.code-block pre{overflow-x:auto}div.code-block+div.code-block{border-radius:0 0 .25rem .25rem;padding-top:.25rem;margin-top:-1rem}code,.line-numbers{font-family:var(--fnt-mono);font-size:.9rem;font-weight:500;line-height:1.5}code[class*=language-],pre[class*=language-]{color:var(--fg);direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;font-variant-ligatures:none}pre[class*=language-] ::selection,code[class*=language-] ::selection{color:var(--fg);background:var(--accent-9)}pre[class*=language-]{padding:.2rem .5rem}:not(pre)>code,pre[class*=language-]{background:var(--bg-accent)}:not(pre)>code{border-radius:.3rem}:not(pre)>code[class*=language-]{padding:.1rem}:not(pre)>code:not([class*=language-]){padding:.1ch .4ch}body[data-scheme=dark] pre[class*=language-]{box-shadow:inset 1px 1px 2px var(--bg)}body[data-scheme=light] pre[class*=language-]{background:var(--bg);box-shadow:inset 1px 1px 2px var(--fg-hint)}body[data-scheme=dark] :not(pre)>code:not([class*=language-]){box-shadow:1px 1px 2px var(--bg)}body[data-scheme=light] :not(pre)>code:not([class*=language-]){background:var(--bg);box-shadow:1px 1px 2px var(--fg-hint)}code[class*=language-] .tag{color:var(--fg)}code[class*=language-] .comment,code[class*=language-] .comment.documentation{color:var(--fg-hint)}code[class*=language-] .error{color:var(--clr-red)}code[class*=language-] .number{color:var(--clr-aqua)}code[class*=language-] .keyword,code[class*=language-] .boolean{color:var(--clr-choral)}code[class*=language-] .include{font-weight:600}code[class*=language-] .punctuation,code[class*=language-] .punctuation.bracket,code[class*=language-] .punctuation.special{color:var(--clr-cyan);filter:saturate(.4)}code[class*=language-] .punctuation.delimiter{color:var(--fg-hint)}code[class*=language-] .operator{color:var(--clr-teal)}code[class*=language-] .type,code[class*=language-] .constructor,code[class*=language-] .function,code[class*=language-] .module{color:var(--clr-yellow)}code[class*=language-] .type{font-weight:700}code[class*=language-] .function{filter:saturate(.6)}code[class*=language-] .property,code[class*=language-] .variable,code[class*=language-] .variable.member,code[class*=language-] .variable.parameter{color:var(--fg)}code[class*=language-] .macro{color:var(--clr-orange)}code[class*=language-] .member{font-style:italic}code[class*=language-] .embedded,code[class*=language-] .constant{color:var(--clr-orange)}code[class*=language-] .builtin{font-weight:700;filter:saturate(1.5)}code[class*=language-] .lifetime{color:var(--clr-pink)}code[class*=language-] .lifetime .label{font-style:italic}code[class*=language-] .string{color:var(--clr-green)}code[class*=language-] .regexp{color:var(--clr-purple)}code[class*=language-] .escape,code[class*=language-] .string.special,code[class*=language-] .string.special.symbol{color:var(--clr-blue)}code[class*=language-] .attribute{color:var(--clr-choral)}code[class*=language-] .attribute *{color:inherit!important}code[class=language-html] .tag{color:var(--clr-cyan);filter:saturate(.4)}
