:root{--inn-brown:#1c0d07;--inn-panel:#351b0d;--inn-gold:#d9ac68;--inn-cream:#f9e6c4}
body.inn-festive{margin:0;background:radial-gradient(circle at 50% 0,#58341b,#150905 72%);color:var(--inn-cream);font:16px/1.55 Georgia,serif;min-height:100vh}
.inn-festive *, .inn-festive *:before,.inn-festive *:after{box-sizing:border-box}
.inn-festive .fest-wrap{width:min(1050px,94vw);margin:28px auto 80px}
.inn-festive .fest-head{text-align:center;padding:24px 12px 28px;border:2px solid var(--inn-gold);box-shadow:inset 0 0 0 4px #45240d,inset 0 0 0 5px #af8245;border-radius:12px;background:linear-gradient(145deg,#371a0a,#1b0d07)}
.inn-festive .fest-head small{color:var(--inn-gold);letter-spacing:.22em}.inn-festive h1{font-size:clamp(2rem,5vw,4.5rem);line-height:1.15;margin:8px 0;color:#f2d29b;text-shadow:2px 3px 4px #000}.inn-festive h2,.inn-festive h3{color:#f2d29b;margin:0 0 10px}
.inn-festive .fest-panel{background:linear-gradient(135deg,#3e220f,#231107);border:1px solid #aa7d3c;border-radius:12px;padding:clamp(15px,3vw,28px);margin:19px 0;box-shadow:0 5px 22px #0008}
.inn-festive .fest-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:14px 0}
.inn-festive .fest-card{background:#211006;border:1px solid #876137;color:#ffe3b2;border-radius:9px;padding:16px;min-height:105px;text-align:left;cursor:pointer;font:inherit}.inn-festive .fest-card:hover,.inn-festive .fest-card:focus-visible{border-color:#ffd18b;background:#4b2b13}.inn-festive .fest-card.selected{outline:3px solid #efbd6f;background:#613d1d}.inn-festive .fest-card strong{display:block;font-size:1.03em}.inn-festive .fest-card small{color:#c7a47a;display:block}
.inn-festive button:not(.fest-card),.inn-festive .fest-btn{border:1px solid #e5b679;background:linear-gradient(#915521,#572c11);color:#fff0d1;padding:12px 18px;border-radius:6px;font:700 15px Georgia,serif;cursor:pointer;text-decoration:none;display:inline-block;min-height:46px}.inn-festive button:disabled{opacity:.45;cursor:not-allowed}.inn-festive button.alt{background:#2f1b11}.inn-festive button.danger{background:#79291c}.inn-festive .fest-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}.inn-festive input:not([type=checkbox]):not([type=radio]),.inn-festive select,.inn-festive textarea{width:100%;padding:11px 12px;border:1px solid #b38b57;color:#fce9c7;border-radius:6px;background:#1b0d07;font:inherit}.inn-festive label{display:block;margin:10px 0 5px}.inn-festive .fest-muted{color:#c7a882}.inn-festive .fest-warning{padding:16px;border:2px solid #eeae67;background:#4a2116;border-radius:8px}.inn-festive .fest-status{min-height:25px;color:#ffe1aa}.inn-festive .fest-result{font-size:clamp(2rem,6vw,3.4rem);font-weight:bold;letter-spacing:.04em;text-align:center;padding:25px 8px;border:2px solid #c29155;background:#200d07}.inn-festive .fest-preview{display:block;max-height:500px;max-width:100%;margin:18px auto;border:4px double #c39859}.inn-festive [hidden]{display:none!important}.inn-festive .fest-badge{padding:4px 8px;border:1px solid #aa7d3c;border-radius:20px;color:#dfb77f;font-size:.8rem}.inn-festive .fest-progress{height:17px;border:1px solid #b18648;border-radius:12px;overflow:hidden;background:#130a05}.inn-festive .fest-progress>div{height:100%;background:#5ba56a;transition:width .3s}.inn-festive table{border-collapse:collapse;width:100%}.inn-festive th,.inn-festive td{border-bottom:1px solid #76522c;padding:9px;text-align:left}.inn-festive .fest-nav{display:flex;flex-wrap:wrap;gap:12px;padding:14px 0}.inn-festive .fest-nav a{color:#eed3a4}.inn-festive .fest-controls{display:flex;flex-wrap:wrap;gap:12px}.inn-festive .fest-controls label{flex:1;min-width:170px}.inn-festive .fest-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #694525}.inn-festive .fest-row>*{min-width:0}.inn-festive .fest-row button{flex-shrink:0}.inn-festive .fest-photo-controls{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0}.inn-festive .fest-photo-controls label{margin:0}.inn-festive .fest-photo-controls input{width:auto}

/* Make the year optically equal to the title lettering, not smaller. */
.inn-festive .fest-head .fest-year{font-size:1.08em;font-variant-numeric:lining-nums;white-space:nowrap}

/* Festive Rogues: approved photograph choices and matching period treatments. */
.inn-festive #fest-styles{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.inn-festive .fest-style-card{min-width:0;overflow:hidden;border:1px solid #a47d43;border-radius:10px;background:#211006;box-shadow:0 4px 14px #0005;transition:transform .18s ease,box-shadow .18s ease}
.inn-festive .fest-style-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px #0009}
.inn-festive .fest-style-card.selected{outline:3px solid #efbd6f;outline-offset:2px}
.inn-festive .fest-style-card .fest-card{display:block;width:100%;border:0;border-radius:0;padding:0;min-height:0;background:transparent}
.inn-festive .fest-card img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.inn-festive .fest-card-copy{display:block;padding:14px 14px 8px;min-height:92px}
.inn-festive .fest-card-copy small{margin-top:5px;font-size:.8rem}
.inn-festive button.fest-example-button{display:block;width:calc(100% - 24px);margin:0 12px 12px;min-height:44px;padding:8px;background:#3e2514;font-size:.85rem}
.inn-festive [data-finish=mono]{filter:grayscale(1) contrast(1.06)}
.inn-festive [data-finish=sepia]{filter:sepia(.85) saturate(.7) contrast(.97)}
.inn-festive [data-finish=warm70]{filter:sepia(.22) saturate(.8) contrast(.94)}
.inn-festive [data-finish=flash80]{filter:saturate(.94) contrast(1.03)}
.inn-festive [data-finish=retro60]{filter:sepia(.12) saturate(.86)}
.inn-festive .fest-lightbox{width:min(740px,94vw);max-height:94dvh;overflow:auto;padding:18px;border:2px solid #c9a165;border-radius:12px;background:#24130b;color:#f9e6c4;box-shadow:0 20px 80px #000}
.inn-festive .fest-lightbox::backdrop{background:#090502df}
.inn-festive .fest-lightbox img{display:block;max-width:100%;max-height:66dvh;object-fit:contain;margin:12px auto}
.inn-festive .fest-lightbox h2{font-size:1.4rem;clear:both;padding-top:10px}
.inn-festive .fest-lightbox-close{float:right}
.inn-festive .fest-manage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:24px}
.inn-festive .fest-style-toggle{margin:0;padding:10px;background:#241209;border:1px solid #876137;border-radius:7px;cursor:pointer;justify-content:initial}
.inn-festive .fest-style-toggle img{width:72px;height:72px;flex-shrink:0;border-radius:5px}
.inn-festive .fest-style-toggle span{flex:1;font-size:.9rem}
.inn-festive .fest-style-toggle input{width:22px;height:22px;flex-shrink:0;accent-color:#cfaa69}
.inn-festive .fest-style-toggle.is-off{opacity:.55}
.inn-festive .fest-gallery-photo{margin:0}
.inn-festive button.fest-gallery-open{padding:0;border:2px solid #ab854e;background:none;width:100%;overflow:hidden}
.inn-festive .fest-gallery-open img{display:block;width:100%;height:auto}
.inn-festive .fest-gallery-photo figcaption{padding:8px;font-size:.85rem}
@media(max-width:700px){.inn-festive #fest-styles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.inn-festive .fest-manage-grid{grid-template-columns:1fr}.inn-festive .fest-card-copy{padding:10px;min-height:100px}.inn-festive .fest-card-copy strong{font-size:.9rem}}
@media(max-width:360px){.inn-festive #fest-styles{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.inn-festive .fest-style-card{transition:none}.inn-festive .fest-style-card:hover{transform:none}}
