@font-face{font-family:Kalam;src:url('/fonts/kalam-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--ink:#f5f0ca;--blue:#ebe78c;--paper:#084936;--line:#477362;--accent:#174f3e;--white:#104f3c;--hand:Kalam,'Segoe Print',cursive;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper);font-size:16px;line-height:1.7;color-scheme:dark}
*{box-sizing:border-box}body{margin:0}a{color:var(--blue);text-underline-offset:5px;text-decoration-thickness:1px}a:hover{color:#fffcc1}header,main,footer{max-width:1240px;margin:auto;padding:28px 44px}header{display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.brand{font-family:var(--hand);color:var(--blue);text-decoration:none;font-size:1.05rem;line-height:1.25;transform:rotate(-3deg)}.brand strong{display:block;font-size:1.7rem;font-weight:400;letter-spacing:.1em}nav{display:flex;align-items:center;gap:30px;font-size:.95rem}nav a{text-decoration:none}nav a:last-child{border:1px solid #aaa96f;padding:8px 17px;border-radius:3px}h1,h2,p{margin-top:0}h1,h2{color:var(--blue)}h1{font-family:var(--hand);font-size:clamp(2.8rem,6vw,5.2rem);font-weight:400;line-height:1.13;max-width:900px;margin-bottom:26px}h2{font-family:var(--hand);font-size:1.9rem;font-weight:400;line-height:1.3;margin-bottom:18px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.8rem;font-weight:600;color:#d7daa8;margin-bottom:25px}
.hero{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:28px;padding:58px 0 54px}.hero h1{max-width:610px;font-size:clamp(3.2rem,5.8vw,5rem);line-height:1.11;margin-bottom:23px}.hero-copy{position:relative;z-index:1}.hero-date{font-family:var(--hand);color:var(--blue);font-size:1.45rem;line-height:1.4;margin-bottom:2px}.hero-place{font-family:var(--hand);color:var(--blue);font-size:1.3rem;margin-bottom:24px}.lead{font-size:1.05rem;max-width:520px;white-space:pre-line;color:#e0e7cd}.hero-art{width:100%;aspect-ratio:864/780;background-image:url('/piknik-kuvitus.jpeg');background-size:125% auto;background-repeat:no-repeat;background-position:center 78.8%;mix-blend-mode:lighten;transform:rotate(-2deg)}.hero-actions{display:flex;align-items:flex-start;gap:14px;margin-top:28px;flex-direction:column}.hero-actions span{font-size:.9rem;color:#d2dbaa}.button,button{display:inline-block;background:var(--blue);color:#123e30;border:1px solid var(--blue);border-radius:4px;padding:13px 23px;font:inherit;font-weight:650;text-decoration:none;cursor:pointer;min-height:48px;line-height:1.45}.button:hover,button:hover{background:#fff5ad;color:#143e30}button:disabled{opacity:.6;cursor:wait}.facts{display:grid;grid-template-columns:1.2fr 1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:27px 0;gap:32px}.facts h2{font-family:inherit;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600;margin-bottom:12px}.facts p{margin:0;font-size:.98rem}.info{display:grid;grid-template-columns:1fr 1.3fr;gap:70px;padding:48px 0 20px}.info h2{font-size:2.5rem;max-width:350px}.info .eyebrow{margin-bottom:16px}.info p{max-width:590px}
.form-intro{padding:42px 0 16px;max-width:850px}.form-intro h1{font-size:clamp(2.4rem,5vw,3.8rem)}.form-intro .eyebrow{margin-bottom:18px}.card{padding:34px;background:var(--white);border:1px solid var(--line);border-radius:6px;margin-bottom:26px}.registration,.narrow{max-width:740px}.registration{background:#f4f1d9;color:#173f30;border-color:#f4f1d9;color-scheme:light}.registration h2{color:#24513a}.registration a{color:#29573f}.registration .muted{color:#4c6354}.registration input,.registration select,.registration textarea{background:#fffef4;color:#183d2e;border-color:#829683}.registration button{background:#154b36;border-color:#154b36;color:#faf3c1}.registration button:hover{background:#0b3827}label{display:block;font-size:.95rem;font-weight:600;margin-bottom:22px}input,select,textarea{display:block;width:100%;font:inherit;color:var(--ink);background:#0a3c2d;border:1px solid #7e9677;border-radius:3px;padding:12px;margin-top:7px;min-width:0}input[type=checkbox]{display:inline-block;width:auto;margin-right:10px;accent-color:var(--blue)}textarea{resize:vertical}form h2:not(:first-child){margin-top:30px}.muted{color:#c0cdae;font-size:.9rem}.notice{background:var(--accent);padding:24px;border:1px solid var(--line);border-left:4px solid var(--blue);margin:20px 0;max-width:800px}.notice h2{margin-bottom:12px}.notice p:last-child{margin-bottom:0}.error{background:#542f2d;border-color:#e9ad8c;color:#fff0df}.danger{background:#e8ad93;border-color:#e8ad93;color:#452c23}.danger:hover{background:#f5c6b0;color:#452c23}
.stats{display:flex;gap:16px;flex-wrap:wrap;margin:20px 0}.stat{background:var(--white);border:1px solid var(--line);padding:18px;flex:1;min-width:130px;font-size:.9rem}.stat strong{display:block;font-size:2rem;color:var(--blue)}.table-wrap{overflow-x:auto;background:var(--white)}table{border-collapse:collapse;width:100%;font-size:.9rem}caption{text-align:left;padding:16px}th,td{padding:14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}th{background:#205642;color:var(--blue)}td{overflow-wrap:anywhere}td button{font-size:.875rem;padding:8px 12px;white-space:nowrap}.admin-top{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap}.admin-top h1{font-family:inherit;font-size:2.2rem;font-weight:600}.event-list{list-style:none;padding:0}.event-list a{display:block;padding:24px;background:var(--white);border:1px solid var(--line);margin:12px 0;font-weight:600}.settings{margin-top:32px}.settings summary{cursor:pointer;font-size:1.2rem;font-weight:600;margin-bottom:20px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.token-link{overflow-wrap:anywhere}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:42px;font-size:.875rem;gap:16px;padding-top:26px;padding-bottom:38px;color:#d5ddaf}footer span{font-family:var(--hand);font-size:1.3rem;color:var(--blue)}.skip{position:absolute;top:-100px;left:20px;background:var(--blue);color:#123e30;padding:12px;z-index:5}.skip:focus{top:0}:focus-visible{outline:3px solid #ffdb6e;outline-offset:4px}.registration :focus-visible{outline-color:#365d36}.instructions{background:transparent;border:0;border-left:1px solid var(--line);border-radius:0;padding:4px 0 4px 34px;max-width:790px}.instructions p{white-space:pre-line;max-width:700px}.instructions h2{margin-top:36px;font-size:1.85rem}.instructions section:first-child h2{margin-top:0}
@media(max-width:800px){header,main,footer{padding-left:26px;padding-right:26px}.hero{gap:8px}.hero h1{font-size:3.4rem}.hero-date{font-size:1.2rem}.hero-place{font-size:1.15rem}.facts{gap:22px}.info{gap:30px}nav{gap:18px}}
@media(max-width:600px){header,main,footer{padding-left:22px;padding-right:22px}header{gap:18px;padding-top:20px;padding-bottom:20px}.brand{font-size:.83rem}.brand strong{font-size:1.4rem}nav{gap:13px;font-size:.875rem}nav a:last-child{border:0;padding:0}.hero{grid-template-columns:1fr;padding:36px 0 26px;gap:4px}.hero h1{font-size:clamp(3rem,13vw,4.2rem);max-width:390px}.hero .eyebrow{font-size:.75rem;margin-bottom:20px}.hero-date{font-size:1.25rem}.hero-place{font-size:1.2rem}.hero-art{max-width:460px;justify-self:center;margin-top:12px}.hero-actions{margin-top:22px;gap:12px}.facts,.info,.grid{grid-template-columns:1fr}.facts{padding:24px 0;gap:22px}.facts h2{margin-bottom:6px}.info{gap:8px;padding:32px 0 0}.info h2{font-size:2.2rem}.card{padding:23px}.form-intro{padding-top:30px}.stats{gap:8px}.stat{padding:12px;min-width:110px}.instructions{padding:0 0 0 20px}.instructions h2{font-size:1.65rem}footer{flex-wrap:wrap;margin-top:32px}footer span{font-size:1.15rem}}
@media(max-width:360px){header{align-items:flex-start;flex-direction:column}nav{width:100%;justify-content:space-between}.hero h1{font-size:2.9rem}}
@media print{header,footer,.skip,button,.hero-art{display:none}:root,body{background:white;color:black;color-scheme:light}.card,.registration,.notice{border:0;background:white;color:black;padding:0}h1,h2,p,a,.muted{color:black!important}.form-intro h1{font-size:2rem}.token-link{font-size:12pt}main{padding:0}.instructions{border:0;padding:0}}
 .invitation-consent{border:1px solid #829683;margin:26px 0;padding:18px}.invitation-consent legend{font-weight:600;padding:0 8px}.invitation-consent label{margin-bottom:12px}.invitation-consent input[type=checkbox]{accent-color:#154b36}.invitation-consent p{margin-bottom:0}

.footer-links{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.footer-links a:last-child{font-size:.8rem}
