:root{--ground:#FFFFFF;--panel:#FFFFFF;--panel-2:#F4EEFF;--ink:#1C1035;--ink-2:#4A3D63;--line:#E6DDF7;--violet:#7B2FF7;--violet-ink:#6A1FD8;--violet-rgb:123,47,247;--gold:#FFB400;--gold-rgb:255,180,0;--pink:#FF2E88;--hot:#C8105E;--teal:#00B4CC;--orange:#FF6A1A;--green:#1DB954;--radius:16px;color-scheme:light}
@view-transition{navigation:auto}
*,*::before,*::after{box-sizing:border-box}
figure,blockquote,dl,dd{margin:0}
[hidden]{display:none!important}
img{max-width:100%;height:auto;display:block}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font:17px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-variant-numeric:tabular-nums}
a{color:var(--violet-ink);text-underline-offset:3px}
a:hover{color:var(--hot)}
:focus-visible{outline:3px solid var(--pink);outline-offset:2px;border-radius:4px}
h1,h2,h3{line-height:1.2;text-wrap:balance}
h1{font-size:clamp(1.7rem,4vw,2.5rem);margin:.2em 0}
h2{font-size:1.3rem;margin:2rem 0 .6rem}
p{max-width:68ch}
.fst-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.fst-skip{position:absolute;left:-9999px;top:0;background:var(--gold);color:#1C1035;padding:.5rem 1rem;z-index:9}
.fst-skip:focus{left:1rem}
.fst-top{background:var(--panel);border-bottom:1px solid var(--line)}
.fst-top-in{max-width:1120px;margin:0 auto;padding:.7rem 16px;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.fst-brand{display:flex;gap:.5rem;align-items:center;color:var(--ink);text-decoration:none;font-weight:800;font-size:1.15rem;flex-shrink:0}
.fst-q{display:flex;flex:1 1 260px;max-width:440px;margin-left:auto}
.fst-q input{flex:1;min-width:0;background:var(--ground);color:var(--ink);border:1px solid var(--line);border-right:0;border-radius:10px 0 0 10px;padding:.55rem .8rem;font:inherit}
.fst-q button,.fst-btn--main{background:var(--violet-ink);color:#fff;border:0;border-radius:0 10px 10px 0;padding:.55rem 1rem;font:inherit;font-weight:700;cursor:pointer}
.fst-tier{max-width:1120px;margin:0 auto;padding:0 16px .6rem;display:flex;gap:1.2rem;flex-wrap:wrap;flex-shrink:0}
.fst-tier a{color:var(--ink-2);text-decoration:none;font-size:.95rem}
.fst-tier a:hover{color:var(--hot)}
main{max-width:1120px;margin:0 auto;padding:1rem 16px 3rem}
.fst-crumbs{font-size:.9rem;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 1rem}
.fst-crumbs a{color:var(--ink-2)}
.fst-bite{font-size:1.12rem;max-width:70ch}
.fst-glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.6rem;margin:1rem 0 1.4rem}
.fst-glance div{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.7rem .9rem}
.fst-glance dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--hot)}
.fst-glance dd{margin-top:.2rem;overflow-wrap:anywhere}
.fst-btn{display:inline-block;background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:.55rem 1rem;text-decoration:none;font-weight:700}
.fst-btn:hover{border-color:var(--gold);color:var(--ink)}
.fst-acts .fst-btn--main,.fst-btn.fst-btn--main{background:var(--violet-ink);color:#fff;border-color:var(--violet-ink);border-radius:10px}
.fst-store-head{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center}
.fst-store-head h1{margin:0}
.fst-acts{grid-column:1/-1;display:flex;gap:.6rem;flex-wrap:wrap}
.fst-sub{margin:.1rem 0 0;color:var(--ink-2)}
.fst-mono{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;font-size:1.9rem;font-weight:800;color:#1C1035;background:linear-gradient(135deg,var(--gold),rgba(var(--violet-rgb),.9))}
.fst-faq details,.fst-map{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem .9rem;margin:.5rem 0}
.fst-faq summary,.fst-map summary{cursor:pointer;font-weight:700}
.fst-map iframe{width:100%;height:320px;border:0;border-radius:10px;margin-top:.6rem}
.fst-hours{border-collapse:collapse;min-width:min(420px,100%)}
.fst-hours th,.fst-hours td{text-align:left;padding:.35rem .8rem .35rem 0;border-bottom:1px solid var(--line)}
.fst-hours th{text-transform:capitalize;font-weight:600;color:var(--ink-2)}
.fst-chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.fst-chips li{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:.25rem .8rem;font-size:.95rem}
.fst-n{color:var(--hot);font-weight:700}
.fst-also,.fst-near{padding-left:1.1rem}
.fst-also li,.fst-near li{margin:.3rem 0}
.fst-small{font-size:.88rem;color:var(--ink-2)}
.fst-tip,.fst-claim{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--radius);padding:.9rem 1.1rem;margin:1.6rem 0}
.fst-claim{border-left-color:var(--violet);display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.fst-claim p,.fst-tip p{margin:0}
.fst-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8rem;content-visibility:auto;contain-intrinsic-size:auto 900px}
.fst-tile{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem;text-decoration:none;color:var(--ink)}
.fst-tile:hover{border-color:var(--gold)}
.fst-tile .fst-mono{width:46px;height:46px;font-size:1.3rem;border-radius:13px}
.fst-tile b{display:block;line-height:1.25}
.fst-tile span{display:block;font-size:.88rem;color:var(--ink-2)}
.fst-more{margin-top:.8rem}
.fst-more>summary{cursor:pointer;color:var(--hot);font-weight:700;margin:.6rem 0}
.fst-places{columns:3 220px;padding-left:1.1rem}
.fst-places li{margin:.2rem 0;break-inside:avoid}
.fst-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.5rem;align-items:center;margin:.5rem 0 1.5rem}
.fst-hero p{font-size:1.12rem}
.fst-world{background:#F4EEFF;border:1px solid var(--line);border-radius:var(--radius);aspect-ratio:4/3;width:100%;height:auto}
.fst-world circle{fill:var(--pink);stroke:#fff;stroke-width:1.5}
.fst-world a:hover circle{fill:var(--violet)}
.fst-world text{fill:var(--ink);font-size:11px;font-weight:700}
.fst-cc{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.6rem;padding:0;list-style:none}
.fst-cc a{display:flex;justify-content:space-between;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.6rem .9rem;color:var(--ink);text-decoration:none}
.fst-cc a:hover{border-color:var(--gold)}
.fst-cc span{color:var(--hot);font-weight:700}
.fst-guide h2{margin-top:2.2rem}
.fst-guide table{border-collapse:collapse;margin:.6rem 0}
.fst-guide th,.fst-guide td{border-bottom:1px solid var(--line);padding:.4rem .9rem .4rem 0;text-align:left}
.fst-calc{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin:1rem 0;display:grid;gap:.7rem;max-width:560px}
.fst-calc label{display:grid;gap:.25rem;font-weight:600}
.fst-calc input{background:var(--ground);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem;font:inherit;max-width:12rem}
.fst-calc output{display:block;font-size:1.05rem;color:var(--hot);font-weight:700}
.fst-form{display:grid;gap:.8rem;max-width:560px}
.fst-form label{display:grid;gap:.25rem;font-weight:600}
.fst-form input,.fst-form textarea,.fst-form select{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;font:inherit}
.fst-form textarea{field-sizing:content;min-height:5rem}
.fst-form button{justify-self:start;background:var(--violet-ink);color:#fff;border:0;border-radius:10px;padding:.65rem 1.3rem;font:inherit;font-weight:700;cursor:pointer}
.fst-foot{border-top:1px solid var(--line);background:var(--panel)}
.fst-foot-in{max-width:1120px;margin:0 auto;padding:1.5rem 16px}
.fst-foot nav{display:flex;flex-wrap:wrap;gap:1rem;margin:.8rem 0}
.fst-foot nav a{color:var(--ink-2)}
@media (max-width:760px){.fst-hero{grid-template-columns:1fr}.fst-q{max-width:none;margin-left:0}body{font-size:16px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}@view-transition{navigation:none}}
.fst-tr-btn{display:inline-flex;gap:.35rem;align-items:center;margin-left:auto;background:none;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);padding:.15rem .7rem;font:inherit;font-size:.95rem;cursor:pointer}
.fst-tr-btn:hover{color:var(--hot);border-color:var(--gold)}
.fst-tr{margin:0;inset:auto 16px auto auto;top:6.5rem;position:fixed;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem 1rem;max-width:min(320px,calc(100vw - 32px))}
.fst-tr::backdrop{background:rgba(28,16,53,.35)}
.fst-tr p{margin:0 0 .4rem}
.fst-tr ul{list-style:none;margin:0;padding:0;columns:2;gap:1rem}
.fst-tr li{margin:.25rem 0}
.fst-tr a{color:var(--ink)}
.fst-tr a:hover{color:var(--hot)}
.fst-photo{width:150px;height:112px;object-fit:cover;border-radius:18px;border:1px solid var(--line)}
.fst-thumb{width:46px;height:46px;object-fit:cover;border-radius:13px}
@media (max-width:520px){.fst-photo{width:96px;height:72px}}
.fst-hero--ph{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.fst-hero--ph .fst-chips a{color:var(--ink);text-decoration:none}
.fst-hero--ph .fst-chips li:hover{border-color:var(--gold)}
.fst-mosaic{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:120px;gap:.5rem}
.fst-mosaic a{position:relative;border-radius:var(--radius);overflow:hidden;grid-column:span 2;color:#fff;text-decoration:none}
.fst-mosaic a:first-child{grid-column:span 4;grid-row:span 2}
.fst-mosaic a:nth-child(2){grid-row:span 2}
.fst-mosaic a:nth-child(n+3){grid-column:span 2}
.fst-mosaic img,.fst-wall img,.fst-card img,.fst-shop img{width:100%;height:100%;object-fit:cover}
.fst-mosaic span,.fst-wall a>span{position:absolute;inset:auto 0 0 0;padding:1.6rem .7rem .5rem;background:linear-gradient(transparent,rgba(28,16,53,.88));font-weight:700;font-size:.95rem;line-height:1.25}
.fst-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-auto-rows:200px;gap:.6rem}
.fst-wall a{position:relative;border-radius:var(--radius);overflow:hidden;color:#fff;text-decoration:none}
.fst-wall a:nth-child(5n+1){grid-row:span 2}
.fst-wall small{display:block;font-weight:400;font-size:.85rem;color:#E4DCF2}
.fst-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.fst-card{display:grid;grid-template-rows:180px auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:var(--ink);text-decoration:none}
.fst-card:hover,.fst-shop:hover{border-color:var(--gold)}
.fst-card>span{padding:.8rem .9rem 1rem}
.fst-card b{display:block;font-size:1.08rem;line-height:1.25;margin-bottom:.3rem}
.fst-card>span>span{display:block;font-size:.92rem;color:var(--ink-2);line-height:1.45}
.fst-card-ph{background:linear-gradient(135deg,rgba(var(--violet-rgb),.6),rgba(var(--gold-rgb),.5))}
.fst-ghead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.4rem;align-items:center;margin-bottom:1rem}
.fst-ghero{border-radius:var(--radius);overflow:hidden;background:var(--panel)}
.fst-ghero img{width:100%;aspect-ratio:4/3;object-fit:cover}
.fst-fig{margin:1.2rem 0;max-width:760px}
.fst-fig img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line)}
figcaption{font-size:.88rem;color:var(--ink-2);padding:.4rem .2rem 0}
figcaption a{color:var(--ink-2)}
.fst-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.7rem;margin:1.2rem 0}
.fst-gal .fst-fig{margin:0}
.fst-gal .fst-fig img{aspect-ratio:1}
.fst-ruta{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1.1rem;margin:1rem 0 1.4rem}
.fst-ruta p{margin:0 0 .5rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--hot);font-weight:700}
.fst-ruta ol{margin:0;padding:0;list-style:none;counter-reset:r;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.35rem 1rem}
.fst-ruta li{counter-increment:r;display:flex;gap:.55rem;align-items:baseline}
.fst-ruta li::before{content:counter(r);flex:0 0 1.6rem;height:1.6rem;display:grid;place-items:center;border-radius:50%;background:var(--violet-ink);color:#fff;font-size:.8rem;font-weight:700}
.fst-ruta a{color:var(--ink);text-decoration:none}
.fst-ruta a:hover{color:var(--hot)}
.fst-guide h2[id]{scroll-margin-top:1rem}
.fst-info{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin:1.4rem 0;max-width:760px}
.fst-info svg{width:100%;height:auto}
.fst-shops{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.8rem}
.fst-shop{display:grid;grid-template-rows:150px auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:var(--ink);text-decoration:none}
.fst-shop>span{padding:.6rem .8rem .8rem}
.fst-shop b{display:block;line-height:1.25}
.fst-shop>span>span{display:block;font-size:.88rem;color:var(--ink-2)}
.fst-guide .fst-faq details,.fst-guide details[name]{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem .9rem;margin:.5rem 0}
.fst-guide details[name] summary{cursor:pointer;font-weight:700}
.fst-guide table{width:100%;font-size:.95rem}
@media (max-width:760px){.fst-hero--ph,.fst-ghead{grid-template-columns:1fr}.fst-mosaic{grid-auto-rows:90px}.fst-wall{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.fst-wall a:nth-child(5n+1){grid-row:span 1}.fst-card{grid-template-rows:160px auto}}

/* party palette 2026-10-24: white ground, a confetti strip, every card and chip in its own color */
.fst-top{background:#fff;border-bottom:0;box-shadow:0 2px 0 var(--line)}
.fst-top::after{content:"";display:block;height:6px;background:linear-gradient(90deg,var(--pink) 0 20%,var(--gold) 20% 40%,var(--teal) 40% 60%,var(--orange) 60% 80%,var(--violet) 80%)}
.fst-brand{color:var(--ink)}
.fst-q input{background:#fff;border:2px solid var(--violet);border-right:0}
.fst-q button{background:#E0107A;border-radius:0 10px 10px 0}
.fst-q button:hover{background:var(--hot)}
.fst-tier a{color:var(--ink-2);font-weight:600}
h1{color:var(--ink);letter-spacing:-.01em}
main h2{position:relative;padding-bottom:.35rem}
main h2::after{content:"";position:absolute;left:0;bottom:0;width:64px;height:5px;border-radius:5px;background:linear-gradient(90deg,var(--pink),var(--gold),var(--teal))}
.fst-chips li{border:0;font-weight:600;color:#fff;background:var(--violet)}
.fst-chips li a{color:#fff!important;text-decoration:none}
.fst-chips li:nth-child(5n+1){background:var(--pink);color:var(--ink)}
.fst-chips li:nth-child(5n+1) a{color:var(--ink)!important}
.fst-chips li:nth-child(5n+2){background:var(--teal);color:#0B2A33}
.fst-chips li:nth-child(5n+2) a{color:#0B2A33!important}
.fst-chips li:nth-child(5n+3){background:var(--gold);color:#3A2600}
.fst-chips li:nth-child(5n+3) a{color:#3A2600!important}
.fst-chips li:nth-child(5n+4){background:var(--orange);color:var(--ink)}
.fst-chips li:nth-child(5n+4) a{color:var(--ink)!important}
.fst-chips li:nth-child(5n+5){background:var(--violet)}
.fst-card,.fst-shop,.fst-tile,.fst-cc a,.fst-ruta,.fst-info,.fst-calc,.fst-faq details,.fst-guide details[name],.fst-map,.fst-glance div{background:#fff;border:2px solid var(--line);box-shadow:0 6px 18px rgba(28,16,53,.06)}
.fst-card{border-top:6px solid var(--pink);transition:transform .15s ease,box-shadow .15s ease}
.fst-cards>.fst-card:nth-child(5n+2){border-top-color:var(--gold)}
.fst-cards>.fst-card:nth-child(5n+3){border-top-color:var(--teal)}
.fst-cards>.fst-card:nth-child(5n+4){border-top-color:var(--orange)}
.fst-cards>.fst-card:nth-child(5n+5){border-top-color:var(--violet)}
.fst-card:hover,.fst-shop:hover,.fst-tile:hover,.fst-cc a:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(28,16,53,.12);border-color:var(--pink)}
.fst-card b,.fst-shop b{color:var(--ink)}
.fst-cc a{border-left:6px solid var(--teal)}
.fst-cc li:nth-child(4n+2) a{border-left-color:var(--pink)}
.fst-cc li:nth-child(4n+3) a{border-left-color:var(--gold)}
.fst-cc li:nth-child(4n+4) a{border-left-color:var(--violet)}
.fst-ruta li::before{background:var(--pink)}
.fst-ruta li:nth-child(5n+2)::before{background:var(--teal)}
.fst-ruta li:nth-child(5n+3)::before{background:var(--orange)}
.fst-ruta li:nth-child(5n+4)::before{background:var(--violet)}
.fst-ruta li:nth-child(5n+5)::before{background:var(--green)}
.fst-ruta{border-color:var(--gold);background:#FFF9E6}
.fst-tip{background:#E8FBFE;border-color:#BDEFF6;border-left:6px solid var(--teal)}
.fst-claim{background:linear-gradient(120deg,#FFE3F0,#FFF4D6 55%,#E2FAFD);border:0;border-left:6px solid var(--pink)}
.fst-btn{background:var(--violet);color:#fff;border:0}
.fst-btn:hover{background:#E0107A;color:#fff}
.fst-fig img,.fst-ghero{border:0;box-shadow:0 8px 24px rgba(28,16,53,.12)}
.fst-ghero{background:#fff}
figcaption{color:var(--ink-2)}
.fst-guide th{color:var(--hot)}
.fst-guide tbody tr:nth-child(odd){background:#FAF7FF}
.fst-guide details[name] summary,.fst-faq summary{color:var(--ink)}
.fst-guide details[open]{border-color:var(--teal)}
.fst-foot{background:var(--violet-ink);border-top:0;color:#fff}
.fst-foot::before{content:"";display:block;height:6px;background:linear-gradient(90deg,var(--gold) 0 25%,var(--pink) 25% 50%,var(--teal) 50% 75%,var(--orange) 75%)}
.fst-foot a,.fst-foot nav a{color:#fff}
.fst-foot .fst-small{color:#E9DDFF}
.fst-hero--ph{background:radial-gradient(circle at 8% 20%,#FFE3F0 0,transparent 40%),radial-gradient(circle at 90% 10%,#E2FAFD 0,transparent 40%),radial-gradient(circle at 70% 90%,#FFF4D6 0,transparent 45%);border-radius:24px;padding:1.2rem}
.fst-mono{color:#fff;background:linear-gradient(135deg,var(--pink),var(--orange))}
.fst-tr{background:#fff;color:var(--ink);border:2px solid var(--line)}
.fst-tr a{color:var(--ink)}
.fst-tr-btn{border:2px solid var(--line);color:var(--ink-2)}
.fst-form input,.fst-form textarea,.fst-form select,.fst-calc input{background:#fff;color:var(--ink);border:2px solid var(--line)}
.fst-form button{background:#E0107A}
.fst-hours th,.fst-hours td{border-bottom-color:var(--line)}
@media (prefers-reduced-motion:reduce){.fst-card,.fst-shop{transition:none}}
