@font-face{font-family:Album;src:url('fonts/Bangers-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--paper:#fffaf0;--ink:#292a2e;--red:#b82230;--line:#ded8ce}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,-apple-system,sans-serif}header,main,footer{max-width:1000px;margin:auto;padding:22px 28px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:2px solid var(--red)}.brand{font-family:Album,Impact,sans-serif;font-size:27px;letter-spacing:.04em;color:var(--red)}nav{display:flex;gap:24px}a{color:var(--red);text-underline-offset:3px}nav a{font-size:14px;font-weight:650;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font:400 66px/1.1 Album,Impact,sans-serif;letter-spacing:.02em;color:var(--red);margin-bottom:14px}h2{font-size:22px;line-height:1.3;margin-bottom:12px}h3{font-size:17px;line-height:1.4;margin-bottom:8px}.album-title{padding:10px 0 24px}.album-title p{margin:0;font-size:18px}.essential-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:44px;align-items:start}section{scroll-margin-top:20px}.form-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);border-radius:5px;padding:25px}.form-title{font:400 34px/1.2 Album,Impact,sans-serif;letter-spacing:.02em;color:var(--red);margin-bottom:22px}label{display:block;font-size:15px;font-weight:650;margin-bottom:6px}.spaced-label{margin-top:16px}.optional{font-size:14px;font-weight:400;color:#626269}input[type=text],input[type=password],textarea{display:block;width:100%;border:1px solid #929296;border-radius:4px;padding:11px 12px;color:var(--ink);background:white;font:16px/1.4 system-ui}input::placeholder,textarea::placeholder{color:#76767a}textarea{resize:vertical;min-height:75px}fieldset{padding:0;border:0;margin:22px 0}legend{font-size:16px;font-weight:650;margin-bottom:9px}.choices{display:flex;gap:10px;flex-wrap:wrap}.choice{flex:1;min-width:130px;border:1px solid #929296;border-radius:4px;padding:12px 8px;font-size:15px;margin:0;cursor:pointer}.choice:has(input:checked){background:#fff0d0;border-color:var(--red)}input[type=radio]{accent-color:var(--red);margin-right:6px}.small{font-size:14px;line-height:1.55;color:#5b5c61}.field-help{margin:0 0 15px}.form-card form>p.small{margin:18px 0 0}.button,button{display:inline-block;border:0;border-radius:4px;background:var(--red);color:#fff;cursor:pointer;padding:13px 19px;font:650 16px/1.4 system-ui;text-decoration:none}.form-card button{width:100%;margin-top:20px}button:hover,.button:hover{background:#971c28}.event-info section{padding:5px 0 21px;margin-bottom:24px;border-bottom:1px solid var(--line)}.event-info p:last-child{margin-bottom:0}.event-info h2{font-size:21px}.cheers{font-family:Album,Impact,sans-serif;font-size:25px;color:var(--red);letter-spacing:.02em}#hotels{border-top:1px solid var(--line);margin-top:35px;padding-top:23px}summary{font-size:22px;font-weight:650;cursor:pointer;line-height:1.5}summary .small{font-weight:400;display:block;margin-left:25px}.hotel-intro{margin:20px 0}.hotel-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.hotel-card{border:1px solid var(--line);padding:19px;background:#fff;border-radius:4px}.hotel-card p{margin-bottom:14px}.hotel-card dl{margin:0}.hotel-card dl>div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:14px}.hotel-card dd{margin:0;font-weight:650}details>.small:last-child{margin-top:20px}footer{margin-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:14px}.logout{background:none;color:var(--red);padding:0;text-decoration:underline;font-size:14px}.logout:hover{background:none}.gate{max-width:500px;margin:8vh auto}.gate h1{font-size:65px}.gate>.form-card{margin-top:25px}.gate .form-card h3{font-size:21px}.notice{border:1px solid #65815c;background:#edf6e8;padding:13px;border-radius:4px}.error{border-color:#ba333d;background:#fff0ed}.admin-title{font-size:56px}.admin-stats{display:flex;flex-wrap:wrap;gap:16px;margin:24px 0}.admin-stats div{background:#fff0d0;border-radius:4px;padding:16px}.admin-stats strong{display:block;font-size:27px}.table-wrap{overflow:auto;margin-top:25px}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;padding:12px;border-bottom:1px solid var(--line);max-width:350px;overflow-wrap:anywhere}.multiline{white-space:pre-wrap;min-width:160px}:focus-visible{outline:3px solid #2b608b;outline-offset:4px}[hidden]{display:none!important}@media(max-width:650px){header,main,footer{padding-left:20px;padding-right:20px}.brand{font-size:24px}nav{gap:16px}h1{font-size:52px}.album-title{padding:0 0 22px}.album-title p{font-size:16px}.essential-grid,.hotel-grid{grid-template-columns:1fr;gap:28px}.form-card{padding:20px}.event-info section{margin-bottom:20px}.event-info{margin-top:5px}#hotels{margin-top:20px}.gate{margin:4vh auto}.choice{min-width:120px}summary{font-size:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* A little album character, without shadows or a large introduction. */
@font-face{font-family:UderzoTitle;src:url('fonts/UderzoTitre-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{--line:#292a2e;--paper:#fffaf0}header{border-bottom:2px solid var(--ink);padding-top:18px;padding-bottom:18px}.brand{font:400 21px/1.4 UderzoTitle,Album,sans-serif;letter-spacing:0;display:flex;align-items:center;gap:12px}.issue-number{display:inline-block;background:#ffe6a1;border:2px solid var(--ink);padding:1px 8px;color:var(--ink);font-size:22px}.edition-label{font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.08em;margin:0 0 10px;color:#5b4a35}.album-title{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 0 28px}.album-title h1,.gate h1{font-family:UderzoTitle,Album,sans-serif;font-weight:400;font-size:58px;line-height:1.2;letter-spacing:0;text-transform:uppercase;margin:0}.album-title .edition-label{font-size:12px;line-height:1.5}.album-title .event-meta{font-size:16px;line-height:1.5;flex-shrink:0}.form-card{border:2px solid var(--ink);border-radius:0;padding:26px}.form-title{font-family:UderzoTitle,Album,sans-serif;font-size:29px;line-height:1.3;margin-bottom:10px}.form-intro{font-size:15px;color:#59595c;margin-bottom:24px}.essential-grid{gap:34px}.gallier-note{margin-bottom:29px;border:2px solid var(--ink);background:#fffef8}.gallier-caption{padding:10px 14px;font-size:14px;font-weight:700;background:#ffe6a1;border-bottom:2px solid var(--ink)}.gallier-quote{display:flex;align-items:center;gap:16px;padding:19px 16px 12px}.gallier-quote img{width:76px;height:76px;object-fit:contain;border:1px solid var(--ink);flex-shrink:0}.gallier-quote blockquote{margin:0;font:400 23px/1.3 Album,sans-serif;letter-spacing:.035em}.gallier-note>p{padding:0 16px 15px;margin:0}.event-info h2{font:400 23px/1.3 UderzoTitle,Album,sans-serif}.event-info section{border-bottom:1px solid #d6d0c4;padding-bottom:23px;margin-bottom:25px}.cheers{font-size:23px}input[type=text],input[type=password],textarea,.choice,button,.button{border-radius:2px}.choice{border:1.5px solid var(--ink)}.choice:has(input:checked){background:#ffe6a1;border-color:var(--ink)}.form-card button{border:2px solid var(--ink)}#hotels{border:2px solid var(--ink);padding:0;margin-top:30px}summary{padding:19px 22px;font-size:21px;background:#f6edda}summary .small{margin-top:3px}.hotel-grid{padding:0 22px}.hotel-intro{margin:22px}.hotel-card{border:1px solid #bbb4a7;border-radius:0;padding:22px}.hotel-card h3{font-family:system-ui;font-size:17px}.hotel-card p{margin-bottom:17px}details>.small:last-child{margin:22px}.image-credit{display:block;font-size:11px;color:#626269;margin-top:7px}.gate h1{margin-bottom:18px}.gate .form-card{margin-top:24px}footer{border-top:1px solid #d6d0c4}@media(max-width:650px){header{gap:12px}.brand{font-size:15px;gap:7px}.issue-number{font-size:18px;padding:1px 6px}nav{gap:12px}nav a{font-size:13px}.album-title{display:block;padding-bottom:23px}.album-title h1{font-size:49px;margin-bottom:14px}.album-title .event-meta{font-size:15px}.album-title .event-meta br:first-of-type{display:none}.album-title .event-meta strong:after{content:' · '}.form-card{padding:22px}.form-title{font-size:28px}.essential-grid{gap:30px}.gallier-note{margin-top:3px}.gallier-quote{padding:22px 18px 13px}.gallier-quote img{width:78px;height:78px}.gallier-quote blockquote{font-size:25px}summary{padding:17px;font-size:20px}.hotel-grid{padding:0 16px}.hotel-intro,details>.small:last-child{margin:18px 16px}.gate h1{font-size:49px}}
/* Compact meal quantities and a single title-bar joke. */
.title-brand{display:flex;align-items:center;gap:16px;max-width:600px}.title-portrait{width:66px;height:66px;object-fit:contain;flex-shrink:0;border:1.5px solid var(--ink)}.title-brand .edition-label{font-size:11px;margin:0;display:block}.title-quote{font:400 24px/1.25 Album,sans-serif;letter-spacing:.025em;margin:5px 0 0}.meal-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.meal-counts label{font-size:14px}.number-control{display:flex;border:1.5px solid var(--ink);background:white;align-items:center}.number-control input{width:100%;min-width:0;text-align:center;border:0;background:none;font:600 18px/1.5 system-ui;padding:10px 0;appearance:textfield;-moz-appearance:textfield}.number-control input::-webkit-inner-spin-button,.number-control input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-card .stepper{flex:0 0 30px;width:30px;margin:0;padding:9px 0;background:#fff4d4;color:var(--ink);border:0;border-radius:0;font-size:22px;font-weight:400;line-height:1.3}.stepper:hover{background:#ffe6a1}.extra-details{margin-top:20px;border-top:1px solid #d6d0c4;border-bottom:1px solid #d6d0c4}.extra-details>summary{background:transparent;padding:15px 0;font:600 15px/1.5 system-ui;cursor:pointer}.extra-details>summary .optional{display:inline;font-size:13px}.extra-details>div{padding-bottom:18px}.extra-details>div>.spaced-label:first-child{margin-top:0}.form-title{margin-bottom:23px}@media(max-width:650px){header{flex-wrap:wrap;gap:14px}.title-brand{gap:12px;width:100%}.title-portrait{width:62px;height:62px}.title-quote{font-size:23px}.title-brand .edition-label{font-size:10px}header nav{margin-left:74px}.meal-counts{gap:8px}.meal-counts label{font-size:13px}.form-card .stepper{flex-basis:27px;width:27px}.number-control input{font-size:17px}.form-card{padding:19px}}
.hotel-description{font-size:15px;margin-top:18px}.hotel-booking{padding:22px}.hotel-booking h3{margin-bottom:12px}.hotel-booking p:last-child{margin-bottom:0}.form-card .form-intro{margin-top:-10px;margin-bottom:24px}@media(max-width:650px){.hotel-booking{padding:18px 16px}}
.invitation-motto{margin:0 0 23px}.gate{margin-top:25px}.gate>.form-card{margin-top:18px}
/* Shared title and RSVP on the left; organisation on the right. */
.invitation-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-template-areas:"title location" "signup info";gap:24px 36px;align-items:start}.invitation-title{grid-area:title;display:block;width:100%;max-width:none;margin:0;padding:0 0 20px;border-bottom:2px solid var(--ink)}.invitation-title .title-brand{max-width:none;min-width:0}.invitation-title .title-quote{font-size:23px}.invitation-title .invitation-motto{font-size:11px;margin:18px 0 0;line-height:1.6}.invitation-layout>#antwort{grid-area:signup;min-width:0}.invitation-layout>.event-info{grid-area:info;min-width:0}.event-location{grid-area:location;padding:0 0 20px;border-bottom:1px solid #d6d0c4;font-size:15px;line-height:1.5}.event-location h2{font:400 23px/1.3 UderzoTitle,Album,sans-serif;margin:0 0 12px}.event-location p{margin:0 0 8px}.event-location a{font-size:14px}.invitation-layout>.gate{grid-area:signup;width:100%;max-width:none;margin:0;padding:0}.invitation-layout>.gate>.form-card{margin-top:0}.is-login .invitation-layout{grid-template-areas:"title ." "signup ."}.invitation-layout .event-info section:first-child{padding-top:0}.invitation-page>#hotels{margin-top:32px}
@media(max-width:750px){.invitation-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "location" "signup" "info";gap:24px}.is-login .invitation-layout{grid-template-areas:"title" "signup"}.invitation-title{padding-bottom:18px}.invitation-title .title-brand{width:100%}.invitation-title .invitation-motto{margin-top:16px}.event-location{padding:0 0 20px}.event-location h2{font-size:22px}.invitation-layout>.event-info{margin-top:0}}
