.icon{--size: 24px;-webkit-user-select:none;user-select:none;font-variation-settings:"FILL" 0;font-size:var(--size);min-width:var(--size);max-width:var(--size);min-height:var(--size);max-height:var(--size);overflow:hidden;box-sizing:content-box;transition:font-variation-settings .2s ease-out}.icon.fill{font-variation-settings:"FILL" 1}button .icon:not(:last-child){margin-right:6px}a{display:block;min-width:-moz-fit-content;min-width:fit-content;height:fit-content;text-decoration:none;margin:0}a:focus-visible{outline:none}.button{display:grid;grid-auto-flow:column;justify-content:center;align-items:center;gap:.5em;height:calc(100% - 10px);min-height:44px;width:100%;padding:5px 15px;margin:10px 0 0;font-family:var(--font2);font-weight:600;border:none;background-color:var(--accentLight);color:var(--fgContrast);box-shadow:none;cursor:pointer;transition:filter .2s,background-color .2s,color .2s,box-shadow .2s}.button:hover{filter:brightness(.9)}.button:focus-visible,a:focus-visible .button{filter:brightness(.8);box-shadow:inset 0 0 0 3px currentColor;outline:none}ul>li a>.button{margin-top:2px}.button.hero{background-color:var(--fgContrast);color:var(--bgContrast)}.button.secondary,.button[role=checkbox]{background-color:var(--bgSecondary);color:var(--fgPrimary)}.button[role=checkbox][aria-checked=true]{background-color:var(--accentVeryLight)}.button.narrow{padding:5px 8px;width:40px}.button.insignificant .icon{opacity:.5}.button.left{text-align:left;justify-content:start}.button.rail{padding:0;margin:0;color:var(--fgSecondary);background-color:var(--bgSecondary)}.button[data-checked=true],.button.secondary[active=true]{background-color:var(--accentVeryLight)}.button[disabled]{pointer-events:none}.collection-horizontal{display:flex;overflow:auto;gap:18px 10px}.collection-horizontal[data-gapless=true]{gap:0 0}.collection-horizontal.no-row-gap{row-gap:0}.collection-horizontal[data-stretch=true]{width:100%;justify-content:space-between}.collection-horizontal[data-stretch=true]>*{margin-right:0}.collection-horizontal[data-uniform=true]>*{flex:1 1 0px}.collection-horizontal[data-wrap=true],.collection-horizontal.wrap{max-width:100%;overflow:hidden;flex-wrap:wrap}.collection-horizontal.align-right{justify-content:flex-end}.card{position:relative;display:grid;align-content:start;grid-template-rows:auto auto auto 1fr;min-width:clamp(200px,20vw,300px);padding:1.25em 1em;background-color:var(--bgSecondary);color:var(--fgSecondary);transition:opacity .2s}.card[data-small=true]{font-size:.85rem;min-width:0px}.card[disabled]{opacity:.5;pointer-events:none}.card[data-highlight=false]:not(:hover,:focus-within){opacity:.5}.card:has(.card-image:not([data-position])){grid-template-rows:auto auto auto auto 1fr}.card>*:not(image){z-index:1;transition:opacity .5s cubic-bezier(.17,.25,0,.77)}.card-image{width:100%;margin-bottom:1em;outline:1px solid var(--accentVeryLight);object-fit:cover;object-position:center;pointer-events:none}.card-image[data-position]{position:absolute;max-height:100%;min-height:100%;max-width:100%;min-width:100%;top:50%;left:50%;translate:-50% -50%;opacity:.1;transition:opacity .5s cubic-bezier(.17,.25,0,.77)}.card:not(:hover) .card-image[data-position=reverse-hover]{opacity:1!important}.card:has(.card-image[data-position=reverse-hover]):not(:hover)>*{opacity:0}.card:hover .card-image[data-position=hover]{opacity:1!important}.card:has(.card-image[data-position=hover]):hover>*{opacity:0}.card-title{color:var(--fgPrimary);margin:0}.card-subtitle{margin-bottom:10px;font-size:smaller}.card-buttons{align-self:end}.h2{display:flex;flex-wrap:nowrap;align-items:center;gap:.5em;height:1em;font-size:36px}.h2>h2{font-size:1em}.h2>h2:has(em){color:var(--greyLight)}.h2>h2>em{color:var(--fgPrimary);font-style:normal}.h2>.icon{position:relative;--size: 1em;color:var(--fgPrimary)}.h2>.icon:hover{font-variation-settings:"FILL" 1}@media (width <=1100px){.h2{font-size:32px}}@media (width <=620px){.h2{font-size:22px}}#localisation>.sectionGrid{grid-template:"a1 a1 a2" auto "a1 a1 a3" auto "a4 a5 a5" auto / 1fr 1fr 1fr}@media (width <= 1100px){#localisation>.sectionGrid{grid-template:"a1 a2" auto "a1 a3" auto "a4 a5" auto / 1fr 1fr}}@media (width <= 620px){#localisation>.sectionGrid{grid-template:"a1" auto "a2" auto "a3" auto "a4" auto "a5" auto / 1fr}}#projects>.sectionGrid{grid-template:"a1 a1 a2" auto "a1 a1 a3" auto "a4 a5 a5" auto / 1fr 1fr 1fr}@media (width <= 1100px){#projects>.sectionGrid{grid-template:"a1 a2" auto "a1 a3" auto "a4 a5" auto / 1fr 1fr}}@media (width <= 620px){#projects>.sectionGrid{grid-template:"a1" auto "a2" auto "a3" auto "a4" auto "a5" auto / 1fr}}svg .cls-1{fill:currentColor}:root[data-color-scheme=st]{--hue: 209}:root[data-color-scheme=graphic]{--hue: 240;--sat1: 30%;--sat2: 20%}:root[data-color-scheme=error]{--sat1: 0%;--sat2: 0%;--lum: 7%}:root,::backdrop{--hue: 130;--sat1: 40%;--sat2: 36%;--lum: 30%;--accentLight: hsl(var(--hue), 20%, 48%);--accentDark: hsl(var(--hue), 55%, 30%);--accentWarn: hsl(0, 40%, 48%);--accentOk: hsl(160, 40%, 48%);--accentVeryLight: hsl(var(--hue), 53%, 87%);--accentVeryLightContrast: hsl(var(--hue), 53%, 87%);--bgPrimary: hsl(0, 0%, 100%);--bgSecondary: hsl(0, 0%, 94%);--bgContrast: hsl(0, 0%, 21%);--bgHighlight: hsl(var(--hue), 100%, 97%);--bgPositive: hsl(156deg, 100%, 87%);--fgPrimary: hsl(0, 0%, 21%);--fgSecondary: hsl(0, 0%, 35%);--fgTertiary: hsl(0, 0%, 38%);--fgContrast: hsl(0, 0%, 100%);--greyLight: hsl(0, 0%, 67%);--tablePrimary: hsl(0, 0%, 100%);--tableEmpty: hsl(0, 0%, 94%);--border: hsl(0, 0%, 90%);color-scheme:light}:root[data-theme=dark],:root[data-theme=dark] ::backdrop{--accentLight: hsl(var(--hue), 55%, 30%);--accentDark: hsl(var(--hue), 20%, 48%);--accentWarn: hsl(0, 40%, 40%);--accentOk: hsl(160, 55%, 30%);--accentVeryLight: hsl(var(--hue), 25%, 26%);--accentVeryLightContrast: hsl(var(--hue), 53%, 87%);--bgPrimary: hsl(0, 0%, 7%);--bgSecondary: hsl(0, 0%, 11%);--bgContrast: hsl(0, 0%, 21%);--bgHighlight: hsl(var(--hue), 20%, 12%);--bgPositive: hsl(156deg, 20%, 12%);--fgPrimary: hsl(0, 0%, 100%);--fgSecondary: hsl(0, 0%, 92%);--fgTertiary: hsl(0, 0%, 86%);--fgContrast: hsl(0, 0%, 100%);--greyLight: hsl(0, 0%, 67%);--tablePrimary: hsl(0, 0%, 9%);--tableEmpty: hsl(0, 0%, 6%);--border: hsl(0, 0%, 17%);color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]),:root:not([data-theme=light]) ::backdrop{--accentLight: hsl(var(--hue), 55%, 30%);--accentDark: hsl(var(--hue), 20%, 48%);--accentWarn: hsl(0, 40%, 40%);--accentOk: hsl(160, 55%, 30%);--accentVeryLight: hsl(var(--hue), 25%, 26%);--accentVeryLightContrast: hsl(var(--hue), 53%, 87%);--bgPrimary: hsl(0, 0%, 7%);--bgSecondary: hsl(0, 0%, 11%);--bgContrast: hsl(0, 0%, 21%);--bgHighlight: hsl(var(--hue), 20%, 12%);--bgPositive: hsl(156deg, 20%, 12%);--fgPrimary: hsl(0, 0%, 100%);--fgSecondary: hsl(0, 0%, 92%);--fgTertiary: hsl(0, 0%, 86%);--fgContrast: hsl(0, 0%, 100%);--greyLight: hsl(0, 0%, 67%);--tablePrimary: hsl(0, 0%, 9%);--tableEmpty: hsl(0, 0%, 6%);--border: hsl(0, 0%, 17%);color-scheme:dark}}:root{--font1: "Work Sans", arial, sans-serif;--font2: "Inter", arial, sans-serif}*{transition:background-color .2s,color .2s}html{scroll-snap-type:y mandatory}body{background-color:var(--bgPrimary);font-family:var(--font2);font-weight:500;overflow-x:hidden;margin:0}body:has(.modal){overflow-y:hidden}section{display:grid;grid-template:"heading" auto "content" 1fr / 1fr;gap:1em;min-height:100svh;width:100vw;overflow-x:hidden;box-sizing:border-box;padding:2em 3em 2em 86px;transition:padding .2s;scroll-snap-align:start}:root[data-menu-collapsed] section{padding:2em 22px}.sectionGrid{display:grid;grid-template:"a1 a2 a3" auto "a4 a5 a6" auto / 1fr 1fr 1fr;gap:1em}section.quarter{min-height:25svh}section.half{min-height:50svh}section.threequarters{min-height:75svh}section.full.max-full{min-height:100svh;max-height:100lvh}.sectionGrid>*:nth-child(1){grid-area:a1}.sectionGrid>*:nth-child(2){grid-area:a2}.sectionGrid>*:nth-child(3){grid-area:a3}.sectionGrid>*:nth-child(4){grid-area:a4}.sectionGrid>*:nth-child(5){grid-area:a5}.sectionGrid>*:nth-child(6){grid-area:a6}h1,h2,h3,h4,h5,h6{color:var(--fgPrimary);margin:0}p{font-weight:500;color:var(--fgSecondary);margin:0}li{font-weight:500;color:var(--fgTertiary)}footer{font-size:small;color:var(--fgSecondary)}@media (hover: none),(width <=620px),(pointer:none),(pointer:coarse),(any-pointer: coarse){html{scroll-snap-type:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{translate:-100%}}.centre{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;text-align:center}.grid-2{display:grid;grid-template-columns:1fr 1fr;column-gap:.25rem}.grid-3{display:grid;grid-template-columns:350px 350px 350px;gap:1.5rem}h1{font-family:var(--font1);font-size:7rem;animation:load .5s .1s both}#hero h1{color:var(--fgContrast)}@media (width <= 1300px){h1{font-size:6rem}}@media (width <= 1100px){h1{font-size:4.5rem}}@media (width <= 620px){h1{font-size:3rem}}@keyframes load{0%{font-weight:400}to{font-weight:600}}@property --hueValue{syntax: "<number>"; initial-value: 130; inherits: false;}@property --sat1Value{syntax: "<percentage>"; initial-value: 40%; inherits: false;}@property --sat2Value{syntax: "<percentage>"; initial-value: 36%; inherits: false;}@property --lumValue{syntax: "<percentage>"; initial-value: 30%; inherits: false;}#hero{--hueValue: var(--hue);--sat1Value: var(--sat1);--sat2Value: var(--sat2);--lumValue: var(--lum);position:relative;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box;background:linear-gradient(300deg,hsl(var(--hueValue) var(--sat1Value) var(--lumValue)),hsl(var(--hueValue) var(--sat2Value) var(--lumValue)));color:var(--fgContrast);padding-top:5em;overflow:hidden;transition:--hueValue 1s,--sat1Value 1s,--sat2Value 1s,--lumValue 1s}#hero>*{transition:transform .2s ease-out}#hero-description{color:var(--fgContrast);width:70%;font-size:min(2em,5vw)}#hero-icon{display:flex;place-items:center;place-content:center;position:absolute;max-width:80vmax;max-height:100vmin;width:100%;height:100%;right:0;top:50%;translate:0 -50%;font-size:120svh;color:var(--fgContrast);opacity:.1;pointer-events:none;-webkit-user-select:none;user-select:none}#hero-icon>*{width:100%;aspect-ratio:1;font-size:100%;display:flex;place-items:center;place-content:center}.collection-vertical{display:flex;flex-direction:column;overflow:auto;gap:10px}.collection-vertical[data-stretch=true]{width:100%;place-items:stretch;place-content:stretch}dialog{position:fixed;left:0;height:calc(100dvh - 64px);min-height:100dvh;max-height:100dvh;min-width:450px;margin:0 64px 0 0;padding:0;border:none;overflow:hidden;background-color:transparent}@media (width <= 620px){dialog{min-width:85vw;max-width:none}}dialog[open]{animation:modal-shadow-open .2s both}dialog.closing{animation:modal-shadow-close .2s both}dialog::backdrop{background-color:var(--bgContrast);opacity:.5}dialog[open]::backdrop{animation:modal-backdrop-open .5s both}dialog.closing::backdrop{animation:modal-backdrop-close .2s both}dialog[open]>.modal-background{position:absolute;width:100%;height:100%;background-color:var(--bgPrimary);z-index:-1;animation:modal-background-open .25s both}dialog.closing>.modal-background{animation:modal-background-close .2s both}dialog[open]>.modal-inner{height:100%;width:100%;padding:32px;box-sizing:border-box}dialog[open]>.modal-inner>*,dialog[open]>.modal-inner>ul>li{animation:modal-content-open .25s both;animation-delay:calc(var(--animation-order) * 7ms)}dialog.closing[open]>.modal-inner>*,dialog.closing[open]>.modal-inner>ul>li{animation:modal-content-close .2s both}@keyframes modal-backdrop-open{0%{opacity:0}}@keyframes modal-backdrop-close{to{opacity:0}}@keyframes modal-background-open{0%{top:-100vh}to{top:0}}@keyframes modal-background-close{0%{top:0;box-shadow:0 0 16px #000000bf}to{top:-100vh}}@keyframes modal-shadow-open{to{box-shadow:0 0 16px #000000bf}}@keyframes modal-shadow-close{0%{box-shadow:0 0 16px #000000bf}}@keyframes modal-content-open{0%{translate:-150%}}@keyframes modal-content-close{to{translate:-150%}}#modal-language>.modal-inner{grid-template-rows:auto 1fr auto;gap:6px}#modal-language[open]>.modal-inner{display:grid}#modal-language[open]>.modal-inner>h2{margin-bottom:10px}#language-list{list-style-type:none;overflow:auto;padding:0;margin:0}.language-item{position:relative}.language-item-container{display:grid;grid-template-columns:1fr auto;align-items:stretch;justify-content:stretch;width:100%}.language-item-container>*{height:100%}.language-item-container>*:first-child{flex:1}.language-details{display:grid;grid-template-columns:auto max-content auto auto;overflow-x:hidden;align-items:center;gap:12px}.language-details>span:nth-child(n+3){opacity:0;transition:opacity .2s}li:hover .language-details>span:nth-child(n+3){opacity:.4}#theme-switcher>div{color:var(--fgSecondary);background-color:var(--bgSecondary);height:44px;box-shadow:none;transition:filter .2s,background-color .2s,color .2s,box-shadow .2s}#theme-switcher>div>input{opacity:0;position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}#theme-switcher>div>label{height:100%;width:100%;display:flex;place-items:center;place-content:center;cursor:pointer}#theme-switcher>div:has(:focus-visible){filter:brightness(.8);box-shadow:inset 0 0 0 3px currentColor;outline:none}:root:not([data-menu-collapsed]) *[data-contrast=true] #theme-switcher>div{background-color:var(--fgContrast);color:var(--bgContrast)}#theme-switcher>div:has(input:checked){background-color:var(--accentVeryLight)}:root:not([data-menu-collapsed]) *[data-contrast=true] #theme-switcher>div:has(input:checked){background-color:var(--accentVeryLightContrast);color:var(--bgContrast)}#theme-switcher>div:hover{filter:brightness(.9)}.navigation-detector{position:absolute;visibility:hidden;pointer-events:none;top:90svh}#navigation-detector-2{top:10svh}#navigation-rail{position:fixed;left:0;top:0;height:calc(100dvh - 4em);width:40px;padding:2em 10px 2em 22px;display:grid;grid-template-rows:[hamburger-start] auto [logo-start] auto [nav-start] auto [nav-end] 1fr [controls-start] auto [controls-end];justify-content:center;z-index:9999;color:var(--fgTertiary)}#navigation-rail>*{transition:translate .2s}:root[data-menu-collapsed=true] #navigation-rail>*:not(#navigation-rail-collapser){translate:-200%}#navigation-rail-collapser{display:none;color:var(--fgSecondary);background-color:var(--bgPrimary);text-align:center;line-height:40px;height:40px;grid-row:hamburger-start / logo-start;cursor:pointer;border-radius:6px;transition:color .2s,background-color .2s,translate .2s,box-shadow .2s}#navigation-rail-collapser>.icon{transition:rotate .2s}:root[data-menu-collapsed] #navigation-rail-collapser{display:flex;place-content:center;place-items:center;pointer-events:auto;grid-row:hamburger-start / logo-start}:root[data-menu-collapsed=true] #navigation-rail-collapser{translate:-10px -20px;box-shadow:0 0 8px #00000040}:root[data-menu-collapsed=false] #navigation-rail-collapser>.icon{rotate:180deg}#navigation-rail-collapser:focus-visible{color:var(--accentDark)!important;background-color:var(--accentVeryLight)!important;outline:none!important}#navigation-rail-dismiss{opacity:0}:root[data-menu-collapsed] #navigation-rail-dismiss{position:fixed;top:0;left:0;width:100vw;height:100lvh;z-index:9998;pointer-events:none;background-color:var(--bgContrast);transition:opacity .2s}:root[data-menu-collapsed=false] #navigation-rail-dismiss{pointer-events:all;opacity:.5}:root[data-menu-collapsed] #navigation-rail{padding-right:22px;background-size:100% 200%;background-image:linear-gradient(to bottom,transparent 50%,var(--bgPrimary) 50%);transition:background-position .2s cubic-bezier(0,0,0,1),box-shadow .2s}:root[data-menu-collapsed=true] #navigation-rail{pointer-events:none}:root[data-menu-collapsed=false] #navigation-rail{background-position:0 -100%;box-shadow:0 0 16px #000000bf}#navigation-rail-logo{grid-row:logo-start / nav-start;color:var(--fgSecondary);border-radius:6px;height:40px;transition:color .2s,background-color .2s,translate .2s}:root[data-menu-collapsed] #navigation-rail-logo{margin-top:12px}#navigation-rail-logo svg{width:100%;padding:5px;box-sizing:border-box}#navigation-rail-logo:focus-visible{color:var(--accentDark)!important;background-color:var(--accentVeryLight)!important}:root:not([data-menu-collapsed=false]) #navigation-rail-collapser[data-contrast=true],:root:not([data-menu-collapsed]) #navigation-rail-logo[data-contrast=true]{color:var(--fgContrast);background-color:transparent;translate:0;box-shadow:none}#navigation-rail-controls{grid-row:controls}:root:not([data-menu-collapsed]) *[data-contrast=true] .button.rail{background-color:var(--fgContrast);color:var(--bgContrast)}
