:root{--bg:#f4efe6;--bg2:#ebe3d4;--fg:#1c1b19;--muted:#5d574e;--accent:#c0392b;--accent2:#2b6f6b;--on-accent:#fff;--on-accent2:#fff;--card:#fffaf2;--line:rgba(28,27,25,.18);--fh:"Playfair Display",Georgia,serif;--fb:"Libre Franklin",system-ui,sans-serif;--r:6px;--btnr:4px;--hh:0px}
h1,h2{font-weight:700}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.mast{padding:18px 0 0}
.mtop{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font:600 12.5px/1 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--fg);padding-bottom:12px}
.mtop .open{letter-spacing:0;text-transform:none;font-size:13px;padding:6px 12px}
.name{display:flex;align-items:center;justify-content:center;gap:16px;text-decoration:none;color:var(--fg);font:900 clamp(2.6rem,8.5vw,7.2rem)/1 var(--fh);letter-spacing:-.03em;padding:18px 0 14px}
.name em{font-style:italic;font-weight:500;color:var(--accent)}
.lantern{width:clamp(40px,6vw,74px);height:auto;animation:swing 5s ease-in-out infinite;transform-origin:30px 2px}
@keyframes swing{50%{transform:rotate(5deg)}}
.lg{animation:glow 2.4s ease-in-out infinite;transform-origin:30px 48px}@keyframes glow{50%{transform:scale(1.25);opacity:.6}}
.flame{animation:fl .4s ease-in-out infinite alternate;transform-origin:30px 54px}@keyframes fl{to{transform:scaleY(1.12) skewX(4deg)}}
.mnav{list-style:none;margin:0;padding:12px 0;display:flex;justify-content:center;gap:4px 34px;flex-wrap:wrap;border-top:3px double var(--fg);border-bottom:1px solid var(--fg)}
.mnav a{color:var(--fg);text-decoration:none;font:700 13px/1 var(--fb);letter-spacing:.16em;text-transform:uppercase;padding:6px 0;background:linear-gradient(var(--accent),var(--accent)) 0 100%/0 2px no-repeat;transition:background-size .35s}
.mnav a:hover{background-size:100% 2px}
.bento{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(190px,auto);gap:14px;padding-top:26px;padding-bottom:30px;grid-template-areas:"a a a b b c" "a a a e e d" "f f g h i i"}
.tile{position:relative;display:flex;flex-direction:column;gap:10px;padding:22px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);color:var(--fg);text-decoration:none;overflow:hidden;transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s;animation:tin .8s cubic-bezier(.2,.7,.2,1) both}
a.tile:hover{transform:translateY(-4px);box-shadow:0 18px 34px -22px rgba(28,27,25,.55)}
.a{grid-area:a;animation-delay:.05s}.b{grid-area:b;animation-delay:.12s}.c{grid-area:c;animation-delay:.18s}.d{grid-area:d;animation-delay:.24s}.e{grid-area:e;animation-delay:.3s}.f{grid-area:f;animation-delay:.36s}.g{grid-area:g;animation-delay:.42s}.h{grid-area:h;animation-delay:.48s}.i{grid-area:i;animation-delay:.54s}
@keyframes tin{from{opacity:0;transform:translateY(18px)}}
.lbl{font:700 11.5px/1 var(--fb);letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.more{margin-top:auto;font-weight:700;font-size:14.5px}
.tile h2{font-size:1.6rem;margin:0}.tile p{margin:0;color:var(--muted);font-size:15px}
.dark{background:var(--fg);color:#f4efe6}.c .open{border-radius:10px;align-items:baseline;line-height:1.3;background:rgba(143,206,150,.14);color:#bfe8c4}.c .open.closed{background:rgba(232,140,110,.14);color:#f3c2b0}.c .open::before{flex:none}.dark .lbl{color:#f0d38a}.dark .small{color:#cfc7b8;font-size:14px}
.gold{background:#f0d38a}.gold .lbl{color:var(--fg)}
.teal{background:var(--accent2);color:#fff}.teal .lbl{color:#f0d38a}.teal h2{color:#fff}
.red{background:var(--accent);color:#fff}.red .lbl{color:#ffd7a1}.red h2{color:#fff}
.feat{display:grid;grid-template-columns:200px 1fr;gap:26px;align-items:center;flex:1}
.feat .cov{width:100%;box-shadow:14px 18px 0 -4px rgba(28,27,25,.15);transform:rotate(-3deg);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.a:hover .feat .cov{transform:rotate(0) scale(1.03)}
.feat h1{font-size:clamp(2rem,3.4vw,3.2rem);line-height:1;margin:0 0 6px}.by{font-style:italic;margin-bottom:14px!important}
.q{font:italic 500 1.2rem/1.45 var(--fh);color:var(--fg)!important;margin-bottom:16px!important}
.ev{list-style:none;padding:0;margin:0;display:grid;gap:8px}.ev li{display:grid;grid-template-columns:64px 1fr;gap:8px;font-size:15px;border-bottom:1px dotted var(--line);padding-bottom:7px}.ev b{font-family:var(--fh)}
.gc{align-self:flex-start;width:150px;aspect-ratio:1.6;border-radius:10px;background:linear-gradient(135deg,#1c1b19,#3a352d);color:#f0d38a;padding:12px;display:flex;flex-direction:column;justify-content:space-between;font:600 12px var(--fb);letter-spacing:.1em;text-transform:uppercase;box-shadow:0 10px 20px -10px rgba(0,0,0,.6);animation:float 4s ease-in-out infinite}
.gc b{font:700 1.6rem var(--fh);letter-spacing:0;text-align:right}
@keyframes float{50%{transform:translateY(-6px) rotate(-2deg)}}
.oform,.nform{grid-template-columns:1fr auto;display:grid;gap:8px;margin-top:auto}
.oform input,.nform input{border-color:transparent;border-radius:var(--btnr)}
.f .dcta{background:#f0d38a;color:var(--fg)}
.tile .ok{margin-top:8px;font-size:14px;padding:10px 12px}
.kid{width:90px}.spark{animation:sp 1.6s ease-in-out infinite;transform-origin:64px 12px}@keyframes sp{50%{transform:scale(1.4) rotate(45deg)}}
.minimap{width:100%;height:auto;border-radius:4px;flex:1;object-fit:cover}
.pin{animation:pin 2s ease-in-out infinite}@keyframes pin{50%{transform:translateY(-5px)}}
.sec{padding:84px 0;border-top:3px double var(--fg)}.sec.alt{background:var(--bg2)}
.shead{margin-bottom:36px;max-width:700px}
.shelf{display:grid;grid-template-columns:repeat(6,1fr);gap:22px}
.bk{margin:0}.bk .cov{width:100%;height:auto;box-shadow:0 18px 30px -18px rgba(0,0,0,.6);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.bk:hover .cov{transform:translateY(-8px) rotate(-2deg)}
.bk figcaption{margin-top:14px}.bk b{display:block;font-family:var(--fh);font-size:1.05rem;line-height:1.2}.bk span{font-size:13.5px;color:var(--muted)}.bk p{font-size:14px;margin:8px 0 0;color:var(--muted)}
.evlist{list-style:none;margin:0;padding:0}
.evlist li{display:grid;grid-template-columns:110px 1fr auto;gap:22px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}
.date{font:700 1.5rem/1 var(--fh)}.date small{display:block;font:700 11.5px var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}
.evlist b{display:block;font-size:1.1rem}.evlist small{color:var(--muted)}
.dcta.small{padding:9px 14px;font-size:14px}
.vis{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}.vis .minimap{max-width:440px;margin-top:20px;border:1px solid var(--line)}
.foot{background:var(--fg);color:#cfc7b8;padding:36px 0;font-size:13.5px}.foot .w{display:flex;flex-wrap:wrap;gap:12px 30px;justify-content:space-between;align-items:center}.foot a{color:inherit}.fname{font:900 1.5rem var(--fh);color:#f4efe6;width:100%}
@media(max-width:1000px){
 .bento{grid-template-columns:repeat(4,1fr);grid-template-areas:"a a b b" "a a c d" "e e f f" "g h i i"}
 .shelf{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:640px){
 .mtop span:nth-child(2){display:none}
 .bento{grid-template-columns:1fr 1fr;grid-auto-rows:auto;gap:10px;grid-template-areas:"a a" "b b" "c d" "e e" "f f" "g h" "i i"}
 .feat{grid-template-columns:110px 1fr;gap:16px}
 .tile{padding:18px}
 .mnav{gap:4px 18px}.mnav a{font-size:11.5px}
 .shelf{grid-template-columns:1fr 1fr}
 .evlist li{grid-template-columns:80px 1fr}.evlist .dcta{display:none}
 .vis{grid-template-columns:1fr;gap:30px}
 .sec{padding:64px 0}
}
@media (prefers-reduced-motion:reduce){.tile{animation:none}}
[tabindex="-1"]:focus{outline:none}
