:root{--grey: #e8e8e8;--navy: rgb(30, 30, 100);--navy-deep: rgb(10, 10, 50);--gold: rgb(207, 181, 59);--orange: #fa923f;--green: #4fae7e;--purple: #9b72d9;--text: #1d1d1d;--muted: #5a5a66}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{margin:0;font-family:Nunito Sans,Lucida Sans,Lucida Grande,Geneva,Verdana,sans-serif;color:var(--text);background:#fff;line-height:1.55}a{color:var(--navy)}a:hover{color:var(--orange)}:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.skyline{display:flex;justify-content:center;background:var(--grey);height:250px;overflow-x:auto;scrollbar-width:none}.skyline::-webkit-scrollbar{display:none}.location{position:relative;flex:0 0 auto;width:200px;height:250px;transition:background-color .75s;text-decoration:none}.location:hover,.location:focus-visible{background-color:#00000040}.silhouette{position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:no-repeat;background-position-x:50%}.Lund{background-image:url(/img/silhouettes/domkyrkan.png);background-size:120px;background-position-y:88px}.Luxembourg{background-image:url(/img/silhouettes/gellefra.png);background-size:130px;background-position-y:65px}.London{background-image:url(/img/silhouettes/stp.png);background-size:300px;background-position-y:80px}.Kingston{background-image:url(/img/silhouettes/kingston.png);background-size:150px;background-position-y:120px}.Gothenburg{background-image:url(/img/silhouettes/poseidon.png);background-size:110px;background-position-y:100px}.Taipei{background-image:url(/img/silhouettes/taipei.png);background-size:40px;background-position-y:55px}.Milano{background-image:url(/img/silhouettes/milano.png);background-size:220px;background-position-y:88px}.location-name{position:absolute;top:30px;left:0;right:0;text-align:center;font-size:20px;font-weight:800;text-transform:uppercase;color:#fffb26d9;opacity:0;transition:opacity .4s}.location:hover .location-name,.location:focus-visible .location-name{opacity:1}.toggle-button{position:fixed;top:18px;left:18px;z-index:300;display:flex;flex-direction:column;justify-content:space-around;width:56px;height:50px;padding:9px 8px;background:var(--navy);border:none;border-radius:8px;cursor:pointer;box-shadow:0 2px 6px #0000004d}.toggle-button__line{width:100%;height:4px;background:var(--gold);border-radius:2px}.side-drawer{position:fixed;top:0;left:0;height:100%;width:70%;max-width:400px;background-color:var(--navy);box-shadow:2px 0 7px #00000080;z-index:200;transform:translate(-105%);transition:transform .3s ease-out}.side-drawer.open{transform:translate(0)}.side-drawer ul{height:100%;margin:0;padding:0 0 0 2.5rem;list-style:none;display:flex;flex-direction:column;justify-content:center}.side-drawer li{margin:.6rem 0}.side-drawer a{color:var(--gold);text-decoration:none;font-size:1.3rem;font-weight:700;letter-spacing:.05em}.side-drawer a:hover,.side-drawer a:focus-visible{color:var(--orange)}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:100}.section2{position:relative;padding-bottom:70px}.rowsection{display:flex;max-width:1100px;margin:0 auto;min-height:500px}.hello{width:50%;text-align:center;padding:120px 1.5rem 0}.hello h1{margin:0;font-weight:400}.hello h1 span{display:block}.hello h1 .hi{font-size:64px;font-weight:800;line-height:1.1}.hello h1 .name{font-size:46px;margin-top:.4rem;line-height:1.15}.hello .tagline{font-size:1.15rem;color:var(--muted);max-width:26rem;margin:1.5rem auto 0;line-height:1.5}.piccontainer{width:50%;display:flex;align-items:flex-end;justify-content:center}.cv-pic{width:255px;height:auto;display:block}.arrow{position:absolute;left:50%;bottom:30px;width:15px;height:15px;border-bottom:2px solid #000;border-right:2px solid #000;transform:translate(-50%) rotate(45deg);animation:fade_move_down 4s ease-in-out infinite}@keyframes fade_move_down{0%{transform:translateY(-10px) rotate(45deg);opacity:0}50%{opacity:1}to{transform:translateY(10px) rotate(45deg);opacity:0}}@media (prefers-reduced-motion: reduce){.arrow{animation:none}}.page{padding:4.5rem 1.5rem;scroll-margin-top:0}.page.alt{background:#f4f4f6}.page-header{text-align:center;font-family:Georgia,serif;font-size:2.5em;font-weight:400;margin:0 0 2rem}.page-header.small{font-size:1.8em;margin-top:3.5rem}.text-block{max-width:40rem;margin:0 auto;font-size:1.08rem}.text-block.center{text-align:center}.timeline{list-style:none;padding:0;margin:0 auto;max-width:48rem}.timeline li{display:grid;grid-template-columns:8.5rem 1fr;gap:1.25rem;padding:1.1rem 0;border-top:1px solid #d9d9e0}.timeline li:first-child{border-top:0}.timeline .when{font-weight:700;color:var(--navy);padding-top:.15rem}.timeline h3{margin:0;font-size:1.15rem}.timeline .org{font-weight:400;color:var(--muted)}.timeline p{margin:.35rem 0 0}.edu{display:grid;grid-template-columns:10rem 1fr;gap:.6rem 1.25rem;max-width:48rem;margin:0 auto}.edu dt{font-weight:700;color:var(--navy)}.edu dd{margin:0}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.25rem;max-width:64rem;margin:0 auto}.project{border-top:5px solid var(--gold);background:#fff;padding:1.25rem 1.25rem 1.5rem;box-shadow:0 1px #e4e4ea}.project h3{margin:0 0 .5rem;font-size:1.25rem}.project p{margin:0 0 .75rem}.status{font-size:.85rem;color:var(--muted)}.map-page{background:var(--navy-deep);color:#f2f2f7}.map-page .page-header{color:var(--gold)}.map-placeholder{min-height:640px}.map-page .text-block{color:#c9c9da}.map-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin:1.25rem 0 1.5rem}.map-controls button{white-space:nowrap}.map-controls button,.place-list button{font:inherit;cursor:pointer;background:transparent;color:var(--gold);border:2px solid var(--gold);border-radius:999px;padding:.3rem 1rem}.map-controls button.active,.place-list button.active{background:var(--gold);color:var(--navy-deep)}.map-controls button:hover,.place-list button:hover{border-color:var(--orange)}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 18rem;gap:1.5rem;max-width:76rem;margin:0 auto;align-items:start}.map-frame{position:relative;border:5px ridge var(--gold);background:var(--navy-deep);line-height:0}.map-frame svg{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.map-frame svg:active{cursor:grabbing}.zoom-buttons{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:4px;z-index:2;line-height:1}.zoom-buttons button{width:34px;height:34px;font:inherit;font-size:1.3rem;font-weight:700;cursor:pointer;background:var(--navy);color:var(--gold);border:2px solid var(--gold);border-radius:6px}.zoom-buttons button:hover{border-color:var(--orange);color:var(--orange)}.range{stroke:#b9b9c9;stroke-width:.8;stroke-dasharray:3 2;pointer-events:none}.hatch-line{stroke:#c4c4d4}.range.park{stroke:#3f9f55}.hatch-line.park{stroke:#3fb55a}.map-frame svg{width:100%;height:auto;display:block}.ocean{fill:#0e0e46}.country{fill:#2e3a6e;stroke:#0e0e46;stroke-width:.5}.country.region{stroke-width:.35}.country.lived{fill:var(--purple)}.country.work{fill:var(--gold)}.country.visited{fill:var(--green)}.marker{cursor:pointer;outline:none}.marker circle{fill:var(--orange);stroke:#fff;stroke-width:2}.marker.lived circle{fill:var(--purple)}.marker.visited circle{fill:#fff;stroke:#1f7a4d;stroke-width:2.5}.marker.selected circle{fill:#fff;stroke:var(--orange);stroke-width:4}.marker:focus-visible circle{stroke:#fff;stroke-width:5}.marker text{fill:#fff;font-size:15px;font-weight:800;paint-order:stroke;stroke:#0a0a32;stroke-width:4px;stroke-linejoin:round;pointer-events:none}.map-info{background:#ffffff0d;border-left:5px solid var(--gold);padding:1.25rem 1.25rem 1.5rem}.map-info h3{margin:0;font-size:1.6rem;color:#fff}.map-meta{margin:.2rem 0 .75rem;color:var(--gold);font-weight:600}.swatch{width:14px;height:14px;border-radius:3px;display:inline-block}.swatch.lived{background:var(--purple)}.swatch.work{background:var(--gold)}.swatch.visited{background:var(--green)}.map-controls .filter-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .85rem;font-size:.95rem;border:1px solid #55557a;border-radius:999px;background:transparent;color:#8a8aa8;cursor:pointer;text-decoration:none}.map-controls .filter-chip.on{border-color:#fff;color:#fff;background:transparent}.map-controls .filter-chip.small{font-size:.8rem;padding:.2rem .65rem}.map-controls .filter-chip.small.on{background:#ffffff24;border-color:#fff;color:#fff}.map-controls .layers-btn{padding:.3rem .85rem;font-size:.95rem}.layers-btn .count{margin:0 .2rem;padding:0 .45rem;border-radius:999px;background:var(--gold);color:#0b0b2e;font-size:.75rem;font-weight:700}.layers-btn.active .count{background:#0b0b2e;color:var(--gold)}.layers-title{align-self:center;color:#c9c9da;font-size:.85rem}.map-controls.filters,.map-controls.layers-panel{margin-top:-.75rem}.place-group h4{display:flex;align-items:center;gap:.5rem;margin:1.4rem 0 .6rem;font-size:.95rem;color:#c9c9da;font-weight:600}.place-list.lived button{color:#c7aef0;border-color:var(--purple)}.place-list.lived button.active{background:var(--purple);color:#fff}.place-list.visited button{color:var(--green);border-color:var(--green)}.place-list.visited button.active{background:var(--green);color:var(--navy-deep)}.place-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem}.place-group .count{margin-left:.3rem;font-size:.75rem;font-weight:400;color:#8a8aa8}.place-list button.more{border-style:dashed;color:#c9c9da;background:transparent}.place-list button{padding:.15rem .7rem;font-size:.88rem;border-width:1.5px}.contact{text-align:center}.contact-container{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap}.contact-box{display:flex;flex-direction:column;align-items:center;width:110px;text-decoration:none}.profile-pic{display:block;width:90px;height:90px;border-radius:50%;background-repeat:no-repeat;transition:transform .2s}.contact-box:hover .profile-pic{transform:scale(1.06)}.linkedin-pic{background-image:url(/img/pictures/linkedin.jpg);background-size:cover;background-position:center 15%;border:3px solid rgb(0,123,182)}.github-pic{background-image:url(https://github.com/godvig.png?size=180);background-size:104%;background-position:center calc(100% + 9px);background-repeat:no-repeat;background-color:#fff;border:4px solid #000;box-sizing:border-box}.couchsurfing-pic{background-image:url(/img/pictures/couch.jpg);background-size:95px;background-position:-5px -10px;border:3px solid rgb(224,99,70)}.profile-logo{display:block;width:90px;margin-top:6px;background-repeat:no-repeat;background-size:90px}.github-logo{background-image:url(/img/logos/github-logo.png);height:24.2px}.couchsurfing-logo{background-image:url(/img/logos/couchsurfing-logo.png);height:27px}.linkedin-logo{background-image:url(/img/logos/linkedin-logo.png);height:23.8px}.phonemail{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-top:2rem}.phonemail a{color:var(--text);text-decoration:none;display:inline-flex;align-items:center;gap:.6rem}.phonemail a:hover{color:var(--orange)}.icon{width:16px;height:16px;background-size:15px;background-repeat:no-repeat;background-position:center;display:inline-block}.icon.mail{background-image:url(/img/logos/mail.png)}.icon.telephone{background-image:url(/img/logos/phone.png)}footer{background:var(--grey)}.footerText{margin:0;text-align:center;line-height:70px;font-size:16px}@media (max-width: 900px){.map-layout{grid-template-columns:1fr}}@media (max-width: 700px){.skyline{justify-content:flex-start;height:155px;padding-left:70px}.location{zoom:.62}.rowsection{min-height:0}.hello{padding-top:70px}.hello h1 .hi{font-size:48px}.hello h1 .name{font-size:32px}.cv-pic{width:170px}.timeline li{grid-template-columns:1fr;gap:.2rem}.edu{grid-template-columns:1fr;gap:.1rem}.edu dd{margin-bottom:.7rem}.page{padding:3.5rem 1.25rem}}@media (max-width: 520px){.rowsection{flex-direction:column-reverse;align-items:center}.hello,.piccontainer{width:100%}.hello{padding-top:1.5rem}.piccontainer{padding-top:2rem}}.sym-mountain .rock{fill:#8a7a63;stroke:#fff;stroke-width:1.5;stroke-linejoin:round}.sym-mountain .snow{fill:#fff}.sym-football .ball{fill:#fff;stroke:#111;stroke-width:1.2}.sym-football .patch{fill:#111}.sym-football .seam{stroke:#111;stroke-width:1;fill:none}.marker.selected .sym-mountain .rock{stroke:var(--orange);stroke-width:1.6}.marker.selected .sym-football .ball{stroke:var(--orange);stroke-width:2}.marker:focus-visible .sym-mountain .rock,.marker:focus-visible .sym-football .ball{stroke:var(--orange);stroke-width:2.5}.legend-icon{width:18px;height:18px;flex:none;overflow:visible}.place-list.mountain button,.place-list.football button{color:#e6e6f0;border-color:#8f8fb0}.place-list.mountain button.active,.place-list.football button.active{background:#e6e6f0;color:var(--navy-deep)}.marker.selected circle{fill:#e53935;stroke:#fff;stroke-width:3}.marker .halo{fill:#e53935;stroke:#fff;stroke-width:2.5}.marker.selected .sym-mountain .rock,.marker.selected .sym-football .ball{stroke:#fff;stroke-width:1.2}.sym-unesco .edge{fill:none;stroke:#fff;stroke-width:1.5;stroke-linejoin:round}.sym-unesco .dot{fill:#fff}.sym-unesco.cultural .left,.sym-unesco.cultural .right{fill:#d9a441}.sym-unesco.natural .left,.sym-unesco.natural .right{fill:#2f9e8f}.sym-unesco.mixed .left{fill:#d9a441}.sym-unesco.mixed .right{fill:#2f9e8f}.heritage{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.heritage a{color:var(--gold)}.heritage a:hover{color:var(--orange)}.heritage-tag{font-size:.85rem;font-weight:700;padding:.1rem .6rem;border-radius:999px;color:var(--navy-deep)}.heritage-tag.cultural{background:#d9a441}.heritage-tag.natural{background:#2f9e8f;color:#fff}.heritage-tag.mixed{background:linear-gradient(90deg,#d9a441 50%,#2f9e8f 50%)}.jump-photo{display:block;width:100%;height:auto;margin-top:.75rem;border:3px solid var(--gold)}.place-list.unesco button{color:#e6e6f0;border-color:#8f8fb0}.place-list.unesco button.active{background:#e6e6f0;color:var(--navy-deep)}.map-frame .marker circle.hit{fill:transparent;stroke:none}.map-hint{margin:0;color:#c9c9da;font-style:italic}.project-links{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center}.project-links a{font-weight:700}.project-links .open-app{background:var(--navy);color:var(--gold);text-decoration:none;padding:.35rem .9rem;border-radius:999px;border:2px solid var(--navy)}.project-links .open-app:hover{background:var(--gold);color:var(--navy)}
