1<!DOCTYPE html><html lang="nb"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="theme-color" content="#0A1628"/><noscript><style>body { opacity: 1 !important; visibility: visible !important; }</style></noscript><style> 2 /* Hide body content initially - JS will add .hydrated class */ 3 body:not(.hydrated) { 4 opacity: 0; 5 visibility: hidden; 6 } 7 /* Reveal with smooth fade after hydration */ 8 body.hydrated { 9 opacity: 1; 10 visibility: visible; 11 transition: opacity 0.3s ease-out; 12 } 13 /* Fallback: show content after 1s even if JS fails (accessibility & crawlers) */ 14 @media (prefers-reduced-motion: no-preference) { 15 body:not(.hydrated) { 16 animation: fouc-fallback 0.3s ease-out 1s forwards; 17 } 18 @keyframes fouc-fallback { 19 to { opacity: 1; visibility: visible; } 20 } 21 } 22 /* Immediate fallback for reduced motion users */ 23 @media (prefers-reduced-motion: reduce) { 24 body:not(.hydrated) { 25 opacity: 1; 26 visibility: visible; 27 } 28 } 29 </style>
29<script> 30 // Disable all motion animations until React hydrates 31 window.motionGlobalConfig = { skipAnimations: true }; 32 </script>
32<link rel="icon" type="image/png" sizes="192x192" href="https://treeboat.b-cdn.net/web-app-manifest-192x192.png"/><link rel="icon" type="image/png" sizes="96x96" href="https://treeboat.b-cdn.net/web-app-manifest-192x192.png"/><link rel="icon" type="image/png" sizes="32x32" href="https://treeboat.b-cdn.net/web-app-manifest-192x192.png"/><link rel="icon" type="image/png" sizes="16x16" href="https://treeboat.b-cdn.net/web-app-manifest-192x192.png"/><link rel="apple-touch-icon" sizes="180x180" href="https://treeboat.b-cdn.net/web-app-manifest-192x192.png"/><link rel="shortcut icon" href="https://treeboat.b-cdn.net/web-app-manifest-192x192.png"/><title>Program | Risør TrebÃ¥tfestival 2027</title><meta name="description" content="Hele programmet for Risør TrebÃ¥tfestival 2027 â konserter, foredrag, verksteder og seiling, dag for dag."/><meta property="og:title" content="Risør TrebÃ¥tfestival 2027 Program"/><meta property="og:description" content="Hele programmet for Risør TrebÃ¥tfestival 2027, dag for dag."/><meta property="og:image" content="https://treeboat.b-cdn.net/e523ff0da987f5fc4a300d5028fdbd3b.jpeg"/><meta property="og:site_name" content="Risør TrebÃ¥tfestival"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Risør TrebÃ¥tfestival 2027 Program"/><link rel="stylesheet" href="/assets/root-Crn1yAQT.css"/></head><body><div class="fixed top-5 right-5 md:right-8 lg:right-14 z-[110] flex items-center gap-3"><button class="hidden lg:flex items-center justify-center rounded-full shrink-0 transition-opacity hover:opacity-90" aria-label="Kjøp festivalpass" style="height:48px;background:var(--c-navy);box-shadow:0 2px 20px rgba(10,22,40,0.09);overflow:hidden;white-space:nowrap"><span style="font-family:'IBM Plex Mono', monospace;font-size:12px;font-weight:600;letter-spacing:0.08em;color:var(--c-canvas)">KJÃP FESTIVALPASS</span></button><button class="hidden lg:flex items-center justify-center rounded-full shrink-0 transition-opacity hover:opacity-90" aria-label="Se program 2027" style="height:48px;background:var(--c-amber);box-shadow:0 2px 20px rgba(10,22,40,0.09);overflow:hidden;white-space:nowrap"><span style="font-family:'IBM Plex Mono', monospace;font-size:12px;font-weight:600;letter-spacing:0.08em;color:var(--c-canvas)">PROGRAM 2027</span></button><div class="flex items-center rounded-full" style="height:48px;border:1px solid;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);overflow:hidden;position:relative"><div class="flex items-center" style="overflow:hidden;white-space:nowrap"><button class="flex items-center gap-2.5 pl-4 pr-3 h-12 transition-opacity hover:opacity-80" aria-label="Logg inn"><div class="w-7 h-7 rounded-full flex items-center justify-center shrink-0" style="background:rgba(10,22,40,0.06);border:1px solid rgba(10,22,40,0.1)"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-log-in" style="color:rgba(10,22,40,0.55)"><path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"></path><polyline points="10 17 15 12 10 7"></polyline><line x1="15" x2="3" y1="12" y2="12"></line></svg></div><span class="hidden sm:block" style="font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:0.05em;color:rgba(10,22,40,0.55);font-weight:500">Logg inn</span></button><div class="h-5 shrink-0" style="width:1px;background:rgba(10,22,40,0.1)"></div><div class="inline-flex items-center" style="height:28px;padding:0 4px;gap:2px" role="group" aria-label="Valgt sprÃ¥k"><button type="button" aria-label="Valgt sprÃ¥k" aria-pressed="true" class="rounded-full transition-colors" style="font-family:'IBM Plex Mono', monospace;font-size:10px;letter-spacing:0.08em;font-weight:600;padding:4px 9px;color:var(--c-amber);background:transparent;cursor:default">NO</button><span aria-hidden="true" style="width:1px;height:14px;background:rgba(10,22,40,0.18)"></span><button type="button" aria-label="Bytt til Engelsk" aria-pressed="false" class="rounded-full transition-colors" style="font-family:'IBM Plex Mono', monospace;font-size:10px;letter-spacing:0.08em;font-weight:600;padding:4px 9px;color:rgba(10,22,40,0.5);background:transparent;cursor:pointer">EN</button></div><div class="h-5 shrink-0" style="width:1px;background:rgba(10,22,40,0.1)"></div></div><button class="flex items-center justify-center shrink-0 transition-opacity hover:opacity-75" style="width:48px;height:48px" aria-label="Ã
pne meny"><div class="relative w-[22px] h-[14px] flex flex-col justify-between"><span class="block w-full h-[1.5px] origin-center rounded-full"></span><span class="block w-full h-[1.5px] rounded-full" style="background-color:var(--c-navy)"></span><span class="block w-full h-[1.5px] origin-center rounded-full"></span></div></button></div></div><div class="min-h-screen bg-canvas"><div class="fixed top-5 left-5 md:left-8 lg:left-14 z-50 flex items-center gap-3" style="opacity:0"><button aria-label="GÃ¥ til forsiden" class="text-navy hover:text-amber transition-colors group"><div class="w-12 h-12 rounded-full bg-canvas border border-navy/10 flex items-center justify-center group-hover:bg-navy group-hover:text-white transition-all duration-300 shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg></div></button><button class="flex items-center gap-3 text-navy hover:text-amber transition-colors group"><div class="w-12 h-12 rounded-full bg-canvas border border-navy/10 flex items-center justify-center group-hover:bg-navy group-hover:text-white transition-all duration-300 shadow-lg"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg></div><span class="hidden md:inline font-mono text-navy" style="font-size:13px;letter-spacing:0.1em">Tilbake</span></button></div><div class="flex items-end gap-4 max-w-[1600px] mx-auto px-6 md:px-12 lg:px-20" style="padding-top:clamp(96px, 9vw, 140px);opacity:0;transform:translateY(-10px)"><img src="https://treeboat.b-cdn.net/logo_blue.png" alt="Risør TrebÃ¥tfestival" class="w-auto object-contain shrink-0" style="opacity:0.65;height:clamp(52px, 6vw, 88px)"/><div class="pb-[0.12em]"><p class="font-display text-navy leading-[0.88]" style="font-weight:900;font-size:clamp(20px, 3vw, 44px);letter-spacing:-0.04em">Risør <span class="text-navy">TrebÃ¥t</span><span class="text-amber">festival</span></p><p class="font-mono text-navy/35 tracking-[0.18em] uppercase mt-1" style="font-size:clamp(9px, 0.9vw, 12px)">05 Aug â 07 Aug 2027</p></div></div><div class="max-w-[1600px] mx-auto px-6 md:px-12 lg:px-20" style="padding-top:clamp(48px, 6vw, 88px)"><div class="grid grid-cols-1 lg:grid-cols-12 gap-6" style="margin-bottom:clamp(40px, 5vw, 72px)"><div class="lg:col-span-3"><p class="font-mono text-amber tracking-[0.2em] uppercase" style="font-size:var(--fs-label)">05 Aug â 07 Aug</p></div><div class="lg:col-span-7 lg:col-start-5"><h1 class="font-display text-navy leading-[0.88]" style="font-weight:900;
32font-size:var(--fs-page);letter-spacing:-0.04em;opacity:0;transform:translateY(24px)">Program 2027</h1><p class="font-editorial text-navy/60 mt-8 max-w-[520px]" style="font-size:var(--fs-body);line-height:1.65;opacity:0;transform:translateY(14px)">Fra 5. august til 7. august fylles Risør med trebÃ¥ter, kystkultur, hÃ¥ndverk, aktiviteter pÃ¥ sjøen, underholdning og musikk. Her finner du hele programmet, dag for dag. Trykk pÃ¥ en programpost for mer informasjon.<br/><br/>Programmet oppdateres fortløpende, sÃ¥ stikk gjerne innom igjen for de siste oppdateringene.</p></div></div><div class="h-px bg-navy/6" style="margin-bottom:clamp(40px, 6vw, 80px)"></div><p class="font-mono text-navy/30 text-center" style="font-size:14px;padding:clamp(60px, 10vw, 120px) 0">Laster programâ¦</p><div class="space-y-14 md:space-y-24" style="padding-bottom:clamp(80px, 10vw, 160px)"></div></div><footer id="kontakt" class="px-6 md:px-12 lg:px-20 rounded-t-[var(--r-card)]" style="background-color:var(--c-navy);padding-top:var(--sp-section-lg);padding-bottom:var(--sp-section)"><div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-12 gap-10 lg:gap-12 mb-14 md:mb-24"><div class="lg:col-span-5"><h3 class="font-display text-white leading-[0.92] mb-8" style="font-weight:900;font-size:var(--fs-footer-brand);letter-spacing:-0.04em">Risør<br/>TrebÃ¥tfestival</h3><p class="font-editorial text-white/60 max-w-[380px]" style="font-size:var(--fs-body);line-height:1.7">En feiring av maritimt hÃ¥ndverk og norsk kystkultur siden 1984. Vi sees i Risør.</p><div class="mt-8 "><div style="width:40px;height:1px;background-color:rgba(255,255,255,0.15);margin-bottom:16px"></div><p class="font-mono text-white/35 uppercase tracking-[0.22em] mb-4" style="font-size:10px">Støttes av</p><div class="flex flex-wrap items-center gap-x-8 gap-y-5"><a href="https://www.spv.no/" target="_blank" rel="noopener noreferrer" class="inline-block opacity-60 hover:opacity-100 transition-opacity duration-300" aria-label="Sparebanken Norge"><img src="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='Layer_1'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20300%2064'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:%23fff;}%3c/style%3e%3c/defs%3e%3cg%20id='Layer_1-2'%3e%3cpath%20class='cls-1'%20d='M36.8,27.5c0,16.4-17.6,29.8-36.8,29.8v-25.4c18.9,0,34.3-15.1,34.8-31.2h2v26.8Z'/%3e%3cpath%20class='cls-1'%20d='M38.9,30.5C38.9,14.1,56.5.7,75.7.7v25.4c-18.9,0-34.3,15.1-34.8,31.2h-2s0-26.8,0-26.8Z'/%3e%3cpath%20class='cls-1'%20d='M111.7,18.7c0,4.6-3.8,7.8-9.6,7.8s-10.2-2.9-11.1-7.7l4.8-1.5c.7,2.8,2.7,4.9,6.4,4.9s4.6-1.3,4.6-3.1-2.4-2.9-7.1-4c-4.2-1-8-2.8-8-7.3s3.4-7.5,9.4-7.5,9.2,3.2,10.1,7l-4.9,1.5c-.5-2.3-2.4-4.3-5.3-4.3s-4.4,1.4-4.4,2.9c0,2.2,2.2,2.7,6.7,3.7,4.3,1,8.4,2.6,8.4,7.4v.2Z'/%3e%3cpath%20class='cls-1'%20d='M114,6.7h4.8v3.8h.5c.9-2.4,2.7-4.1,5.8-4.1s7.8,3.4,7.8,10.1-3.8,10.1-8,10.1-4.8-1.7-5.6-4.1h-.5v9.5h-4.8s0-25.3,0-25.3ZM128,16.5c0-3.8-1.7-6.1-4.6-6.1s-4.5,2.4-4.5,6.1,1.6,5.9,4.5,5.9,4.6-2.2,4.6-5.9Z'/%3e%3cpath%20class='cls-1'%20d='M140.6,26.5c-3.5,0-6.1-2.2-6.1-5.7s2.1-5.3,6.3-6.1l5.7-1.1v-.8c0-1.7-.9-2.8-2.9-2.8s-3.5,1.5-3.9,3.5l-4.6-1.3c1-3.5,4.1-5.8,8.6-5.8s7.6,2.4,7.6,6.6v13.1h-3.7l-.9-3.5h-.5c-.7,2.5-2.7,3.9-5.5,3.9h-.1ZM146.5,18v-1.1l-3.4.6c-2.5.4-3.5,1.3-3.5,2.8s.9,2.3,2.5,2.3c2.3,0,4.4-1.4,4.4-4.7v.1Z'/%3e%3cpath%20class='cls-1'%20d='M159.2,15.5v10.6h-4.8V6.7h4.8v3.8h.5c.8-2.8,2.6-4,5.4-4h.3v4.7h-1.7c-3.2,0-4.6,1.4-4.6,4.3h.1Z'/%3e%3cpath%20class='cls-1'%20d='M165.7,16.5c0-6.1,3.9-10.2,9-10.2s8.7,3.6,8.7,10.1v1.1h-12.8c.3,3.6,1.8,5.1,4.3,5.1s3.4-1.3,3.9-3.1l4.6,1.2c-.9,3.6-4.2,5.7-8.4,5.7-6.2,0-9.2-4.4-9.2-10l-.1.1ZM178.6,14.2c-.1-2.5-1.5-4.3-3.8-4.3s-3.7,1.3-4.1,4.3h7.9Z'/%3e%3cpath%20class='cls-1'%20d='M190.7.7v9.7h.5c.8-2.1,2.5-4.1,5.6-4.1s8,3.6,8,9.7-4,10.4-7.8,10.4-5-1.8-5.8-4.1h-.5v3.8h-4.8V.7h4.8ZM190.7,16.3c0,3.8,1.6,6.1,4.5,6.1s4.6-2.4,4.6-6.1-1.7-5.9-4.6-5.9-4.5,2.2-4.5,5.9Z'/%3e%3cpath%20class='cls-1'%20d='M212.5,26.5c-3.5,0-6.1-2.2-6.1-5.7s2.1-5.3,6.3-6.1l5.7-1.1v-.8c0-1.7-.9-2.8-2.9-2.8s-3.5,1.5-3.9,3.5l-4.6-1.3c1-3.5,4.1-5.8,8.6-5.8s7.6,2.4,7.6,6.6v13.1h-3.7l-.9-3.5h-.5c-.7,2.5-2.7,3.9-5.5,3.9h-.1ZM218.3,18v-1.1l-3.4.6c-2.5.4-3.5,1.3-3.5,2.8s.9,2.3,2.5,2.3c2.3,0,4.4-1.4,4.4-4.7v.1Z'/%3e%3cpath%20class='cls-1'%20d='M231,14.6v11.6h-4.8V6.7h4.8v3.5h.5c.9-2.5,3-3.9,5.6-3.9,3.7,0,6,2.7,6,6.7v13.1h-4.8v-12.1c0-2.3-1.1-3.7-3.3-3.7s-4,1.5-4,4.2v.1Z'/%3e%3cpath%20class='cls-1'%20d='M246.3.7h4.8v13.6h.5c.3-.4.5-.8.8-1.1l5.4-6.5h5.4l-6.8,7.5,7.3,11.9h-5.5l-5-8.4-2.1,2.4v6.1h-4.8V.7Z'/%3e%3cpath%20class='cls-1'%20d='M262.9,16.5c0-6.1,3.8-10.2,9-10.2s8.7,3.6,8.7,10.1v1.1h-12.8c.3,3.6,1.8,5.1,4.3,5.1s3.4-1.3,3.8-3.1l4.6,1.2c-.9,3.6-4.2,5.7-8.4,5.7-6.2,0-9.2-4.4-9.2-10v.1Z
32M275.9,14.2c-.1-2.5-1.5-4.3-3.8-4.3s-3.7,1.3-4.1,4.3h7.9Z'/%3e%3cpath%20class='cls-1'%20d='M287.9,14.6v11.6h-4.8V6.7h4.8v3.5h.5c.9-2.5,3-3.9,5.6-3.9,3.7,0,6,2.7,6,6.7v13.1h-4.8v-12.1c0-2.3-1.1-3.7-3.3-3.7s-4,1.5-4,4.2v.1Z'/%3e%3cpath%20class='cls-1'%20d='M97.7,41.3c-.5-1.1-.8-2-1.1-2.7h-.5v18.7h-4.7v-25.4h6.8l6.9,16c.5,1.1.8,2,1.1,2.7h.5v-18.7h4.7v25.4h-6.6s-7.1-16-7.1-16Z'/%3e%3cpath%20class='cls-1'%20d='M123.6,37.5c5.7,0,9.5,4,9.5,10.1s-3.7,10.1-9.5,10.1-9.4-4-9.4-10.1,3.7-10.1,9.4-10.1ZM123.6,41.5c-2.9,0-4.4,2.1-4.4,6s1.5,6.1,4.4,6.1,4.4-2.1,4.4-6.1-1.5-6-4.4-6Z'/%3e%3cpath%20class='cls-1'%20d='M140.4,46.7v10.6h-4.8v-19.4h4.8v3.8h.5c.8-2.8,2.6-4,5.4-4h.3v4.7h-1.7c-3.2,0-4.6,1.4-4.6,4.3h.1Z'/%3e%3cpath%20class='cls-1'%20d='M147.2,58.5l4.7-1.2c.4,1.9,2.1,2.6,4,2.6,2.8,0,4.7-1.3,4.7-5.4v-2.1h-.5c-.7,2.7-2.7,4-5.4,4-4.1,0-7.7-3.1-7.7-9.4s4.3-9.5,7.9-9.5,4.4,1.7,5.2,4h.5v-3.6h4.8v16.8c0,5-2.8,9-9.5,9s-8.1-2.3-8.7-5.2ZM160.6,47c0-3.4-1.7-5.6-4.1-5.6s-4.5,1.9-4.5,5.6,1.9,5.5,4.5,5.5,4.1-2.1,4.1-5.5Z'/%3e%3cpath%20class='cls-1'%20d='M167.9,47.7c0-6.1,3.9-10.2,9-10.2s8.7,3.6,8.7,10.1v1.1h-12.8c.3,3.6,1.8,5.1,4.3,5.1s3.4-1.3,3.9-3.1l4.6,1.2c-.9,3.6-4.2,5.7-8.4,5.7-6.2,0-9.2-4.4-9.2-10l-.1.1ZM180.8,45.4c-.1-2.5-1.5-4.3-3.8-4.3s-3.7,1.3-4.1,4.3h7.9Z'/%3e%3c/g%3e%3c/svg%3e" alt="Sparebanken Norge" style="height:36px;width:auto;display:block"/></a><a href="https://agderfk.no/" target="_blank" rel="noopener noreferrer" class="inline-block opacity-60 hover:opacity-100 transition-opacity duration-300" aria-label="Agder fylkeskommune"><img src="/assets/agder_logo_white-BDbRFkDw.png" alt="Agder fylkeskommune" style="height:42px;width:auto;display:block"/></a><a href="https://www.risor.kommune.no/" target="_blank" rel="noopener noreferrer" class="inline-block opacity-60 hover:opacity-100 transition-opacity duration-300" aria-label="Risør kommune"><img src="/assets/risor_logo_white-BlId2blo.png" alt="Risør kommune" style="height:44px;width:auto;display:block"/></a></div><a class="inline-flex items-center gap-2 mt-5 text-white/45 hover:text-white transition-colors group" style="font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:0.06em" href="/sponsorer" data-discover="true">Se alle sponsorer<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right group-hover:translate-x-1 transition-transform duration-300"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div><div class="lg:col-span-3 lg:col-start-7"><p class="font-mono text-white/45 tracking-[0.2em] uppercase mb-6" style="font-size:var(--fs-label)">Navigasjon</p><ul class="grid grid-cols-2 gap-x-8 gap-y-4"><li><a href="/" class="font-editorial text-white/70 hover:text-white transition-colors inline-flex items-center gap-1.5 " style="font-size:var(--fs-body)">Om festivalen</a></li><li><a href="/program" class="font-editorial text-white/70 hover:text-white transition-colors inline-flex items-center gap-1.5 " style="font-size:var(--fs-body)">Program</a></li><li><a href="/flaten" class="font-editorial text-white/70 hover:text-white transition-colors inline-flex items-center gap-1.5 " style="font-size:var(--fs-body)">FlÃ¥ten</a></li><li><a href="/klubber" class="font-editorial text-white/70 hover:text-white transition-colors inline-flex items-center gap-1.5 " style="font-size:var(--fs-body)">Klubber</a></li><li><a href="/nyheter" class="font-editorial text-white/70 hover:text-white transition-colors inline-flex items-center gap-1.5 " style="font-size:var(--fs-body)">Nyheter</a></li><li><a href="/festivalpass" class="font-editorial text-white/70 hover:text-white transition-colors inline-flex items-center gap-1.5 " style="font-size:var(--fs-body)">Festivalpass</a></li><li><a href="/profil" class="font-editorial text-white/70 hover:text-white transition-colors inline-flex items-center gap-1.5 " style="font-size:var(--fs-body)">Min side</a></li><li><a href="/" class="font-editorial text-white/70 hover:text-white transition-colors inline-flex items-center gap-1.5 " style="font-size:var(--fs-body)">Kontakt</a></li><li><a href="/personvern" class="font-editorial text-white/70 hover:text-white transition-colors inline-flex items-center gap-1.5 " style="font-size:var(--fs-body)">Personvern</a></li><li><a href="https://www.trebatfestivalen.no/nyheter/utstiller" target="_blank" rel="noopener noreferrer" class="font-editorial text-white/70 hover:text-white transition-colors inline-flex items-center gap-1.5 " style="font-size:var(--fs-body)">Utstiller<span class="text-amber/60" style="font-size:0.85em">â</span></a></li><li><a href="https://www.risorclassic.no" target="_blank" rel="noopener noreferrer" class="font-editorial text-white/70 hover:text-white transition-colors inline-flex items-center gap-1.5 font-bold text-white/90" style="font-size:var(--fs-body)">Risør Classic<span class="text-amber/60" style="font-size:0.85em">â</span></a></li></ul></div><div class="lg:col-span-3"><p class="font-mono text-white/45 tracking-[0.2em] uppercase mb-6" style="font-size:var(--fs-label)">Kontakt</p><div class="space-y-4"><a href="mailto:[email protected]" class="font-mono text-white/65 hover:text-amber transition-colors" style="font-size:var(--fs-mono-sm)">[email protected]</a><p class="font-mono text-white/65" style="font-size:var(--fs-mono-sm)">+47 95 10 82 19</p><p class="font-editorial text-white/60" style="font-size:18px;line-height:1.6">Risør TrebÃ¥tfestival<br/>Torvet 1<br/>4950 Risør</p></div></div></div><div class="pt-8 flex flex-col md:flex-row justify-between items-start md:items-center gap-4" style="border-top:1px solid rgba(255,255,255,0.08)"><p class="font-mono text-white/30" style="font-size:var(--fs-caption)">© 2027 Risør TrebÃ¥tfestival. Alle rettigheter forbeholdt.</p><div class="flex items-center gap-6"><div class="inline-flex items-center rounded-full" style="border:1px solid rgba(255,255,255,0.12);padding:3px" role="group" aria-label="Valgt sprÃ¥k"><button type="button" aria-label="Valgt sprÃ¥k" aria-pressed="true" class="rounded-full transition-colors" style="font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:0.1em;font-weight:600;padding:6px 14px;color:var(--c-navy);background:var(--c-amber);cursor:default">NO</button><button type="button" aria-label="Bytt til Engelsk" aria-pressed="false" class="rounded-full transition-colors" style="font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:0.1em;font-weight:600;padding:6px 14px;color:rgba(249,247,242,0.45);background:transparent;cursor:pointer">EN</button></div><p class="font-mono text-white/30" style="font-size:var(--fs-caption)">5. august â 7. august 2027</p><button class="flex items-center gap-1.5 font-mono text-white/20 hover:text-white/50 transition-colors" style="font-size:var(--fs-caption)"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg>Admin</button></div></div></footer></div>
32<script>((storageKey2, restoreKey) => { 33 if (!window.history.state || !window.history.state.key) { 34 let key = Math.random().toString(32).slice(2); 35 window.history.replaceState({ key }, ""); 36 } 37 try { 38 let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}"); 39 let storedY = positions[restoreKey || window.history.state.key]; 40 if (typeof storedY === "number") { 41 window.scrollTo(0, storedY); 42 } 43 } catch (error) { 44 console.error(error); 45 sessionStorage.removeItem(storageKey2); 46 } 47 })("react-router-scroll-positions", null)</script>
47<link rel="modulepreload" href="/assets/entry.client-8CK_8nLj.js"/><link rel="modulepreload" href="/assets/chunk-LFPYN7LY-DNG8Xu2Q.js"/><link rel="modulepreload" href="/assets/chunk-reload-BmNz_Crh.js"/><link rel="modulepreload" href="/assets/root-ClmEUH-8.js"/><link rel="modulepreload" href="/assets/HydrationDetector-bfeioX_V.js"/><link rel="modulepreload" href="/assets/runtime-CuHvgMqg.js"/><link rel="modulepreload" href="/assets/posthog-C-TaaoIr.js"/><link rel="modulepreload" href="/assets/staticSeed-1vCyCaxP.js"/><link rel="modulepreload" href="/assets/info-B3ea6mh-.js"/><link rel="modulepreload" href="/assets/config-tW6wCOyb.js"/><link rel="modulepreload" href="/assets/Layout-DoT5F6_y.js"/><link rel="modulepreload" href="/assets/router-BueTfPOe.js"/><link rel="modulepreload" href="/assets/LanguageSwitcher-DCoYFhuc.js"/><link rel="modulepreload" href="/assets/index-DjdUYHQf.js"/><link rel="modulepreload" href="/assets/user-CdKXoy8h.js"/><link rel="modulepreload" href="/assets/log-in-BwVzbDWk.js"/><link rel="modulepreload" href="/assets/log-out-DLmvZEhU.js"/><link rel="modulepreload" href="/assets/createLucideIcon-CJZliPnB.js"/><link rel="modulepreload" href="/assets/ProgramPage-D6buXlui.js"/><link rel="modulepreload" href="/assets/BackHomeNav-BRCHs_lS.js"/><link rel="modulepreload" href="/assets/api-C11sfOCq.js"/><link rel="modulepreload" href="/assets/useApi-CLtjNZkG.js"/><link rel="modulepreload" href="/assets/useHead-x3FKRg-8.js"/><link rel="modulepreload" href="/assets/useSafeLoaderData-BIHYwGCu.js"/><link rel="modulepreload" href="/assets/FooterSection-C6n42Y3h.js"/><link rel="modulepreload" href="/assets/clock-DnqBdFKb.js"/><link rel="modulepreload" href="/assets/map-pin-glkti6C8.js"/><link rel="modulepreload" href="/assets/house-qZIQY7Dw.js"/><link rel="modulepreload" href="/assets/arrow-left-B6aKUUz3.js"/><link rel="modulepreload" href="/assets/SBN_Hovedlogo_Hvit-CBI8PYe2.js"/>
47<script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false,"unstable_subResourceIntegrity":false,"unstable_trailingSlashAwareDataRequests":false,"unstable_previewServerPrerendering":false,"v8_middleware":false,"v8_splitRouteModules":false,"v8_viteEnvironmentApi":false},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script>
47<script type="module" async="">; 48import * as route0 from "/assets/root-ClmEUH-8.js"; 49import * as route1 from "/assets/Layout-DoT5F6_y.js"; 50import * as route2 from "/assets/ProgramPage-D6buXlui.js"; 51 window.__reactRouterManifest = { 52 "entry": { 53 "module": "/assets/entry.client-8CK_8nLj.js", 54 "imports": [ 55 "/assets/chunk-LFPYN7LY-DNG8Xu2Q.js", 56 "/assets/chunk-reload-BmNz_Crh.js" 57 ], 58 "css": [] 59 }, 60 "routes": { 61 "root": { 62 "id": "root", 63 "path": "", 64 "hasAction": false, 65 "hasLoader": false, 66 "hasClientAction": false, 67 "hasClientLoader": false, 68 "hasClientMiddleware": false, 69 "hasDefaultExport": true, 70 "hasErrorBoundary": false, 71 "module": "/assets/root-ClmEUH-8.js", 72 "imports": [ 73 "/assets/chunk-LFPYN7LY-DNG8Xu2Q.js", 74 "/assets/chunk-reload-BmNz_Crh.js", 75 "/assets/HydrationDetector-bfeioX_V.js", 76 "/assets/runtime-CuHvgMqg.js", 77 "/assets/posthog-C-TaaoIr.js", 78 "/assets/staticSeed-1vCyCaxP.js", 79 "/assets/info-B3ea6mh-.js", 80 "/assets/config-tW6wCOyb.js" 81 ], 82 "css": [ 83 "/assets/root-Crn1yAQT.css" 84 ] 85 }, 86 "no/layout": { 87 "id": "no/layout", 88 "parentId": "root", 89 "path": "/", 90 "hasAction": false, 91 "hasLoader": false, 92 "hasClientAction": false, 93 "hasClientLoader": false, 94 "hasClientMiddleware": false, 95 "hasDefaultExport": true, 96 "hasErrorBoundary": false, 97 "module": "/assets/Layout-DoT5F6_y.js", 98 "imports": [ 99 "/assets/chunk-LFPYN7LY-DNG8Xu2Q.js", 100 "/assets/router-BueTfPOe.js", 101 "/assets/LanguageSwitcher-DCoYFhuc.js", 102 "/assets/index-DjdUYHQf.js", 103 "/assets/user-CdKXoy8h.js", 104 "/assets/log-in-BwVzbDWk.js", 105 "/assets/log-out-DLmvZEhU.js", 106 "/assets/posthog-C-TaaoIr.js", 107 "/assets/createLucideIcon-CJZliPnB.js", 108 "/assets/config-tW6wCOyb.js", 109 "/assets/chunk-reload-BmNz_Crh.js", 110 "/assets/runtime-CuHvgMqg.js", 111 "/assets/staticSeed-1vCyCaxP.js", 112 "/assets/info-B3ea6mh-.js" 113 ], 114 "css": [] 115 }, 116 "no/program": { 117 "id": "no/program", 118 "parentId": "no/layout", 119 "path": "program", 120 "hasAction": false, 121 "hasLoader": false, 122 "hasClientAction": false, 123 "hasClientLoader": false, 124 "hasClientMiddleware": false, 125 "hasDefaultExport": true, 126 "hasErrorBoundary": false, 127 "module": "/assets/ProgramPage-D6buXlui.js", 128 "imports": [ 129 "/assets/chunk-LFPYN7LY-DNG8Xu2Q.js", 130 "/assets/router-BueTfPOe.js", 131 "/assets/BackHomeNav-BRCHs_lS.js", 132 "/assets/api-C11sfOCq.js", 133 "/assets/useApi-CLtjNZkG.js", 134 "/assets/useHead-x3FKRg-8.js", 135 "/assets/useSafeLoaderData-BIHYwGCu.js", 136 "/assets/FooterSection-C6n42Y3h.js", 137 "/assets/clock-DnqBdFKb.js", 138 "/assets/map-pin-glkti6C8.js", 139 "/assets/LanguageSwitcher-DCoYFhuc.js", 140 "/assets/config-tW6wCOyb.js", 141 "/assets/chunk-reload-BmNz_Crh.js", 142 "/assets/house-qZIQY7Dw.js", 143 "/assets/createLucideIcon-CJZliPnB.js", 144 "/assets/arrow-left-B6aKUUz3.js", 145 "/assets/info-B3ea6mh-.js", 146 "/assets/SBN_Hovedlogo_Hvit-CBI8PYe2.js", 147 "/assets/runtime-CuHvgMqg.js", 148 "/assets/staticSeed-1vCyCaxP.js" 149 ], 150 "css": [] 151 }, 152 "no/_index": { 153 "id": "no/_index", 154 "parentId": "no/layout", 155 "index": true, 156 "hasAction": false, 157 "hasLoader": false, 158 "hasClientAction": false, 159 "hasClientLoader": false, 160 "hasClientMiddleware": false, 161 "hasDefaultExport": true, 162 "hasErrorBoundary": false, 163 "module": "/assets/HomePage-BTqNcqAG.js", 164 "imports": [ 165 "/assets/preload-helper-ckwbz45p.js", 166 "/assets/chunk-LFPYN7LY-DNG8Xu2Q.js", 167 "/assets/api-C11sfOCq.js", 168 "/assets/useApi-CLtjNZkG.js", 169 "/assets/useHead-x3FKRg-8.js", 170 "/assets/useSafeLoaderData-BIHYwGCu.js", 171 "/assets/router-BueTfPOe.js", 172 "/assets/ParallaxImage-WJ6OUc1P.js", 173 "/assets/SafeMotion-CrwPl34j.js", 174 "/assets/FooterSection-C6n42Y3h.js", 175 "/assets/chevron-right-B4tsGuIQ.js", 176 "/assets/index-DjdUYHQf.js", 177 "/assets/LanguageSwitcher-DCoYFhuc.js", 178 "/assets/arrow-left-B6aKUUz3.js", 179 "/assets/SBN_Hovedlogo_Hvit-CBI8PYe2.js", 180 "/assets/arrow-up-right-NsOTCZXX.js", 181 "/assets/circle-check-HczbNxRI.js", 182 "/assets/info-B3ea6mh-.js", 183 "/assets/config-tW6wCOyb.js", 184 "/assets/chunk-reload-BmNz_Crh.js", 185 "/assets/HydrationDetector-bfeioX_V.js", 186 "/assets/createLucideIcon-CJZliPnB.js", 187 "/assets/runtime-CuHvgMqg.js", 188 "/assets/staticSeed-1vCyCaxP.js" 189 ], 190 "css": [] 191 } 192 }, 193 "url": "/assets/manifest-1b74082c.js", 194 "version": "1b74082c" 195};
196 window.__reactRouterRouteModules = {"root":route0,"no/layout":route1,"no/program":route2}; 197 198import("/assets/entry.client-8CK_8nLj.js");</script>
198</body></html><!--$-->
198<script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_3\":-5,\"_4\":-5},\"loaderData\",{},\"actionData\",\"errors\"]\n");</script>
198<!--$-->
198<script>window.__reactRouterContext.streamController.close();</script>
198<!--/$--><!--/$-->
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.