:root{--pine:#173d32;--pine-2:#245d4c;--cream:#f7f3e9;--paper:#fffdf7;--clay:#b75d45;--ink:#1e2d28;--muted:#6e7b75;--line:#deddd4}
html{font-size:16px;min-height:100%}body{min-height:100vh;background:var(--cream);color:var(--ink);font-family:Inter,"Segoe UI",sans-serif;display:flex;flex-direction:column}main{min-height:65vh}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;color:var(--pine);font-weight:700}a{color:var(--pine-2)}
.navbar{background:rgba(255,253,247,.96);border-bottom:1px solid var(--line);padding:.8rem 0}.navbar-brand{display:flex;align-items:center;gap:.65rem;color:var(--pine);font-family:Georgia,serif;font-size:1.3rem;font-weight:700}.navbar-brand small{display:block;font:600 .62rem Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.logo-mark,.brand-mark{display:grid;place-items:center;background:var(--pine);color:white;border-radius:50%;width:2.4rem;height:2.4rem;font-size:1.35rem}.nav-link{color:var(--ink)!important;font-weight:600}.nav-link:hover{color:var(--clay)!important}.user-name{color:var(--muted)!important;font-weight:400}.page-container{padding-top:2.5rem;padding-bottom:4rem}.footer{margin-top:auto;background:var(--pine);color:#d9e3dc;padding:2rem 0}.footer .container{display:flex;justify-content:space-between;gap:1rem}
.eyebrow{text-transform:uppercase;letter-spacing:.17em;color:var(--clay);font-size:.72rem;font-weight:800;display:block;margin-bottom:.6rem}.btn{border-radius:2rem;padding:.65rem 1.15rem;font-weight:700}.btn-primary{background:var(--pine);border-color:var(--pine)}.btn-primary:hover{background:var(--pine-2);border-color:var(--pine-2)}.btn-secondary{background:var(--clay);border-color:var(--clay)}.btn-ghost{border:1px solid var(--pine);margin-left:.5rem}.form-control,.form-select{border:1px solid #cbcfc9;border-radius:.65rem;padding:.7rem;background:#fff}.form-control:focus,.form-select:focus{border-color:var(--pine-2);box-shadow:0 0 0 .2rem rgba(36,93,76,.15)}label{font-weight:700;font-size:.9rem;margin:.8rem 0 .35rem}.muted,small{color:var(--muted)}
.home-hero{min-height:500px;background:var(--paper);border-radius:2rem;overflow:hidden;display:grid;grid-template-columns:1.05fr .95fr;box-shadow:0 20px 55px rgba(23,61,50,.08)}.hero-copy{padding:5.2rem 4.5rem;z-index:2}.hero-copy h1{font-size:clamp(3rem,6vw,5.8rem);line-height:.9;margin-bottom:1.5rem}.hero-copy em{color:var(--clay);font-weight:400}.hero-copy p{font-size:1.15rem;max-width:32rem;color:var(--muted);margin-bottom:2rem}.hero-art{position:relative;background:linear-gradient(#dce8df 0 55%,#91a986 55%);overflow:hidden}.sun{position:absolute;width:7rem;height:7rem;border-radius:50%;background:#f5d37a;right:17%;top:15%}.mountain{position:absolute;width:120%;height:55%;clip-path:polygon(0 100%,25% 35%,42% 72%,65% 15%,100% 100%);bottom:23%;left:-10%;background:#78917f}.mountain.front{background:#426b58;bottom:0;height:48%}.cabin{position:absolute;bottom:13%;left:45%;font-size:7rem;color:#803f30}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0}.quick-grid a{background:var(--paper);border:1px solid var(--line);border-radius:1.2rem;padding:1.4rem;display:flex;align-items:center;gap:1rem;text-decoration:none;transition:.2s}.quick-grid a:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(23,61,50,.08)}.quick-grid span{font-size:1.8rem}.quick-grid h2{font-size:1.1rem;margin:0}.quick-grid p{color:var(--muted);font-size:.83rem;margin:0}.quick-grid b{margin-left:auto}.welcome-note{text-align:center;max-width:670px;margin:5rem auto 1rem}.welcome-note h2{font-size:2.5rem}
.page-hero,.page-heading{margin-bottom:2.5rem}.page-hero h1,.page-heading h1{font-size:clamp(2.7rem,6vw,4.5rem);margin:0}.page-hero>p{font-size:1.1rem;color:var(--muted)}.split,.page-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem}.filter-row{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.8rem;margin-bottom:1.2rem}.chip{white-space:nowrap;border:1px solid var(--line);padding:.45rem .9rem;border-radius:2rem;text-decoration:none;background:var(--paper);font-size:.88rem;font-weight:700}.chip.active{background:var(--pine);color:white;border-color:var(--pine)}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.content-card,.panel,.event-card,.stat-card{background:var(--paper);border:1px solid var(--line);border-radius:1.2rem;padding:1.5rem}.content-card h2{font-size:1.45rem}.content-card p{color:var(--muted)}.arrow-link{font-weight:800;text-decoration:none}.fab{position:fixed;right:2rem;bottom:2rem;background:var(--clay);color:white;text-decoration:none;padding:.8rem 1.2rem;border-radius:2rem}.article-page{background:var(--paper);max-width:850px;margin:auto;border-radius:1.5rem;padding:clamp(1.5rem,6vw,5rem)}.article-page h1{font-size:clamp(2.5rem,6vw,4.5rem)}.article-page .lead{color:var(--muted);font-size:1.25rem}.article-body{font:1.1rem/1.8 Georgia,serif;margin:2.5rem 0}.article-page footer{border-top:1px solid var(--line);padding-top:1rem;color:var(--muted)}.back-link{display:block;margin-bottom:3rem;text-decoration:none;font-weight:700}
.admin-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:1.2rem}.panel{margin-bottom:1rem}.panel h2{font-size:1.35rem}.inline-form{display:flex;gap:.5rem;align-items:end}.clean-list{list-style:none;padding:0;margin:1rem 0 0}.clean-list li,.admin-row{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-top:1px solid var(--line)}.admin-row small{display:block}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.form-grid .full{grid-column:1/-1}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.stat-card span,.stat-card small{display:block}.stat-card strong{font-size:1.6rem;color:var(--pine)}
.dugnad-tabs{display:flex;gap:.5rem;margin:-1rem 0 1.5rem}.event-card{margin-bottom:1.2rem}.event-card>header{display:flex;justify-content:space-between;gap:1rem}.event-header-actions{display:flex;align-items:flex-start;gap:.5rem;flex:0 0 auto}.season-badge{display:inline-block;background:#e4eee8;color:var(--pine);padding:.3rem .7rem;border-radius:1rem;font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-right:.5rem}.date-badge{color:var(--clay);font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.progress-line{background:#e1e5df;height:.45rem;border-radius:1rem;overflow:hidden;margin-top:1rem}.progress-line div{height:100%;background:var(--clay)}.task-list{list-style:none;padding:0;margin:1rem 0}.task-list li{display:flex;align-items:center;gap:.8rem;border-top:1px solid var(--line);padding:.75rem 0}.task-list small{display:block}.task-list .done strong{text-decoration:line-through;color:var(--muted)}.task-toggle,.task-history-mark{display:grid;place-items:center;flex:0 0 auto;width:1.8rem;height:1.8rem;border:2px solid var(--pine-2);border-radius:50%;background:transparent;color:white;font-weight:900}.done .task-toggle,.done .task-history-mark{background:var(--pine-2)}.task-history-mark{color:var(--muted);border-color:var(--line)}.add-tasks{margin-top:1rem}.add-tasks>summary{display:inline-block;cursor:pointer;list-style:none}.add-tasks>summary::-webkit-details-marker{display:none}.add-tasks[open]>summary{background:var(--ink);color:#fff}.add-tasks form{padding-top:.75rem}.add-tasks form .btn{margin-top:.6rem}.event-footer-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1rem}.archive-warning{display:flex;flex-direction:column;color:#7b3232}.archive-warning span{font-size:.82rem;color:var(--muted)}.archived{opacity:.8}.empty-state{text-align:center;padding:4rem;background:var(--paper);border:1px dashed #b9beb8;border-radius:1.2rem}.empty-state>span{font-size:3rem}
.task-list li>div{flex:1}.task-actions{flex:0 0 auto!important;display:flex;align-items:flex-start;gap:.8rem;margin-left:auto}.task-delete{margin-left:auto}.task-editor{position:relative}.task-editor>summary{cursor:pointer;color:var(--teal);font-size:.8rem;font-weight:800;list-style:none}.task-editor>summary::-webkit-details-marker{display:none}.task-editor>form{position:absolute;right:0;z-index:10;width:min(620px,85vw);background:var(--paper);border:1px solid var(--line);border-radius:1rem;padding:1rem;box-shadow:0 18px 45px rgba(0,0,0,.16)}.task-editor label{margin-top:.45rem}.task-editor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.task-editor .btn{margin-top:1rem}
.booking-heading{margin-bottom:1.5rem}.year-picker{display:flex;justify-content:center;align-items:center;gap:1.25rem;margin:0 0 1.5rem}.year-picker strong{font:400 2.3rem Georgia,serif}.year-arrow{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid var(--ink);border-radius:50%;color:var(--ink);font-size:1.2rem;text-decoration:none}.booking-form-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.booking-form-heading h2{font-size:2rem}.booking-legend{display:flex;flex-wrap:wrap;gap:.8rem 1.3rem;margin:1.25rem 0;font-size:.82rem;font-weight:700}.booking-legend.compact{margin:0}.booking-legend span{display:flex;align-items:center;gap:.4rem}.booking-legend i{display:block;width:1rem;height:1rem;border-radius:.25rem}.legend-regular{background:#346c78}.legend-summer{background:#d39a39}.legend-shared{background:#7b8f77}.legend-dugnad{background:#a5445c}.booking-list{display:grid;gap:.75rem}.booking-period{position:relative;display:grid;grid-template-columns:10rem 1fr auto;align-items:center;gap:1.5rem;background:rgba(247,244,242,.9);border:1px solid var(--line);border-left:9px solid #346c78;border-radius:1rem;padding:1.2rem 1.4rem}.booking-summer{border-left-color:#d39a39}.booking-shared{border-left-color:#7b8f77}.booking-dugnad{border-left-color:#a5445c;background:#f5e8ec}.booking-date{display:flex;align-items:center;gap:.45rem;font-size:.9rem;font-weight:800;white-space:nowrap}.booking-date b{color:var(--muted)}.booking-type{font-size:.7rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}.booking-copy h2{font-size:1.45rem;margin:.15rem 0}.booking-copy p{margin:0 0 .25rem;color:var(--muted)}.booking-delete{align-self:start}.booking-dugnad .booking-type,.booking-dugnad h2{color:#762c40}
.upload-zone{border:2px dashed #9fa9a2;border-radius:1rem;padding:2.5rem;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;background:#f8faf6}.upload-zone span{font-size:2.5rem}.upload-zone small{font-weight:400}.preview-strip{display:flex;gap:.5rem;overflow:auto;margin-top:.8rem}.preview-strip img{width:90px;height:70px;object-fit:cover;border-radius:.5rem}.gallery-grid{columns:3;column-gap:1rem}.gallery-item{break-inside:avoid;background:var(--paper);border-radius:1rem;overflow:hidden;margin:0 0 1rem;border:1px solid var(--line)}.gallery-item img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover;transition:.25s}.gallery-item:hover img{transform:scale(1.02)}.gallery-item figcaption{padding:.8rem;display:flex;flex-direction:column}.gallery-item form{margin-top:.3rem}.link-danger{background:none;border:0;color:#a33;padding:0;font-size:.8rem}
.auth-shell{min-height:65vh;display:grid;place-items:center}.auth-card,.narrow-card{width:min(100%,440px);background:var(--paper);border:1px solid var(--line);border-radius:1.5rem;padding:2.5rem;box-shadow:0 20px 50px rgba(23,61,50,.1)}.auth-card .brand-mark{margin:0 auto 1rem}.auth-card h1{text-align:center}.auth-card>p{text-align:center}.auth-card .btn,.narrow-card .btn{margin-top:1.2rem}.check-row{display:flex;gap:.5rem;align-items:center;font-weight:400}
@media(max-width:991px){.home-hero{grid-template-columns:1fr}.hero-copy{padding:3.5rem 2.5rem}.hero-art{min-height:320px}.card-grid{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{columns:2}}
@media(max-width:600px){.page-container{padding-top:1.5rem}.home-hero{border-radius:1.2rem}.hero-copy{padding:2.8rem 1.4rem}.hero-art{min-height:250px}.quick-grid,.card-grid{grid-template-columns:1fr}.split,.page-heading,.event-card>header{align-items:flex-start;flex-direction:column}.event-header-actions{width:100%}.event-footer-actions{align-items:flex-start;flex-direction:column}.gallery-grid{columns:1}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.stats-grid{grid-template-columns:1fr 1fr}.footer .container{flex-direction:column}.fab{right:1rem;bottom:1rem}.auth-card,.narrow-card{padding:1.5rem}}

/* Editorial cabin archive — typographic profile inspired by Norwegian cultural institutions */
:root{--pine:#17181b;--pine-2:#303338;--cream:#eeebea;--paper:#f7f4f2;--clay:#e8a3ad;--ink:#17181b;--muted:#636166;--line:#c9c4c2;--teal:#346c78}
body{background-color:var(--cream);background-image:radial-gradient(rgba(23,24,27,.055) .7px,transparent .7px);background-size:5px 5px;font-family:Arial,"Segoe UI",sans-serif}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;color:var(--ink);font-weight:400;letter-spacing:-.025em}
.navbar{background:rgba(238,235,234,.96);border:0;padding:1.55rem 0}.navbar .container{max-width:1440px}.navbar-brand{gap:.75rem;color:var(--ink);font-family:Arial,sans-serif;font-size:1rem;font-weight:800}.logo-mark{display:flex;flex-direction:column;justify-content:center;gap:3px;width:1.15rem;height:1.7rem;background:var(--ink);border-radius:0;padding:0 4px}.logo-mark i{display:block;width:3px;height:3px;border-radius:50%;background:var(--cream)}.navbar-toggler{border:0;font-weight:700;box-shadow:none!important}.menu-icon{font-size:1.3rem;margin-right:.35rem}.nav-link{font-size:.92rem;padding:.6rem .8rem!important}.dropdown-menu{border:1px solid var(--line);border-radius:0;background:var(--paper);box-shadow:0 14px 35px rgba(0,0,0,.12)}
.page-container{max-width:1440px;padding-top:2.25rem}.eyebrow{color:var(--ink);font-size:.78rem;letter-spacing:.04em;margin-bottom:1.15rem}.btn{border-radius:99px;padding:.8rem 1.25rem}.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn-primary:hover{background:#34363a;border-color:#34363a}.btn-secondary{background:var(--teal);border-color:var(--teal)}.btn-ghost{border:1px solid var(--ink)}
.home-hero{min-height:660px;background:transparent;border-radius:0;box-shadow:none;grid-template-columns:.95fr 1.05fr;gap:2rem;align-items:center}.hero-copy{padding:3rem 1rem 3rem 0}.hero-copy h1{font-size:clamp(3.6rem,6.8vw,7.2rem);line-height:.94;margin:0 0 2rem;max-width:850px}.hero-copy em{font-style:normal;color:var(--ink)}.hero-copy p{font-size:1.15rem;line-height:1.5;max-width:39rem;color:var(--ink)}.hero-copy>div>div{display:flex;align-items:center;gap:2rem}.hero-next{font-weight:800;color:var(--ink);text-decoration:none}.hero-next span,.text-arrow span{font-size:1.8rem;margin-left:.5rem}.hero-art{min-height:600px;border-radius:2.1rem 2.1rem 8rem 2.1rem;background:linear-gradient(#e9dfae 0 58%,#b9c78d 58%);box-shadow:none}.hero-art:after{content:"";position:absolute;right:0;top:0;width:8%;height:100%;background:var(--teal);border-radius:0 2.1rem 8rem 0}.sun{background:#f3c75f;width:8rem;height:8rem;right:20%;top:12%}.mountain{background:#889879}.mountain.front{background:#526e62}.cabin{left:43%;bottom:12%;width:150px;height:105px;background:#b55139;border:5px solid var(--ink);font-size:0}.cabin:before{content:"";position:absolute;left:-24px;top:-58px;border-left:96px solid transparent;border-right:96px solid transparent;border-bottom:63px solid var(--ink)}.cabin:after{content:"";position:absolute;left:-14px;top:-48px;border-left:86px solid transparent;border-right:86px solid transparent;border-bottom:55px solid #d6c28b}.cabin span{position:absolute;width:35px;height:55px;background:var(--ink);bottom:0;left:57px}
.quick-grid{border-top:2px solid var(--ink);gap:0;margin:3rem 0 5rem}.quick-grid a{border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;padding:2rem 1.5rem;align-items:flex-start}.quick-grid a:last-child{border-right:0}.quick-grid a:hover{transform:none;box-shadow:none;background:rgba(255,255,255,.35)}.quick-number{font:700 .72rem Arial,sans-serif!important;border:1px solid var(--ink);width:2rem;height:2rem;display:grid;place-items:center;border-radius:50%}.quick-grid h2{font-size:1.8rem}.quick-grid p{font-size:.9rem;color:var(--ink);max-width:15rem}.quick-grid b{font-size:1.5rem}.welcome-note{border-top:1px solid var(--line);padding:5rem 1rem;margin:2rem auto 3rem;max-width:950px}.welcome-note h2{font-size:clamp(3rem,6vw,6rem);line-height:1}.welcome-note p{font-size:1.1rem}.text-arrow{display:inline-flex;align-items:center;color:var(--ink);font-weight:800;text-decoration:none;margin-top:1rem}
.page-hero h1,.page-heading h1{font-size:clamp(3.5rem,7vw,7rem)}.panel,.event-card,.content-card,.stat-card,.auth-card,.narrow-card{background:rgba(247,244,242,.88);border:1px solid var(--line);border-radius:1.4rem;box-shadow:none}.content-card h2,.panel h2{font-weight:400}.chip{background:transparent;border-color:var(--ink)}.chip.active{background:var(--ink);border-color:var(--ink)}.season-badge{background:var(--teal);color:#fff}.progress-line div{background:var(--teal)}.task-toggle{border-color:var(--teal)}.done .task-toggle,.done .task-history-mark{background:var(--teal)}.upload-zone{background:rgba(247,244,242,.7);border-color:var(--ink)}.gallery-item{border-radius:1.2rem;background:var(--paper)}.footer{background:var(--ink);padding:3rem 0}.footer .container{max-width:1440px}
.quick-grid-four{grid-template-columns:repeat(4,1fr)}.guestbook-form{margin-bottom:2rem}.guestbook-upload{margin:1.25rem 0 .8rem}.guestbook-list{display:grid;gap:1.5rem;max-width:1050px;margin:0 auto}.guestbook-entry{background:rgba(247,244,242,.9);border:1px solid var(--line);border-radius:1.4rem;padding:clamp(1.3rem,4vw,2.6rem)}.guestbook-entry header{border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1.4rem}.guestbook-entry time{display:block;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-bottom:.45rem}.guestbook-entry h2{font-size:clamp(2rem,4vw,3.3rem);margin:0 0 .35rem}.guestbook-body{font:1.08rem/1.75 Georgia,"Times New Roman",serif;max-width:780px}.guestbook-images{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin:1.5rem 0}.guestbook-images a{display:block;overflow:hidden;border-radius:.8rem;background:#ddd}.guestbook-images img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .2s}.guestbook-images a:hover img{transform:scale(1.025)}.guestbook-images.count-1{grid-template-columns:1fr;max-width:760px}.guestbook-images.count-1 img{aspect-ratio:16/9}.guestbook-entry>form{margin-top:1rem}
@media(max-width:991px){.home-hero{grid-template-columns:1fr}.hero-copy{padding:2rem 0}.hero-art{min-height:480px}.quick-grid{grid-template-columns:1fr}.quick-grid a{border-right:0;border-bottom:1px solid var(--line)}}
@media(max-width:600px){.navbar{padding:1rem 0}.page-container{padding-top:1rem}.home-hero{min-height:auto}.hero-copy h1{font-size:3.45rem}.hero-copy>div>div{align-items:flex-start;flex-direction:column;gap:1rem}.hero-art{min-height:360px;border-radius:1.2rem 1.2rem 4rem 1.2rem}.hero-art:after{border-radius:0 1.2rem 4rem 0}.cabin{transform:scale(.75)}.quick-grid{margin-top:2rem}.welcome-note{padding:3rem 0}.page-hero h1,.page-heading h1{font-size:3.5rem}.guestbook-images{grid-template-columns:1fr 1fr}.guestbook-entry{border-radius:1rem}}
@media(max-width:600px){.booking-form-heading{flex-direction:column}.booking-legend.compact{display:none}.booking-period{grid-template-columns:1fr;gap:.55rem;padding:1rem}.booking-date{font-size:.82rem}.booking-delete{position:absolute;right:1rem;top:1rem}.booking-copy{padding-right:2.5rem}}