:root{--brown:#4e342e;--brown-mid:#795548;--brown-bg:#efebe9;--yellow:#ffd740;--orange:#ff6d00;--cream:#fffbf0;--green:#2e7d32;--red:#c62828;--card:#fff;--radius:14px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{font-family:Nunito,sans-serif;background:var(--cream);color:#2c1810;line-height:1.7;min-height:100vh}header.site-header{background:var(--brown);color:#fff;padding:.3rem 1rem .75rem;text-align:center;position:relative;overflow:hidden;margin-bottom:0}.header-inner{max-width:700px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:0}.header-bottom{display:flex;align-items:flex-end;gap:.4rem;margin-top:0}header.site-header h1{font-family:Fredoka One,cursive;font-size:clamp(2.2rem,8vw,3.4rem);line-height:1.1;color:var(--yellow);text-shadow:3px 3px 0 rgba(0,0,0,.3);margin:0}header.site-header .tagline{font-size:.95rem;color:#ffccbc;margin-top:0;font-style:italic}header.site-header nav{margin-top:1rem;display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center}header.site-header nav a,header.site-header nav span.btn-secondary{display:inline-block;text-decoration:none;padding:.55rem 1.4rem;font-family:Fredoka One,cursive;font-size:1.05rem;border-radius:50px;letter-spacing:.03em;box-shadow:0 3px 0 rgba(0,0,0,.25);transition:transform .1s,box-shadow .1s}header.site-header nav a:hover{transform:translateY(-2px);box-shadow:0 5px 0 rgba(0,0,0,.25)}header.site-header nav a:active{transform:translateY(1px);box-shadow:0 1px 0 rgba(0,0,0,.25)}header.site-header nav a.btn-primary{background:var(--yellow);color:var(--brown)}header.site-header nav a.btn-secondary,header.site-header nav span.btn-secondary{background:hsla(0,0%,100%,.15);color:#fff;border:2px solid hsla(0,0%,100%,.3)}header.site-header nav .nav-break{flex-basis:100%;height:0}header.site-header nav .btn-count{cursor:default;font-weight:700}.arale{width:clamp(90px,22vw,140px);flex-shrink:0;display:block;animation:wobble 3s ease-in-out infinite}@keyframes wobble{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}header.sub-header{background:var(--brown);color:#fff;padding:1.2rem 1rem;display:flex;align-items:center;gap:1rem}header.sub-header h1{font-family:Fredoka One,cursive;font-size:1.6rem;color:var(--yellow);flex:1 1}.back-link{font-size:.9rem;color:#ffccbc;text-decoration:none;font-weight:700;white-space:nowrap}.back-link:hover{color:#fff}.back-link:before{content:"← "}header.admin-header{background:var(--brown);color:#fff;padding:1rem 1.5rem}.admin-header-inner{max-width:900px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}header.admin-header h1{font-family:Fredoka One,cursive;font-size:1.5rem;color:var(--yellow)}.admin-nav{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.admin-nav a{display:inline-block;padding:.35rem .9rem;border-radius:50px;text-decoration:none;font-weight:700;font-size:.85rem;color:#fff;border:2px solid hsla(0,0%,100%,.25);transition:background .15s}.admin-nav a:hover{background:hsla(0,0%,100%,.15)}.admin-nav a.active{background:hsla(0,0%,100%,.2);border-color:hsla(0,0%,100%,.5)}.manifesto{background:var(--brown-bg);border-top:4px dashed var(--brown-mid);border-bottom:4px dashed var(--brown-mid);padding:.4rem 1rem 1.6rem;margin:0}.manifesto-inner{max-width:700px;margin:0 auto}.manifesto h2{font-family:Fredoka One,cursive;font-size:1.35rem;color:var(--red);margin-bottom:.2rem}.manifesto strong{color:var(--brown)}.manifesto-heading-btn{background:none;border:none;padding:0;cursor:pointer;text-align:center;width:100%;display:flex;flex-direction:column;gap:.15rem;align-items:center}.manifesto-heading-btn:hover h2{text-decoration:underline}.manifesto-read-more{font-size:.78rem;color:var(--brown);opacity:.65;font-family:Nunito,sans-serif;font-weight:700;display:block;text-align:center}.manifesto-modal{background:#fff;border-radius:14px;padding:2rem 2.2rem;max-width:560px;width:calc(100% - 2rem);max-height:82vh;overflow-y:auto;cursor:default;position:relative;box-shadow:0 8px 40px rgba(0,0,0,.5)}.manifesto-modal-title{font-family:Fredoka One,cursive;font-size:1.35rem;color:var(--red);margin-bottom:1rem;padding-right:2rem}.manifesto-modal-body{font-size:.95rem;color:#4e342e;line-height:1.7;margin-bottom:.9rem}.manifesto-modal-body strong{color:var(--brown)}.manifesto-modal .cta{font-weight:700;font-size:1rem;color:var(--orange);margin-bottom:0;text-align:center}.manifesto-modal .cta-link{display:block;text-decoration:none}.manifesto-modal .cta-link:hover .cta{text-decoration:underline}.cookies-body{font-size:.95rem;color:#4e342e;line-height:1.75}.cookies-body h3{font-family:Fredoka One,cursive;font-size:1.15rem;color:var(--brown);margin:1.5rem 0 .5rem}.cookies-body h4{font-weight:700;font-size:.95rem;color:var(--brown-mid);margin:1rem 0 .35rem}.cookies-body p{margin-bottom:.75rem}.cookies-body ul{margin:.4rem 0 .75rem 1.4rem}.cookies-body ul li{margin-bottom:.4rem}.cookies-body a{color:var(--brown-mid)}.cookies-body a:hover{color:var(--brown)}.cookies-note{background:var(--brown-bg);border-left:4px solid var(--orange);border-radius:0 8px 8px 0;padding:.7rem 1rem;margin-bottom:.75rem}main.blog-main{max-width:700px;margin:0 auto;padding:1.5rem 1rem 0}main.page-main{max-width:700px;margin:0 auto;padding:1.5rem 1rem 4rem}main.admin-main{max-width:900px;margin:0 auto;padding:2rem 1rem 4rem}.section-title{font-size:1.3rem;color:var(--brown-mid);margin-bottom:1rem;text-align:center}.page-title,.section-title{font-family:Fredoka One,cursive}.page-title{font-size:1.6rem;color:var(--brown);margin-bottom:1.5rem}.post{background:var(--card);border-radius:var(--radius);padding:1.2rem 1.3rem;margin-bottom:1.2rem;box-shadow:0 2px 8px rgba(78,52,46,.1);border-left:5px solid var(--yellow);transition:box-shadow .15s}.post:hover{box-shadow:0 4px 16px rgba(78,52,46,.15)}.post-meta{font-size:.78rem;color:#a1887f;margin-bottom:.5rem;display:flex;flex-wrap:wrap;gap:.4rem .8rem;align-items:center;font-weight:600}.post-location a{color:var(--green);text-decoration:none;font-weight:700}.post-location a:hover{text-decoration:underline}.post-location-plain{color:var(--green);font-weight:700}.post h2{font-family:Fredoka One,cursive;font-size:1.3rem;color:var(--brown);margin-bottom:.4rem;line-height:1.2}.post p{font-size:.95rem;color:#4e342e}.post-image-wrap{margin-top:1rem;position:relative;display:inline-block}.post-image-wrap img{display:block;max-width:100%;max-height:380px;border-radius:10px;cursor:zoom-in;transition:opacity .15s,transform .15s;box-shadow:0 3px 12px rgba(0,0,0,.15)}.post-image-wrap img:hover{opacity:.95;transform:scale(1.01)}.zoom-hint{position:absolute;bottom:.5rem;right:.5rem;background:rgba(0,0,0,.55);color:#fff;font-size:.7rem;padding:.2rem .45rem;border-radius:20px;pointer-events:none;opacity:0;transition:opacity .15s}.post-image-wrap:hover .zoom-hint{opacity:1}.api-error,.empty,.loading{text-align:center;padding:3rem 1rem;font-size:1rem}.loading{color:var(--brown-mid)}.empty{color:#a1887f}.api-error{color:var(--red);font-weight:700}.empty .big,.loading .big{font-size:3rem;display:block;margin-bottom:.5rem}.pagination{max-width:700px;margin:1.5rem auto 3rem;padding:0 1rem;align-items:center;justify-content:space-between;font-family:Nunito,sans-serif;font-size:.9rem;font-weight:700;flex-wrap:wrap}.pagination,.pagination .prev-next{display:flex;gap:.4rem}.pagination .current,.pagination .disabled,.pagination a{text-decoration:none;padding:.45rem .8rem;border-radius:50px;border:2px solid var(--brown-bg);background:#fff;color:var(--brown);line-height:1;transition:background .15s}.pagination a:hover{background:var(--brown-bg)}.pagination .current{background:var(--brown);color:#fff;border-color:var(--brown)}.pagination .disabled{color:#ccc;border-color:#eee;cursor:default}.pagination .page-numbers{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}.pagination .ellipsis{color:#aaa;padding:0 .2rem;border:none;background:none}footer.site-footer{text-align:center;padding:1.5rem 1rem 2.5rem;font-size:.82rem;color:#a1887f}footer.site-footer .footer-nav{border-top:1px solid var(--brown-bg);border-bottom:1px solid var(--brown-bg);padding:.6rem 1rem;margin:0 auto 1.1rem;max-width:480px}footer.site-footer .footer-nav a{color:var(--brown-mid);text-decoration:none;font-size:.82rem;font-weight:600}footer.site-footer .footer-nav a:hover{text-decoration:underline}footer.site-footer .footer-sep{margin:0 .6rem;font-size:.7rem;opacity:.5}footer.site-footer .poop{font-size:1.3rem;display:block;margin-bottom:.3rem}.lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.93);z-index:1000;align-items:center;justify-content:center;cursor:zoom-out}.lightbox.open{display:flex}.lightbox img{max-width:92vw;max-height:92vh;object-fit:contain;border-radius:8px;box-shadow:0 8px 40px rgba(0,0,0,.6);cursor:default}.lightbox-close{position:fixed;top:1rem;right:1.2rem;background:none;border:none;color:#fff;font-size:2.2rem;cursor:pointer;opacity:.7;transition:opacity .15s;line-height:1;padding:.3rem .5rem}.lightbox-close:hover{opacity:1}.lightbox-hint{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%);font-family:Nunito,sans-serif;font-size:.75rem;color:hsla(0,0%,100%,.35);pointer-events:none}.star-rating{margin-top:1rem;padding-top:.75rem;border-top:1px dashed #e0cfc9}.star-label{display:block;font-size:.78rem;font-weight:700;color:#a1887f;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem}.star-row{display:flex;align-items:center;gap:.1rem}.star-btn{background:none;border:none;padding:0 .05rem;font-size:1.55rem;line-height:1;cursor:pointer;color:#ddd;transition:color .1s,transform .1s}.star-btn.star-on,.star-btn:hover{color:#f5b300}.star-btn:not(:disabled):hover{transform:scale(1.15)}.star-btn:disabled{cursor:default}.star-info{margin-left:.6rem;font-size:.8rem;color:#a1887f;font-weight:700}.star-thanks{display:block;font-size:.76rem;color:#7cb87e;font-weight:700;margin-top:.25rem}.ranking-badge{font-family:Fredoka One,cursive;font-size:.95rem;color:#fff;background:var(--brown);border-radius:50px;padding:.05rem .55rem;letter-spacing:.02em}.ranking-score{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:1rem;padding-top:.75rem;border-top:1px dashed #e0cfc9}.stars-display{font-size:1.15rem;line-height:1}.star-on{color:#f5b300}.star-off{color:#ddd}.ranking-avg{font-weight:700;color:var(--brown);font-size:.9rem}.ranking-count{font-size:.8rem;color:#a1887f}.ranking-myvote{font-size:.78rem;color:#a1887f;font-style:italic}.intro{background:var(--brown-bg);border-radius:var(--radius);padding:1rem 1.2rem;color:var(--brown);border-left:4px solid var(--orange)}.form-errors,.intro{margin-bottom:1.5rem;font-size:.9rem}.form-errors{background:#ffebee;border-left:4px solid var(--red);padding:.75rem 1rem;border-radius:0 var(--radius) var(--radius) 0;color:var(--red);font-weight:600}.form-errors ul{padding-left:1.2rem}label.field-label{display:block;font-size:.82rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--brown-mid);margin-bottom:.4rem}.req{color:var(--red)}.hint{font-weight:400;font-size:.78rem;text-transform:none;letter-spacing:0;color:#a1887f;margin-left:.4rem}input[type=password],input[type=text],textarea{width:100%;padding:.75rem 1rem;border:2px solid var(--brown-bg);border-radius:10px;font-size:1rem;font-family:Nunito,sans-serif;background:#fff;color:#2c1810;margin-bottom:1.3rem;transition:border-color .15s}input[type=password]:focus,input[type=text]:focus,textarea:focus{outline:none;border-color:var(--brown-mid)}textarea{min-height:160px;resize:vertical;line-height:1.65}.btn-primary{background:var(--brown);color:var(--yellow);border:none;padding:.75rem 1.8rem;font-size:1.05rem;font-family:Fredoka One,cursive;border-radius:50px;cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.2);transition:transform .1s,box-shadow .1s;letter-spacing:.03em;text-decoration:none;display:inline-block}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 5px 0 rgba(0,0,0,.2)}.btn-primary:active{transform:translateY(1px);box-shadow:0 1px 0 rgba(0,0,0,.2)}.btn-primary:disabled{opacity:.6;transform:none;cursor:wait}.cancel-link{font-size:.9rem;color:#a1887f;text-decoration:none;font-weight:700}.cancel-link:hover{color:var(--brown)}.card{background:#fff;border-radius:10px;box-shadow:0 2px 8px rgba(78,52,46,.08);padding:1.3rem 1.5rem;margin-bottom:1.5rem}.card h2{font-family:Fredoka One,cursive;font-size:1.15rem;color:var(--brown);margin-bottom:1rem}.message{border-radius:8px;padding:.75rem 1rem;margin-bottom:1.5rem;font-weight:700;font-size:.9rem}.message.success{background:#e8f5e9;border:1.5px solid var(--green);color:var(--green)}.message.error{background:#fdecea;border:1.5px solid var(--red);color:var(--red)}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;font-size:.78rem;color:var(--brown-mid);text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--brown-bg);padding:.5rem .6rem}td{padding:.65rem .6rem;border-bottom:1px solid var(--brown-bg);vertical-align:middle}tr:last-child td{border-bottom:none}.btn-sm{padding:.3rem .75rem;border:none;border-radius:50px;font-family:Nunito,sans-serif;font-weight:700;font-size:.8rem;cursor:pointer;transition:opacity .15s}.btn-sm:hover{opacity:.85}.btn-danger{background:#fdecea;color:var(--red);border:1.5px solid #ffcdd2}.btn-default{background:var(--brown-bg);color:var(--brown);border:1.5px solid #d7ccc8}.btn-success{background:var(--green);color:#fff}.self-badge{background:var(--yellow);color:var(--brown);margin-left:.3rem}.self-badge,.status-badge{display:inline-block;font-size:.7rem;border-radius:50px;padding:.1rem .5rem;font-weight:700}.status-badge{letter-spacing:.03em}.status-badge.pending{background:#fff3e0;color:var(--orange);border:1px solid #ffe0b2}.status-badge.approved{background:#e8f5e9;color:var(--green);border:1px solid #c8e6c9}.admin-post-card{background:#fff;border-radius:10px;box-shadow:0 2px 8px rgba(78,52,46,.08);margin-bottom:.85rem;overflow:hidden;display:flex;gap:0;border-left:5px solid var(--brown-bg);transition:box-shadow .15s}.admin-post-card:hover{box-shadow:0 4px 16px rgba(78,52,46,.12)}.admin-post-card.pending{border-left-color:var(--orange)}.admin-post-card.approved{border-left-color:var(--green)}.post-thumb{width:90px;flex-shrink:0;background:var(--brown-bg);overflow:hidden;display:flex;align-items:center;justify-content:center}.post-thumb img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}.post-thumb .no-img{font-size:2rem;opacity:.3}.post-card-body{flex:1 1;padding:.85rem 1rem;min-width:0}.post-card-meta{font-size:.75rem;color:#a1887f;margin-bottom:.35rem;display:flex;flex-wrap:wrap;gap:.3rem .6rem;align-items:center}.post-card-meta .id{font-weight:700;color:#bdbdbd}.post-card-title{font-family:Fredoka One,cursive;font-size:1.05rem;color:var(--brown);margin-bottom:.25rem}.post-card-excerpt,.post-card-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-card-excerpt{font-size:.82rem;color:#795548}.post-card-author{font-size:.75rem;color:#a1887f;margin-top:.3rem}.post-actions{display:flex;flex-direction:column;gap:.4rem;padding:.75rem .85rem;justify-content:center;flex-shrink:0}.section-heading{font-family:Fredoka One,cursive;font-size:1.2rem;color:var(--brown);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:3px solid var(--brown-bg);display:flex;align-items:center;gap:.6rem}.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;height:1.6rem;background:var(--orange);color:#fff;border-radius:50px;font-family:Nunito,sans-serif;font-size:.78rem;font-weight:700;padding:0 .5rem}.count-badge.zero{background:#bdbdbd}.section-gap{margin-bottom:3rem}.contact-card{background:#fff;border-radius:10px;box-shadow:0 2px 8px rgba(78,52,46,.08);margin-bottom:.85rem;padding:.9rem 1.1rem;border-left:5px solid var(--brown-mid)}.contact-card:hover{box-shadow:0 4px 16px rgba(78,52,46,.12)}.contact-card--hidden{border-left-color:#ddd;opacity:.55}.contact-card-meta{font-size:.75rem;color:#a1887f;margin-bottom:.4rem;display:flex;flex-wrap:wrap;gap:.3rem .6rem;align-items:center}.contact-card-meta .id{font-weight:700;color:#bdbdbd}.contact-card-subject{font-family:Fredoka One,cursive;font-size:1.05rem;color:var(--brown);margin-bottom:.3rem}.contact-card-from{font-size:.8rem;color:#a1887f;margin-bottom:.5rem}.contact-card-message{font-size:.88rem;color:#4e342e;white-space:pre-wrap;line-height:1.6;margin-bottom:.75rem}.empty-state{text-align:center;padding:2.5rem 1rem;color:#bdbdbd;font-size:.95rem;background:#fff;border-radius:10px;box-shadow:0 2px 8px rgba(78,52,46,.05)}.empty-state .icon{font-size:2.5rem;display:block;margin-bottom:.5rem;opacity:.5}@media (max-width:560px){.post-thumb{width:60px}.post-actions{flex-direction:row;padding:.6rem}}