:root{--bg:#fbf8f2; --surface:#ffffff; --text:#1b1a17; --muted:#3d3a34;--accent:#7a3410; --accent-ink:#ffffff; --link:#0a4f6e; --link-visited:#5b2a86;--line:#d9d0c1; --soft:#f3ecdf; --focus:#1b1a17; --focus-ring:#ffbf47;--maxw:46rem; --widew:72rem;--serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;--ink:#221c17; --ink-text:#fbf8f2; --ink-muted:#e6dccb;color-scheme: light dark;}@media (prefers-color-scheme: dark){:root{ --bg:#14130f; --surface:#1e1c17; --text:#f4efe6; --muted:#ddd5c6;--accent:#f0a46c; --accent-ink:#14130f; --link:#8fd3f5; --link-visited:#d4b0f5;--line:#4a4539; --soft:#26231c; --focus:#f4efe6; --focus-ring:#ffbf47;--ink:#0c0b09; --ink-text:#f4efe6; --ink-muted:#ddd5c6; }}*,*::before,*::after{box-sizing:border-box}html{font-size:112.5%; -webkit-text-size-adjust:100%; text-size-adjust:100%}@media (min-width:48em){html{font-size:125%}}body{margin:0; background:var(--bg); color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.65; overflow-wrap:break-word}h1,h2,h3{font-family:var(--serif); font-weight:700; letter-spacing:-.005em; line-height:1.2; color:var(--text)}h1{font-size:clamp(2rem,1.4rem + 2.6vw,3rem); margin:0 0 .4em}h2{font-size:1.6rem; margin:2.6rem 0 .8rem; padding-bottom:.35rem; border-bottom:1px solid var(--line)}h3{font-size:1.2rem; margin:1.4rem 0 .3rem}p,li{max-width:70ch}a{color:var(--link); text-decoration-thickness:.08em; text-underline-offset:.18em}a:visited{color:var(--link-visited)}a:hover{text-decoration-thickness:.18em}:focus-visible{outline:4px solid var(--focus-ring); outline-offset:3px; box-shadow:0 0 0 7px var(--focus)}.skip{position:absolute; left:.5rem; top:-10rem; background:var(--text); color:var(--bg); padding:.7rem 1rem; z-index:10; font-weight:700; border-radius:.3rem}.skip:focus{top:.5rem; color:var(--bg)}.wrap{max-width:var(--maxw); margin:0 auto; padding:0 1.1rem}.lead{font-size:1.25rem; color:var(--muted); margin-top:0}.glance{background:var(--soft); border-left:6px solid var(--accent); padding:.4rem 1.2rem .6rem; border-radius:.3rem}.glance h2{margin-top:.8rem}ul{padding-left:1.3rem}li{margin:.35rem 0}.cta{display:flex; flex-wrap:wrap; gap:.8rem; margin:2rem 0 0; padding:0; list-style:none}.btn{display:inline-block; padding:.7rem 1.2rem; border-radius:.4rem; border:2px solid var(--accent); font-weight:700; text-decoration:none; min-height:44px}.btn, .btn:visited{color:var(--text)}.btn.primary, .btn.primary:visited{background:var(--accent); color:var(--accent-ink)}.btn:hover{text-decoration:underline}.entry{border-top:1px solid var(--line); padding-top:.4rem; margin-top:1.2rem}.entry h3{margin-bottom:.1rem}.meta{margin:.1rem 0 .4rem; color:var(--muted); font-weight:600}.note{font-style:italic; color:var(--muted)}.research{background:var(--surface); border:2px solid var(--line); border-radius:.4rem; padding:1rem 1.2rem}.research cite{font-family:Georgia,"Times New Roman",serif; font-size:1.2rem; font-style:italic; display:block; margin-bottom:.6rem}dl{margin:0} dt{font-weight:700} dd{margin:0 0 .6rem}table{border-collapse:collapse; width:100%; max-width:30rem}th,td{text-align:left; padding:.5rem .6rem; border-bottom:1px solid var(--line)}.contact-card{background:var(--soft); border-radius:.4rem; padding:1rem 1.2rem; font-size:1.15rem}.contact-card p{margin:.3rem 0}@media (prefers-reduced-motion: reduce){*{animation:none!important; transition:none!important; scroll-behavior:auto!important}}@media (forced-colors: active){nav a[aria-current="page"]{border:2px solid CanvasText}.btn{border:2px solid ButtonText}.hero img{border-color:CanvasText}:focus-visible{outline:3px solid Highlight}}@media print{header.site nav, .skip, .cta, footer.site{display:none}body{background:#fff; color:#000; font-size:12pt}a{color:#000}}caption{text-align:left;font-weight:700;padding:.3rem 0}h4{font-family:Georgia,"Times New Roman",Times,serif; font-size:1.08rem; line-height:1.25; margin:0 0 .2rem}.pull{font-family:Georgia,"Times New Roman",serif; font-size:1.3rem; line-height:1.45; font-style:italic; margin:1.6rem 0; padding:.6rem 0 .6rem 1.1rem; border-left:6px solid var(--accent); color:var(--text)}figure{margin:1.6rem 0}figure img{display:block; width:100%; height:auto; border-radius:.4rem; background:var(--soft)}.gallery{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr)); gap:1rem; margin:1rem 0 1.6rem}.gallery figure{margin:0}.gallery img{aspect-ratio:4/3; object-fit:cover}.projects{display:grid; gap:1rem; margin:.8rem 0 1.4rem}.project{background:var(--surface); border:2px solid var(--line); border-left:6px solid var(--accent); border-radius:.4rem; padding:.9rem 1.1rem}.project p{margin:.3rem 0 .6rem}.project dt{margin-top:.3rem}.project dd{margin-bottom:.3rem}.news{list-style:none; padding:0}.news li{margin:.8rem 0; padding-left:.9rem; border-left:4px solid var(--line)}.news .meta{display:block; margin:0}.donate{background:var(--soft); border-radius:.4rem; padding:1rem 1.2rem; margin:1rem 0}.donate p{margin:.4rem 0}.cv-contact{background:var(--soft); border-radius:.4rem; padding:.8rem 1.1rem}.cv-contact p{margin:.2rem 0}.cv h3{margin-top:1.1rem}@media (forced-colors: active){.project,.pull,.news li,.donate,.cv-contact{border-color:CanvasText}}@media print{ figure, .gallery{display:none} }ul.social{list-style:none; padding:0; margin:.4rem 0 1rem; display:flex; flex-wrap:wrap; gap:.5rem 1.5rem}ul.social a{display:inline-flex; align-items:center; gap:.45rem; min-height:44px; text-underline-offset:.2em}ul.social svg{flex:none}figure.bp{margin:0}figure.bp img{border-radius:.4rem; height:auto}figcaption{margin-top:.45rem; color:var(--muted); font-size:.98rem; line-height:1.45}.bp-row{display:grid; gap:1rem; margin:1.6rem 0; align-items:start}.bp-row.bp-n2{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}.bp-row.bp-n1{max-width:30rem}.bp-gallery{display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr)); gap:1.5rem 1.25rem; margin:1rem 0 2rem; align-items:start}.media-item{display:flex; flex-wrap:wrap; gap:1.25rem; align-items:flex-start; margin:1rem 0 2rem}.media-item figure.still{margin:0; flex:0 0 auto; width:min(11.25rem,45vw)}.media-item figure.still img{border-radius:.4rem; height:auto}.media-item > div{flex:1 1 16rem}.media-item h3{margin-top:0}.aka{margin:.2rem 0 1rem; color:var(--muted); font-size:1rem; font-style:italic}.wide{max-width:var(--widew); margin:0 auto; padding:0 1.25rem}header.site{background:var(--surface); border-top:6px solid var(--accent); border-bottom:1px solid var(--line)}.bar{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:.8rem; padding-bottom:.8rem}.brand{display:inline-flex; align-items:center; gap:.75rem; color:var(--text); text-decoration:none; min-height:44px}.brand:visited{color:var(--text)}.brand img{width:3rem; height:3rem; flex:none}.brand-text{display:flex; flex-direction:column; line-height:1.15}.brand-name{font-family:var(--serif); font-size:1.35rem; font-weight:700}.brand-sub{font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-top:.2rem}.brand:hover .brand-name{text-decoration:underline; text-underline-offset:.18em}nav ul{list-style:none; margin:0; padding:0}nav a{color:var(--text); text-decoration:none; font-weight:600}nav a:visited{color:var(--text)}nav a:hover{text-decoration:underline; text-underline-offset:.2em}.navband{display:none; border-top:1px solid var(--line)}.navband ul{display:flex; flex-wrap:wrap; gap:0 .25rem}.navband a{display:inline-flex; align-items:center; min-height:48px; padding:0 .7rem; font-size:.9rem; border-bottom:4px solid transparent; margin-bottom:-1px}.navband a[aria-current="page"]{border-bottom-color:var(--accent); color:var(--accent)}.menu{position:static}.menu summary{display:inline-flex; align-items:center; gap:.5rem; min-height:44px; padding:.4rem .9rem; border:2px solid var(--text); border-radius:.3rem; font-weight:700; cursor:pointer; list-style:none; background:var(--surface)}.menu summary::-webkit-details-marker{display:none}.menu summary::before{content:""; width:1.1rem; height:.8rem; border-top:2px solid currentColor; border-bottom:2px solid currentColor; background:linear-gradient(currentColor,currentColor) center/100% 2px no-repeat}.menu[open] summary{background:var(--text); color:var(--surface)}.menu nav{position:absolute; left:0; right:0; margin-top:.8rem; background:var(--surface); border-top:1px solid var(--line); border-bottom:4px solid var(--accent); z-index:5; box-shadow:0 12px 24px rgba(0,0,0,.12)}.menu nav ul{max-width:var(--widew); margin:0 auto; padding:.4rem 1.25rem .8rem}.menu nav li{margin:0; border-bottom:1px solid var(--line)}.menu nav li:last-child{border-bottom:0}.menu nav a{display:flex; align-items:center; min-height:48px; padding:0 .3rem}.menu nav a[aria-current="page"]{color:var(--accent); border-left:4px solid var(--accent); padding-left:.7rem}header.site{position:relative}@media (min-width:62em){ .menu{display:none} .navband{display:block} }main{padding:0 0 3.5rem}.masthead{background:var(--soft); border-bottom:1px solid var(--line)}.masthead-inner{padding-top:2.6rem; padding-bottom:2.2rem}.masthead-text{max-width:var(--maxw)}.masthead h1{margin:0 0 .5rem}.masthead .lead{font-size:1.2rem; margin:0 0 .4rem; color:var(--muted); max-width:60ch}.masthead .aka{margin:.5rem 0 0}.masthead.hero{background:var(--ink); color:var(--ink-text); border-bottom:6px solid var(--accent)}.masthead.hero .masthead-inner{display:flex; flex-wrap:wrap; align-items:center; gap:2rem 2.6rem; padding-top:3.2rem; padding-bottom:3.2rem}.masthead.hero picture{flex:none}.masthead.hero img{display:block; width:12rem; height:12rem; border-radius:50%; object-fit:cover; border:4px solid var(--ink-text); background:var(--soft)}.masthead.hero .masthead-text{flex:1 1 18rem}.masthead.hero h1{color:var(--ink-text); font-size:clamp(2.3rem,1.5rem + 3.2vw,3.6rem)}.masthead.hero .lead, .masthead.hero .aka{color:var(--ink-muted)}.masthead.hero .lead{font-size:1.25rem}@media (min-width:48em){ .masthead.hero img{width:15rem; height:15rem} }.content{padding-top:1.6rem}.content > p:first-child{font-size:1.1rem}.glance,.project,.research,.contact-card,.donate,.cv-contact{background:var(--surface); border:1px solid var(--line); border-top:4px solid var(--accent); border-left:1px solid var(--line); border-radius:.35rem; padding:1.1rem 1.35rem; box-shadow:0 1px 2px rgba(0,0,0,.05)}.glance{margin:2.4rem 0}.glance h2{margin-top:.2rem; border-bottom:0; padding-bottom:0}.entry{border-top:1px solid var(--line); padding-top:.8rem; margin-top:1.6rem}.pull{border-left-width:4px; background:var(--soft); padding:1rem 1.25rem; border-radius:0 .35rem .35rem 0}figure img, figure.bp img, .media-item figure.still img{border-radius:.3rem; box-shadow:0 1px 3px rgba(0,0,0,.18)}figcaption{border-left:3px solid var(--line); padding-left:.6rem}.btn{border-radius:.3rem}footer.site{background:var(--ink); color:var(--ink-muted); font-size:.95rem; border-top:6px solid var(--accent)}footer.site a, footer.site a:visited{color:var(--ink-text)}.footer-grid{display:grid; gap:1.8rem 2.5rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr)); padding-top:2.4rem; padding-bottom:1.6rem}.footer-grid p{margin:.25rem 0}.footer-name{display:flex; align-items:center; gap:.6rem; font-family:var(--serif); font-size:1.25rem; font-weight:700; color:var(--ink-text)}.footer-name img{width:2.5rem; height:2.5rem; background:#fbf8f2; border-radius:50%; padding:.15rem}.footer-label{margin:0 0 .4rem; font-size:.8rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-muted)}footer.site ul.social{flex-direction:column; gap:0; margin:0}footer .footer-links ul{columns:2; column-gap:1.5rem}footer .footer-links li{margin:0; break-inside:avoid}footer .footer-links a, footer ul.social a{display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:.2em; font-weight:400}.footer-bottom{border-top:1px solid rgba(255,255,255,.2); padding-top:1rem; padding-bottom:2rem}.footer-bottom p{margin:.3rem 0; max-width:80ch}footer.site :focus-visible{box-shadow:0 0 0 7px var(--ink)}@media (forced-colors: active){.masthead.hero, footer.site, header.site{border-color:CanvasText}.navband a[aria-current="page"]{border-bottom-color:Highlight}.menu summary{border-color:ButtonText}}@media print{ .menu, .navband, .masthead.hero picture{display:none} .masthead.hero{background:#fff; color:#000} .masthead.hero h1,.masthead.hero .lead{color:#000} }@media (prefers-reduced-motion: no-preference){ html{scroll-behavior:smooth} }@media (forced-colors: active){.masthead.hero, footer.site{background:Canvas; color:CanvasText}.masthead.hero h1, .masthead.hero .lead, .masthead.hero .aka, .footer-name, .footer-label, footer.site p{color:CanvasText}footer.site a, footer.site a:visited{color:LinkText}}.bar{flex-wrap:wrap}.brand{flex:1 1 12rem; min-width:0}.brand-text{min-width:0}.menu{flex:none}@media (max-width:24em){ .brand img{width:2.4rem; height:2.4rem} .brand-name{font-size:1.15rem} .brand-sub{font-size:.7rem} }.bar{flex-wrap:nowrap}.brand{flex:1 1 0}@media (max-width:30em){ .brand-name{font-size:1.12rem} .brand-sub{font-size:.68rem; letter-spacing:.05em} .brand img{width:2.5rem; height:2.5rem} .menu summary{padding:.4rem .7rem} }.contact-form{background:var(--surface); border:1px solid var(--line); border-top:4px solid var(--accent); border-radius:.35rem; padding:1.2rem 1.35rem; margin:1rem 0 2rem}.field{margin:0 0 1.2rem}.field label{display:block; font-weight:700; margin-bottom:.25rem}.hint{margin:.1rem 0 .4rem; color:var(--muted); font-size:.95rem}.contact-form input[type=text], .contact-form input[type=email], .contact-form textarea{display:block; width:100%; max-width:36rem; font:inherit; color:var(--text); background:var(--bg); border:2px solid var(--muted); border-radius:.3rem; padding:.6rem .7rem; min-height:44px}.contact-form textarea{min-height:10rem; resize:vertical}.contact-form input:focus-visible, .contact-form textarea:focus-visible{border-color:var(--text)}.contact-form button{font:inherit; cursor:pointer}.hp{display:none !important}.error-summary{border:3px solid #a4161a; border-radius:.35rem; padding:.8rem 1.2rem; margin:1.2rem 0; background:var(--surface)}.error-summary h2{margin-top:.2rem; border-bottom:0; color:var(--text)}.invite p{margin:.3rem 0 .4rem}.lang-switch{flex:none; font-weight:700; min-height:44px; display:inline-flex; align-items:center; padding:0 .4rem; margin-left:auto}footer .invite, .footer-id p:last-child{max-width:28rem}@media (prefers-color-scheme: dark){ .error-summary{border-color:#ff8a80} }@media (forced-colors: active){ .contact-form input, .contact-form textarea, .error-summary{border-color:CanvasText} }@media (max-width:61.99em){ .bar:has(.lang-switch){flex-wrap:wrap; row-gap:.2rem} .bar .lang-switch{flex-basis:100%; margin:0; padding:0; min-height:44px} }html[lang=sv] .brand-sub{letter-spacing:.01em; font-size:.72rem}h1[tabindex="-1"]:focus{outline:none}