@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--paper:#f7f5ef;--ink:#253d34;--muted:#71766e;--line:#dddfd5;--white:#fffefa;--sage:#e6ebdf;--accent:#9fa981;--orange:#ab5a34;--radius:12px;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}button{border:0;background:none}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}button svg{pointer-events:none}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--orange);outline-offset:4px}.skip{position:fixed;top:-80px;left:20px;z-index:100;background:var(--ink);color:white;padding:14px}.skip:focus{top:10px}.topbar{height:94px;max-width:1440px;margin:auto;padding:0 5%;display:flex;align-items:center;gap:44px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-family:Manrope,sans-serif;font-size:25px;font-weight:800;letter-spacing:-1.3px}.brand-mark{width:34px;height:36px;border:1px solid #8f9c87;display:grid;place-items:center;border-radius:11px 11px 2px 2px;font-family:Georgia,serif;font-weight:400;font-size:28px;letter-spacing:-3px;padding-right:3px}.brand-dot{color:#8a9977}.desktop-nav{display:flex;align-items:stretch;height:100%;gap:27px;margin-left:48px}.nav-btn{font-size:13px;position:relative;color:var(--muted);padding:0 0;font-weight:500}.nav-btn.active{color:var(--ink)}.nav-btn.active:after{content:'';height:2px;background:var(--ink);position:absolute;bottom:24px;left:0;right:0}.saved-count{font-size:10px;padding:2px 5px;background:#e7e9df;border-radius:4px;margin-left:3px}.header-actions{margin-left:auto;display:flex;align-items:center;gap:16px}.location-button{display:flex;align-items:center;gap:8px;font-size:12px;max-width:240px}.location-button span:nth-child(2){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-button svg{width:16px;height:16px}.location-button span:last-child svg{width:12px}.icon-button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;flex-shrink:0;background:var(--paper)}.icon-button:hover{background:var(--sage)}main{max-width:1440px;margin:auto;padding:0 5%}.intro{padding:57px 0 40px;display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.7px;margin:0 0 15px}.intro .eyebrow{display:flex;align-items:center;gap:10px;color:#6a7767}.small-line{width:24px;height:1px;background:#849278}h1{font-family:Manrope,sans-serif;font-size:clamp(38px,4.5vw,62px);font-weight:500;letter-spacing:-2.8px;line-height:1.13;margin:0 0 16px}h1 em{font-family:Georgia,serif;font-weight:400;color:#687856;letter-spacing:-2px}h2,h3,p{overflow-wrap:break-word}.intro-text{font-size:14px;line-height:1.75;color:var(--muted);margin:0}.intro-note{padding:5px 32px 0 20px;display:flex;gap:16px;align-items:flex-start;transform:rotate(-4deg)}.intro-note svg{width:32px;height:32px;color:#829470}.intro-note p{font-family:Georgia,serif;font-style:italic;font-size:19px;line-height:1.45;color:#78816e;margin:8px 0 0}.filter-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 20px #273b2503}.search-row{display:flex;padding:16px 20px;gap:16px;border-bottom:1px solid var(--line)}.search-box{display:flex;align-items:center;gap:13px;flex:1}.search-box svg{color:#7c8679}.search-box input{font-size:13px;width:100%;border:none;outline:none;background:none;height:29px}.search-box input::placeholder{color:#90948a}.filter-toggle{font-size:12px;display:flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--line);border-radius:6px;white-space:nowrap}.filter-toggle svg{width:16px;height:16px}.filter-count{font-size:10px;background:var(--ink);color:white;border-radius:20px;padding:2px 5px}.primary-filters{display:grid;grid-template-columns:1fr 1.25fr 1.15fr 1fr;padding:17px 8px}.primary-filters>label{min-width:0;display:flex;flex-direction:column;padding:0 20px;border-right:1px solid var(--line)}.primary-filters>label:last-child{border:none}.field-label{font-size:9px;color:#898e80;letter-spacing:1.2px;font-weight:600;margin:0 0 8px}.primary-filters select{font-size:12px;max-width:100%;border:none;background-color:transparent;outline:none;padding:0 14px 0 0;cursor:pointer;height:22px}.extra-filters{display:flex;align-items:flex-end;gap:20px;padding:20px 27px;border-top:1px solid var(--line);flex-wrap:wrap}.extra-filters>label:not(.checkbox-label){flex:1;min-width:150px;font-size:11px;display:flex;flex-direction:column;gap:8px;color:var(--muted)}.extra-filters select{border:1px solid var(--line);border-radius:6px;padding:8px;background:white;max-width:100%;font-size:12px}.checkbox-label{display:flex;gap:7px;align-items:center;font-size:12px;min-height:37px}.checkbox-label input{accent-color:var(--ink);width:16px;height:16px}.text-button{font-size:11px;border-bottom:1px solid #b4bdab;padding:4px 0;display:inline-flex;align-items:center;gap:5px}.text-button svg{width:14px;height:14px}.quick-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 0 32px}.quick-filters{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.chip{border:1px solid var(--line);border-radius:24px;font-size:11px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 13px;background:#fbfaf6}.chip svg{width:13px;height:13px}.chip.active{background:var(--ink);color:white;border-color:var(--ink)}.chip:hover{border-color:#8d9b80}.green-dot{width:5px;height:5px;border-radius:50%;background:#90a474}.refresh-button{font-size:10px;display:flex;align-items:center;gap:6px;white-space:nowrap;color:#878c80}.refresh-button svg{width:12px;height:12px}.results-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 23px;gap:20px}.results-heading .eyebrow{font-size:9px;letter-spacing:1.4px;color:#86907b;margin:0 0 9px}.results-heading h2{margin:0;font-family:Manrope,sans-serif;font-size:25px;letter-spacing:-1px;font-weight:500;line-height:1.2}.results-heading h2>span{font-family:'DM Sans',sans-serif;font-size:11px;color:#8c917f;letter-spacing:0;font-weight:400;vertical-align:middle;margin-left:6px}.sort-label{display:flex;align-items:center;font-size:10px;color:#929689;gap:9px}.sort-label select{font-size:11px;border:0;background:none;padding:8px 2px;color:var(--ink);max-width:110px}.exhibition-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}.exhibition-card{background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:transform .2s,box-shadow .2s;min-width:0;position:relative}.exhibition-card:hover{transform:translateY(-3px);box-shadow:0 10px 22px #263e3410}.photo-wrap{position:relative;height:240px;background:#e2e4d8}.photo-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;height:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.photo-strip::-webkit-scrollbar{display:none}.photo-slide{width:100%;height:100%;flex:0 0 100%;scroll-snap-align:start;position:relative;overflow:hidden}.photo-slide img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}.photo-wrap:hover .photo-slide img{transform:scale(1.035)}.photo-fallback{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--fallback,#e6e9de);color:#5f705b;padding:24px;text-align:center;gap:14px}.photo-fallback:before{content:'';position:absolute;border:1px solid #65795222;width:110px;height:150px;border-radius:65px 65px 0 0}.fallback-mark{font-family:Georgia,serif;font-size:60px;font-weight:400;letter-spacing:-8px;opacity:.65;line-height:1}.fallback-name{font-size:10px;letter-spacing:.4px;max-width:210px;opacity:.7}.card-badges{display:flex;flex-wrap:wrap;gap:5px;position:absolute;top:13px;left:13px;right:60px;pointer-events:none}.badge{display:inline-flex;gap:5px;align-items:center;border-radius:4px;padding:5px 8px;font-size:9px;font-weight:500;line-height:1.3;background:#fffcf2ee;color:var(--ink);backdrop-filter:blur(4px)}.badge.new{background:#e8eeddeF}.badge.closing{background:#f8eee3;color:#935334}.badge svg{width:11px;height:11px}.save-button{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#fffcf2eF;color:#35493d;box-shadow:0 2px 5px #00000008}.save-button svg{width:16px;height:16px}.save-button.saved svg{fill:#344d3b}.photo-nav{position:absolute;bottom:12px;right:12px;display:flex;gap:3px;align-items:center;background:#fffcf2e8;border-radius:20px;padding:3px}.photo-nav button{padding:3px;display:grid;place-items:center}.photo-nav svg{width:14px;height:14px}.photo-counter{font-size:9px;padding:0 3px;font-variant-numeric:tabular-nums}.card-body{padding:20px 20px 16px}.museum-line{color:#7c8974;font-size:9px;font-weight:500;letter-spacing:.65px;text-transform:uppercase;display:flex;align-items:center;gap:5px;line-height:1.6;margin:0 0 9px}.museum-line span{color:#a6ac9e}.card-title{font-family:Manrope,sans-serif;font-size:19px;letter-spacing:-.55px;font-weight:600;line-height:1.32;margin:0 0 8px}.card-title :is(button,a){text-align:left;padding:0;font:inherit;line-height:inherit}.card-title :is(button,a):after{content:'';position:absolute;inset:240px 0 0}.save-button,.photo-nav,.card-tags{z-index:1}.date-line{font-size:10px;color:#8a8d80;display:flex;align-items:center;gap:6px;margin:0 0 13px}.date-line svg{width:12px;height:12px}.card-description{font-size:11px;line-height:1.75;color:#818577;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:57px}.card-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:14px;position:relative;pointer-events:none}.tag{font-size:8px;line-height:1.4;color:#838976;border:1px solid #e8e9df;border-radius:3px;padding:3px 6px}.card-practical{border-top:1px solid #e8e9df;margin-top:16px;padding-top:13px;display:flex;align-items:center;gap:10px;font-size:9px;color:#7b8473;flex-wrap:wrap}.card-practical span{display:inline-flex;align-items:center;gap:5px}.card-practical svg{width:13px;height:13px}.card-practical .card-arrow{margin-left:auto;width:14px}.card-stars{color:#9b783a}.visited-score{background:#edf0e4;border-radius:3px;padding:3px 5px}.load-more-wrap{text-align:center;padding:34px 0 10px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:7px;padding:13px 20px;color:var(--white);background:var(--ink);font-size:12px;border:1px solid var(--ink);min-height:43px}.button:hover{background:#3a5345}.button.outline{background:transparent;color:var(--ink);border-color:#c6cdbc}.button.outline:hover{background:var(--sage)}.button svg{width:16px;height:16px}.button.small{padding:8px 13px;font-size:11px;min-height:36px}.notice{padding:13px 16px;background:#f3eade;border:1px solid #e2d0b7;border-radius:7px;font-size:12px;line-height:1.6;margin-bottom:20px}.route-status{font-size:11px;line-height:1.7;color:#878d7e;margin-bottom:15px}.route-status:empty{display:none}.route-status button{text-decoration:underline}.empty-state{grid-column:1/-1;text-align:center;padding:70px 20px;background:#efefe6;border-radius:10px}.empty-state svg{width:35px;height:35px;color:#8c9b7d;margin-bottom:12px}.empty-state h3{font-family:Manrope,sans-serif;font-size:22px;font-weight:500;margin:0 0 8px}.empty-state p{font-size:13px;color:var(--muted);max-width:420px;margin:0 auto 20px;line-height:1.7}.closing-note{display:flex;justify-content:center;align-items:center;gap:25px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:60px 0 0;padding:40px 20px}.note-mark{font-family:Georgia,serif;font-size:56px;color:#98a587;letter-spacing:-8px;line-height:1}.closing-note h2{font-family:Georgia,serif;font-weight:400;font-size:21px;letter-spacing:-.4px;margin:0 0 8px}.closing-note p{font-size:11px;color:#868c7d;margin:0}footer{max-width:1440px;margin:auto;padding:24px 5% 34px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;font-weight:600}.footer-by{font-size:9px;font-weight:400;color:#8e9586;margin-left:12px}footer p{font-size:9px;color:#929889;font-weight:400;max-width:300px;line-height:1.6}footer .text-button{font-size:9px;font-weight:400}.mobile-nav,.mobile-only{display:none}dialog{border:1px solid var(--line);border-radius:15px;background:var(--paper);padding:0;color:var(--ink);max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 30px 100px #12291a40}dialog::backdrop{background:#1b2b2280;backdrop-filter:blur(5px)}body.modal-open{overflow:hidden}.settings-dialog{width:min(620px,calc(100% - 30px));padding:30px}.dialog-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 16px}.dialog-top h2{font-family:Manrope,sans-serif;font-weight:500;font-size:26px;letter-spacing:-1px;margin:0}.dialog-top .eyebrow{font-size:8px;margin-bottom:9px}.settings-dialog p{font-size:13px;line-height:1.7}.muted{color:var(--muted)}fieldset{margin:25px 0;padding:18px 0 0;border:0;border-top:1px solid var(--line)}legend{font-family:Manrope,sans-serif;font-size:15px;padding:0 10px 0 0;font-weight:600}.form-help{font-size:11px!important;line-height:1.65;color:#868c7f;margin:4px 0 12px}.settings-dialog label,.rating-form label{display:flex;flex-direction:column;gap:8px;font-size:12px}.settings-dialog input,.rating-form input,.rating-form select,.rating-form textarea{border:1px solid #d4dacb;border-radius:6px;background:var(--white);padding:11px;font-size:13px;min-width:0;max-width:100%;width:100%}.location-search{display:flex;gap:8px}.location-search input{flex:1;width:0}.home-results{display:flex;flex-direction:column;gap:4px;margin:8px 0;font-size:12px}.place-option{text-align:left;border:1px solid var(--line);border-radius:6px;padding:11px;background:var(--white)}.place-option:hover,.place-option.selected{background:var(--sage)}.selected-home{font-size:11px!important;font-weight:500;color:#58724d}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-bottom{margin-top:25px;border-top:1px solid var(--line);padding-top:20px;display:flex;align-items:center;justify-content:space-between;gap:15px}.settings-bottom .form-help{margin:0;max-width:160px}.connection-details{border:1px solid var(--line);padding:15px;border-radius:7px}.connection-details summary{font-size:12px;cursor:pointer}.connection-details input{font-size:11px}.connection-details>p:first-of-type{margin-top:15px}.connection-details label{margin-bottom:14px}.detail-dialog{width:min(1000px,calc(100% - 40px))}.detail-photo{height:390px;position:relative}.detail-photo .photo-wrap{height:100%;border-radius:0}.detail-close{position:absolute;top:16px;right:16px;z-index:3}.detail-photo .save-button{right:62px;top:18px}.detail-body{padding:30px 36px 38px}.detail-body>.museum-line{font-size:11px}.detail-body h2{font-family:Manrope,sans-serif;font-size:34px;letter-spacing:-1.3px;font-weight:500;margin:10px 0;line-height:1.25}.detail-artists{font-size:14px;color:#7c8675;margin:0 0 13px}.detail-columns{display:grid;grid-template-columns:1.5fr 1fr;gap:42px;margin-top:28px}.detail-columns h3{font-family:Manrope,sans-serif;font-size:16px;font-weight:600;letter-spacing:-.3px;margin:25px 0 10px}.detail-columns h3:first-child{margin-top:0}.detail-columns p{font-size:13px;line-height:1.9;margin:0 0 15px;color:#737e6e}.detail-caption{position:absolute;bottom:0;left:0;background:#24372adb;color:#fafaf1;font-size:10px;line-height:1.5;padding:6px 12px;max-width:75%}.practical-panel{background:#eceee4;border-radius:10px;padding:22px}.practical-item{display:flex;gap:11px;margin-bottom:18px}.practical-item>svg{width:17px;height:17px;margin-top:3px;color:#7c8b6b}.practical-item strong{display:block;font-size:11px;font-weight:600;margin-bottom:4px}.practical-item p{font-size:11px;line-height:1.65;margin:0}.practical-panel .button{display:flex;margin-top:9px;width:100%}.source-link{display:inline-flex;align-items:center;gap:6px;font-size:11px;text-decoration:underline;text-underline-offset:3px;margin-top:15px}.source-link svg{width:12px;height:12px}.review{border-left:2px solid #9ba985;padding:4px 0 4px 15px;margin:17px 0}.review strong{font-size:12px}.review p{font-size:12px;margin:7px 0}.review a{font-size:11px;text-decoration:underline}.review-meta{font-size:10px;color:#87907f}.works{padding-left:18px;color:#77816e;font-size:12px;line-height:1.9}.rating-form{border-top:1px solid var(--line);margin-top:30px;padding-top:24px}.rating-form h3{margin-top:0}.rating-fields{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:10px;margin:15px 0}.rating-form textarea{resize:vertical;min-height:75px}.rating-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:15px}.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);padding:13px 20px;border-radius:8px;background:var(--ink);color:#fffdf5;z-index:100;font-size:12px;max-width:90vw;box-shadow:0 4px 20px #0002}.loading{font-size:14px;color:var(--muted);grid-column:1/-1;padding:45px;text-align:center}@media(min-width:1500px){.photo-wrap{height:270px}.card-title :is(button,a):after{inset:270px 0 0}}@media(max-width:1100px){.desktop-nav{margin-left:10px;gap:22px}.topbar{gap:25px}.photo-wrap{height:210px}.card-title :is(button,a):after{inset:210px 0 0}.card-body{padding:17px}.card-title{font-size:17px}.exhibition-grid{gap:20px}.header-actions{gap:10px}.intro{padding-top:46px}.intro-note{padding-right:0}.footer-by{display:block;margin:4px 0 0}.primary-filters>label{padding:0 15px}}
@media(max-width:800px){.topbar{height:76px}.desktop-nav{display:none}.brand{font-size:24px}.exhibition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.primary-filters{grid-template-columns:1fr 1fr;gap:18px 0}.primary-filters>label:nth-child(2){border:none}.primary-filters>label{padding:0 18px}.intro-note{display:none}.quick-row{flex-wrap:wrap;gap:14px;padding-bottom:26px}.refresh-button{margin-left:auto}.results-heading{margin-bottom:20px}.photo-wrap{height:240px}.card-title :is(button,a):after{inset:240px 0 0}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#f9f8f2f5;backdrop-filter:blur(18px);border-top:1px solid var(--line);z-index:20;padding:7px 10px calc(7px + env(safe-area-inset-bottom))}.mobile-nav button{min-height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:9px;color:#949b8c;min-width:65px}.mobile-nav button.active{color:var(--ink)}.mobile-nav svg{width:19px;height:19px}.mobile-nav .active svg{stroke-width:2.1}footer{padding-bottom:105px;flex-wrap:wrap}.toast{bottom:90px}.detail-columns{gap:25px}.detail-body{padding:24px}.detail-photo{height:320px}.rating-fields{grid-template-columns:1fr 1fr}.rating-fields>label:last-child{grid-column:1/-1}}
@media(max-width:540px){.topbar{height:72px;padding:0 20px;gap:10px}.brand{font-size:22px;gap:7px}.brand-mark{width:28px;height:31px;font-size:25px;border-radius:10px 10px 1px 1px}.header-actions{gap:8px}.location-button{font-size:10px;max-width:160px;padding:4px 0;gap:5px}.location-button svg{width:14px;height:14px}.icon-button{width:34px;height:34px}.icon-button svg{width:17px;height:17px}main{padding:0 20px}.intro{padding:34px 0 27px}.intro .eyebrow{font-size:8px;letter-spacing:1.2px;margin-bottom:15px;gap:7px}.small-line{width:18px}h1{font-size:39px;letter-spacing:-2px;margin-bottom:14px}h1 em{letter-spacing:-1.6px}.intro-text{font-size:12px;line-height:1.75}.mobile-only{display:block}.search-row{padding:12px 12px;gap:8px}.search-box{gap:9px}.search-box svg{width:17px;height:17px}.search-box input{font-size:11px;min-width:0;height:26px}.filter-toggle{padding:7px;font-size:10px;gap:5px}.filter-toggle svg{width:14px;height:14px}.primary-filters{padding:16px 0;gap:16px 0}.primary-filters>label{padding:0 13px}.field-label{font-size:8px;letter-spacing:1px;margin-bottom:6px}.primary-filters select{font-size:11px;height:20px}.extra-filters{padding:16px 13px;gap:14px}.extra-filters>label:not(.checkbox-label){min-width:120px;font-size:10px}.extra-filters select{font-size:11px}.quick-row{padding:16px 0 24px;gap:12px}.quick-filters{gap:6px;width:100%}.chip{padding:7px 10px;font-size:9px;gap:5px}.chip svg{width:12px;height:12px}.refresh-button{font-size:9px;margin:0}.results-heading{align-items:flex-end;gap:10px;margin-bottom:19px}.results-heading .eyebrow{font-size:8px;letter-spacing:1px}.results-heading h2{font-size:23px}.results-heading h2>span{font-size:10px;margin-left:3px}.sort-label{font-size:9px;gap:4px;flex-shrink:0}.sort-label select{font-size:10px;max-width:85px;padding:4px 0}.exhibition-grid{grid-template-columns:1fr;gap:24px}.photo-wrap{height:255px}.card-title :is(button,a):after{inset:255px 0 0}.card-body{padding:20px}.card-title{font-size:22px;letter-spacing:-.6px;margin-bottom:10px}.museum-line{font-size:9px;letter-spacing:.5px}.date-line{font-size:11px}.card-description{font-size:12px;line-height:1.8;min-height:0;-webkit-line-clamp:3}.card-practical{font-size:10px;padding-top:14px;margin-top:17px;gap:12px}.card-practical svg{width:14px;height:14px}.tag{font-size:9px}.badge{font-size:10px;padding:5px 8px}.save-button{width:35px;height:35px}.save-button svg{width:17px;height:17px}.closing-note{margin-top:38px;padding:28px 0;gap:20px;justify-content:flex-start}.closing-note h2{font-size:18px;line-height:1.4}.closing-note p{font-size:10px;line-height:1.6}.note-mark{font-size:49px}.closing-note h2{margin-bottom:6px}footer{padding:23px 20px 102px;display:grid;gap:10px}.footer-by{display:inline;margin-left:10px}footer p{margin:0;max-width:100%}footer .text-button{justify-self:start;font-size:10px}.detail-dialog{width:100%;max-width:100%;max-height:100dvh;height:100dvh;border-radius:0;margin:0;border:0}.detail-photo{height:280px}.detail-body{padding:22px 20px 40px}.detail-body h2{font-size:30px;letter-spacing:-1px}.detail-body>.museum-line{font-size:9px}.detail-columns{grid-template-columns:1fr;gap:25px;margin-top:23px}.detail-columns p{font-size:13px}.detail-columns aside{grid-row:1}.detail-columns h3{font-size:16px}.practical-panel{padding:20px}.practical-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}.practical-item{margin-bottom:14px}.practical-item.full{grid-column:1/-1}.practical-panel .button{display:inline-flex;width:calc(50% - 5px);padding:11px 7px;font-size:11px;margin-top:2px}.practical-panel .button+.button{margin-left:5px}.settings-dialog{padding:23px 20px}.dialog-top h2{font-size:24px}.settings-dialog p{font-size:12px}.two-fields{gap:10px}.settings-bottom{flex-direction:column;align-items:stretch;gap:12px}.settings-bottom .form-help{max-width:100%}.settings-bottom .button{width:100%}.rating-bottom{align-items:flex-start;flex-direction:column;gap:10px}.rating-bottom .button{width:100%}.detail-caption{font-size:9px}.empty-state{padding:50px 20px}.empty-state h3{font-size:20px}.empty-state p{font-size:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

/* Compact museum browser: filters stay in place while only results scroll. */
html,body{height:100%;overflow:hidden}
body{min-width:280px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.app-shell{height:100vh;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.fixed-top{position:relative;z-index:10;background:var(--paper);border-bottom:1px solid var(--line);max-height:70dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.topbar{width:100%;max-width:none;margin:0;height:76px;padding:0 32px}
.nav-btn.active:after{bottom:16px}
.filter-area{padding:20px 32px 0}
.filter-panel{box-shadow:none}
.search-row{padding:12px 18px}
.search-box input{font-size:14px}
.filter-toggle{font-size:12px;min-height:36px;padding:8px 12px}
.primary-filters{padding:13px 0}
.field-label{font-size:9px;margin-bottom:6px}
.primary-filters select{font-size:13px;height:26px}
.extra-filters{padding:16px 20px}
.extra-filters select,.extra-filters>label:not(.checkbox-label),.checkbox-label{font-size:12px}
.quick-row{padding:12px 0;gap:16px;min-height:60px}
.quick-filters{gap:8px;padding:1px 2px}
.chip{min-height:36px;font-size:12px;padding:7px 14px;transition:background-color .15s,color .15s,border-color .15s}
.chip:not(.active):hover{background:#eef0e6;border-color:var(--line)}
.chip.active,.chip[aria-pressed="true"]{background:var(--ink);color:#fffdf5;border-color:var(--ink)}
.chip.active:hover,.chip[aria-pressed="true"]:hover{background:#314b3e;border-color:#314b3e}
.chip:active{transform:none}
.refresh-button{font-size:11px;min-height:36px;padding:8px 2px}
.results-scroll{width:100%;max-width:none;margin:0;padding:24px 32px 0;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;scroll-padding-top:20px;-webkit-overflow-scrolling:touch}
.results-heading{margin-bottom:22px}
.results-heading .eyebrow{font-size:9px;color:#697861}
.results-heading h2{font-size:27px}
.sort-label{font-size:12px;color:#697463}
.sort-label select{font-size:12px;max-width:135px;min-height:36px}
.exhibition-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.card-description{font-size:13px;line-height:1.75;color:#63705d;min-height:68px}
.museum-line{font-size:10px;color:#607357}
.date-line{font-size:12px;color:#687260}
.card-title{font-size:21px}
.card-practical{font-size:11px;color:#65735e;gap:12px}
.card-practical svg{width:14px;height:14px}
.tag{font-size:10px;color:#637159}
.visitor-rating{position:relative;z-index:2;border-top:1px solid var(--line);margin-top:16px;padding-top:13px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:7px 10px}
.visitor-rating h3,.visitor-rating p{margin:0}
.visitor-rating .rating-label,.visitor-rating>span,.rating-label{font-size:12px;color:#5f7156}
.star-rating{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}
.rating-star{width:36px;height:36px;min-width:36px;display:grid;place-items:center;border-radius:6px;color:#89927e;padding:7px;background:transparent}
.rating-star svg{width:22px;height:22px;stroke-width:1.6}
.rating-star.filled{color:#8b6b28}
.rating-star.filled svg{fill:#b28b35;stroke:#8b6b28}
.rating-star:hover{color:#8b6b28}
.rating-star:is(:hover,:active,[aria-pressed="true"]){background:transparent}
.rating-star:focus-visible{outline-offset:1px}
.visitor-rating .rating-caption,.visitor-rating .form-help{font-size:11px;line-height:1.6;color:#66745d;margin:0;flex-basis:100%}
.visitor-rating .text-button{font-size:11px}
.detail-body .visitor-rating{margin:26px 0 0;padding-top:20px;justify-content:flex-start;gap:10px 18px}
.detail-body .visitor-rating .rating-label{font-size:14px;font-weight:500}
.detail-body .rating-star{width:42px;height:42px;min-width:42px}
.detail-body .rating-star svg{width:26px;height:26px}
.selected-home-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 14px}
.selected-home-row .selected-home{margin:0}
.selected-home-row .text-button{font-size:11px;flex-shrink:0}
footer{width:100%;max-width:none;margin:32px 0 0;padding:22px 0 28px;border-top:1px solid var(--line);font-size:13px}
footer .text-button{font-size:11px;min-height:36px}
.route-status{font-size:12px;color:#63715a}
.form-help{color:#68745f}
@media(min-width:1500px){.exhibition-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1099px){.exhibition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{gap:24px}.desktop-nav{margin-left:0;gap:22px}.filter-area{padding:16px 24px 0}.topbar{padding:0 24px}.results-scroll{padding:23px 24px 0}}
@media(max-width:800px){.app-shell{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.topbar{height:66px}.filter-area{padding:12px 20px 0}.primary-filters{display:none}.filters-expanded .primary-filters{display:grid;grid-template-columns:1fr 1fr;gap:16px 0;padding:14px 0}.search-row{border-bottom:none;padding:10px 12px}.filters-expanded .search-row{border-bottom:1px solid var(--line)}.quick-row{padding:10px 0;gap:4px;flex-wrap:wrap;min-height:0}.quick-filters{width:100%;gap:7px}.chip{min-height:36px;font-size:11px;padding:7px 12px}.refresh-button{margin:0;font-size:10px;min-height:26px;padding:4px 2px}.results-scroll{padding:20px 20px 0}.results-heading h2{font-size:25px}.results-heading{margin-bottom:18px}.exhibition-grid{gap:20px}.card-title{font-size:21px}.card-description{font-size:13px}.card-practical{font-size:11px}.mobile-nav{height:calc(68px + env(safe-area-inset-bottom));padding-top:7px;padding-bottom:calc(7px + env(safe-area-inset-bottom))}.mobile-nav button{font-size:10px}.selected-home-row{align-items:flex-start;flex-direction:column;gap:5px}footer{padding-bottom:22px;display:flex;flex-wrap:wrap;gap:15px}.sort-label{font-size:11px}.sort-label select{font-size:11px;max-width:110px}}
@media(max-width:540px){.topbar{padding:0 16px;gap:8px}.brand{font-size:22px}.header-actions{gap:6px}.location-button{font-size:11px;max-width:155px}.location-button span:nth-child(2){max-width:115px}.filter-area{padding:10px 14px 0}.search-box input{font-size:12px}.filter-toggle{font-size:11px;gap:6px;min-height:36px;padding:7px 9px}.filter-toggle svg{width:15px;height:15px}.extra-filters{padding:15px 12px;gap:13px}.extra-filters>label:not(.checkbox-label){min-width:125px;font-size:11px}.extra-filters select{font-size:12px}.primary-filters select{font-size:12px;min-height:27px}.primary-filters>label{padding:0 12px}.field-label{font-size:9px}.quick-filters{width:100%;gap:6px}.chip{font-size:11px;padding:7px 11px}.chip svg{width:13px;height:13px}.results-scroll{padding:18px 14px 0}.exhibition-grid{grid-template-columns:1fr;gap:20px}.results-heading h2{font-size:24px}.results-heading .eyebrow{font-size:8px}.sort-label{gap:4px;font-size:10px}.sort-label select{font-size:11px;max-width:100px}.card-body{padding:19px}.card-title{font-size:23px}.card-description{font-size:13px;min-height:0}.museum-line{font-size:10px}.date-line{font-size:12px}.tag{font-size:10px}.card-practical{font-size:11px}.visitor-rating{gap:6px}.visitor-rating .rating-label{font-size:12px}.rating-star{width:38px;height:38px;min-width:38px}.rating-star svg{width:23px;height:23px}.detail-body .visitor-rating{margin-top:24px;padding-top:18px}.selected-home-row .text-button{min-height:32px}footer{margin-top:25px;padding:18px 0 20px;font-size:12px}footer .text-button{font-size:11px}.empty-state{padding:42px 18px}.empty-state p{font-size:13px}}

.rating-visited{display:inline-flex;align-items:center;gap:4px;margin-left:7px;color:#597548;font-size:10px}.rating-visited svg{width:13px;height:13px}.clear-rating{font-size:11px;text-decoration:underline;text-underline-offset:3px;padding:8px}.practical-help{margin-top:14px!important}

/* Keep every quick-filter label visible on narrow screens. */
@media(max-width:540px){
  .quick-filters{display:grid;grid-template-columns:1.35fr .65fr 1.05fr 1.15fr;gap:5px;padding:1px 0;min-width:0;overflow:visible}
  .quick-filters .chip{width:100%;min-width:0;min-height:36px;padding:7px 4px;font-size:11px;gap:0}
  .quick-filters .chip>span{display:none}
}
@media(max-width:350px){
  .quick-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
}
.rating-visited{display:inline-flex;align-items:center;gap:4px;margin-left:7px;color:#597548;font-size:11px;white-space:nowrap}
.rating-visited svg{width:13px;height:13px}
.clear-rating{display:grid;place-items:center;min-height:36px;min-width:36px;border-radius:6px;padding:8px;font-size:11px;text-decoration:underline;text-underline-offset:3px;color:#5f7156}
.clear-rating:hover{background:#eceee2}
.clear-rating:focus-visible{outline-offset:1px}

/* Exhibition links and sharing controls. Photo links retain native horizontal swiping. */
.photo-open{display:block;width:100%;height:100%;position:relative;cursor:pointer;touch-action:manipulation}
.photo-open:focus-visible{outline-offset:-4px;outline-width:3px}
.photo-open img{-webkit-user-drag:none}
.card-title a{display:inline;color:inherit;text-decoration:none}
.card-title a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.photo-actions{position:absolute;z-index:2;top:12px;right:12px;display:flex;align-items:center;gap:6px}
.photo-actions .save-button,.photo-share-button{position:static;display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:50%;background:#fffcf2f5;color:#35493d;box-shadow:0 2px 5px #00000008}
.photo-actions .save-button svg,.photo-share-button svg{width:17px;height:17px}
.photo-actions button:hover,.photo-info-button:hover{background:#fffefa}
.photo-actions button:focus-visible,.photo-info-button:focus-visible{outline-offset:2px}
.photo-info-button{position:absolute;z-index:2;bottom:12px;left:12px;display:flex;align-items:center;justify-content:center;min-height:34px;padding:8px 12px;border-radius:7px;background:#fffcf2f5;color:var(--ink);box-shadow:0 2px 5px #00000008;font-size:12px;font-weight:600;line-height:1.3;white-space:nowrap}
.photo-bottom-controls{position:absolute;z-index:2;bottom:12px;left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;gap:6px;container:photo-controls / inline-size;pointer-events:none}
.photo-bottom-controls .photo-info-button{position:static;flex:0 1 auto;min-width:0;pointer-events:auto}
.photo-bottom-controls .photo-nav{position:static;flex:0 0 auto;min-height:34px;pointer-events:auto}
.exhibition-card .card-badges{right:102px}
.detail-share-row{display:flex;justify-content:flex-start;margin:13px 0 5px}
.detail-share-button{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:9px 13px;border:1px solid #c6cdbc;border-radius:7px;font-size:12px;color:var(--ink)}
.detail-share-button svg{width:17px;height:17px;pointer-events:none}
.detail-share-button:hover{background:var(--sage)}
.share-dialog{width:min(540px,calc(100% - 30px))}
.share-dialog .dialog-top{align-items:flex-start;margin-bottom:14px}
.share-dialog .dialog-top h2{font-size:25px;line-height:1.25}
.share-dialog .share-exhibition-title{font-size:14px;line-height:1.6;margin:0 0 22px;color:#5f7156}
.share-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:23px}
.share-option{width:100%;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;font-size:13px;padding:14px 12px;border-radius:10px}
.share-option-icon{display:flex;align-items:center;justify-content:center}
.share-option-icon svg{width:23px;height:23px}
.share-whatsapp{background:#25d366;color:#fff;border:1px solid #25d366}
.share-whatsapp:hover{background:#1ebe5d;border-color:#1ebe5d}
.share-whatsapp .whatsapp-logo{display:block;width:125px;max-width:100%;height:auto}
.share-url-label{display:block!important;font-size:11px!important;color:#697660;margin-bottom:8px}
.share-dialog .share-url-input{font-size:12px;color:#52664c;background:#fffefa;cursor:text;line-height:1.6}
.share-dialog .share-status{min-height:19px;margin:10px 0 0}
@media(max-width:540px){
  .share-dialog{width:calc(100% - 28px);padding:23px 20px}
  .share-dialog .dialog-top h2{font-size:23px}
  .share-dialog .share-exhibition-title{font-size:13px;margin-bottom:19px}
  .share-options{gap:9px;margin-bottom:20px}
  .share-option{min-height:76px;font-size:12px;padding:13px 8px}
  .share-dialog .share-url-input{font-size:12px}
}
@media(max-width:350px){.share-options{grid-template-columns:1fr}}

/* Museumkaart is a primary visit condition: color and explicit wording work together. */
.museumcard--valid{--museumcard-bg:#e4f2e6;--museumcard-ink:#205533;--museumcard-border:#a9cdae}
.museumcard--surcharge{--museumcard-bg:#fff0d3;--museumcard-ink:#7a470b;--museumcard-border:#dfb56b}
.museumcard--invalid{--museumcard-bg:#f9e5e1;--museumcard-ink:#8c3329;--museumcard-border:#dda59b}
.museumcard--unknown{--museumcard-bg:#edf0ec;--museumcard-ink:#4e5752;--museumcard-border:#c5cdc5}
.museumcard-indicator{display:flex;align-items:center;gap:7px;width:fit-content;max-width:100%;margin:0 0 14px;padding:8px 10px;border:1px solid var(--museumcard-border);border-radius:6px;background:var(--museumcard-bg);color:var(--museumcard-ink);font-size:12px;font-weight:650;line-height:1.45}
.museumcard-indicator>svg{width:17px;height:17px;flex-shrink:0;stroke-width:1.9}
.museumcard-indicator>span{min-width:0;overflow-wrap:anywhere}
.museumcard-detail{padding:12px;margin-bottom:18px;border:1px solid var(--museumcard-border);border-radius:7px;background:var(--museumcard-bg);color:var(--museumcard-ink)}
.museumcard-detail>svg{width:18px;height:18px;margin-top:2px;color:var(--museumcard-ink);stroke-width:1.9}
.museumcard-detail>div{min-width:0}
.museumcard-detail strong{font-size:12px;font-weight:700;line-height:1.5;color:var(--museumcard-ink)}
.museumcard-detail p{font-size:11px;line-height:1.65;color:var(--museumcard-ink);overflow-wrap:anywhere}

.load-more-status{text-align:center;font-size:12px;line-height:1.6;color:#68745f;min-height:20px;margin:28px 0 8px}.load-more-status:empty{display:none}.load-more-sentinel{height:1px;width:100%;pointer-events:none}

/* Planned weekly cadence stays separate from the actual last-update date. */
.update-info{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px 12px;margin-left:auto;min-width:0;max-width:100%}
.update-schedule{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;line-height:1.6;color:#68745f;white-space:nowrap}
.update-schedule svg{width:13px;height:13px;flex-shrink:0}
.update-info .refresh-button{margin:0;flex-shrink:0}
@media(max-width:800px){
  .update-info{width:100%;justify-content:space-between;gap:2px 10px;margin-left:0}
  .update-schedule{font-size:10px}
  .update-schedule svg{width:12px;height:12px}
  .update-info .refresh-button{font-size:10px;min-height:26px;padding:4px 2px}
}
@media(max-width:350px){.update-info{justify-content:flex-end}}
@media(min-width:801px) and (max-width:1000px){.quick-row{flex-wrap:wrap}.update-info{flex-shrink:0}}

/* Keep desktop filters centered while exhibition results use the full width. */
@media(min-width:1100px){.filter-area{max-width:1120px;margin-inline:auto}}


/* The desktop display choice changes density without changing the filters. */
.columns-control{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:11px;color:#63715a}
.columns-control select{max-width:132px;min-height:34px;padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:var(--white);font-size:11px;cursor:pointer}
.exhibition-grid{grid-template-columns:repeat(var(--grid-columns,3),minmax(0,1fr))}
/* Only the star controls need size containment; keep photo painting outside it. */
.exhibition-card .card-body{container-type:inline-size}
.photo-slide img{opacity:0}
.photo-slide img[data-image-state="loaded"]{opacity:1}
.exhibition-card .photo-wrap{width:100%;max-width:100%;height:auto;aspect-ratio:4/3}
.exhibition-card .photo-strip{position:absolute;inset:0}
.exhibition-card .card-title :is(button,a):after{content:none}
.detail-photo .photo-wrap{height:100%;aspect-ratio:auto}
@media(max-width:1099px){.columns-control{display:none}}
@media(min-width:1100px){
  .exhibition-grid[data-density="compact"] .card-body{padding:12px 10px}
  .exhibition-grid[data-density="compact"] .card-title{font-size:18px;letter-spacing:-.4px}
  .exhibition-grid[data-density="compact"] .museum-line{font-size:9px;letter-spacing:.35px;flex-wrap:wrap;gap:3px}
  .exhibition-grid[data-density="compact"] .date-line{font-size:10px;gap:4px}
  .exhibition-grid[data-density="compact"] .card-description{font-size:12px;line-height:1.7;min-height:61px}
  .exhibition-grid[data-density="compact"] .museumcard-indicator{font-size:11px;padding:7px;gap:5px;line-height:1.5}
  .exhibition-grid[data-density="compact"] .museumcard-indicator>svg{width:15px;height:15px}
  .exhibition-grid[data-density="compact"] .tag{font-size:9px;padding:3px 5px}
  .exhibition-grid[data-density="compact"] .card-practical{font-size:10px;gap:7px}
  .exhibition-grid[data-density="compact"] .visitor-rating{gap:5px;margin-top:12px;padding-top:10px}
  .exhibition-grid[data-density="compact"] .rating-label{font-size:11px}
  .exhibition-grid[data-density="compact"] .star-rating{max-width:100%;min-width:0;flex-shrink:1;flex-wrap:wrap;gap:1px}
  .exhibition-grid[data-density="compact"] .visitor-rating{padding:24px 0;gap:4px}
  .exhibition-grid[data-density="compact"] .visitor-rating .star-rating{justify-content:center;flex-wrap:nowrap}
  .exhibition-grid[data-density="compact"] .rating-star{width:clamp(24px,12cqw,36px);height:clamp(24px,12cqw,36px);min-width:24px;padding:3px;flex:0 0 auto}
  .exhibition-grid[data-density="compact"] .rating-star svg{width:clamp(18px,8cqw,22px);height:clamp(18px,8cqw,22px)}
  .exhibition-grid[data-density="compact"] .clear-rating{font-size:10px;min-width:28px;min-height:28px;padding:5px}
  .exhibition-grid[data-density="compact"] .rating-visited{font-size:10px;margin-left:4px}
  /* Keep photo actions distinct even when six narrow cards share a desktop row. */
  .exhibition-grid[data-density="compact"] .photo-wrap{min-height:168px}
  .exhibition-grid[data-density="compact"] .photo-actions{top:10px;right:10px}
  .exhibition-grid[data-density="compact"] .photo-actions button{width:32px;height:32px;flex-basis:32px}
  .exhibition-grid[data-density="compact"] .card-badges{top:50px;left:10px;right:10px;gap:4px}
  .exhibition-grid[data-density="compact"] .badge{font-size:9px;line-height:1.2;padding:4px 6px}
  .exhibition-grid[data-density="compact"] .photo-bottom-controls{left:10px;right:10px;bottom:10px}
  .exhibition-grid[data-density="compact"] .photo-info-button{min-height:30px;padding:7px 9px;font-size:11px}
  .exhibition-grid[data-density="compact"] .photo-nav{min-height:30px}
}

/* The two arrows remain usable when a narrow card needs a two-line label. */
@container photo-controls (max-width:205px){
  .exhibition-card .photo-bottom-controls .photo-info-button{height:38px;min-height:38px;padding:4px 6px;font-size:11px;line-height:1.2;white-space:normal}
  .exhibition-card .photo-bottom-controls .photo-nav{min-height:38px;gap:0;padding:3px}
  .exhibition-card .photo-bottom-controls .photo-nav button{width:24px;min-width:24px;height:30px;padding:3px}
  .exhibition-card .photo-bottom-controls .photo-counter{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}

.photo-state{font-size:10px;line-height:1.5;opacity:.8;max-width:100%;text-align:center}.photo-fallback[hidden]{display:none!important}

@media(min-width:1100px){.exhibition-grid[data-density="compact"] .photo-fallback{padding:10px;gap:6px}.exhibition-grid[data-density="compact"] .fallback-mark{font-size:42px}.exhibition-grid[data-density="compact"] .fallback-name{display:none}.exhibition-grid[data-density="compact"] .photo-state{font-size:9px}.exhibition-grid[data-density="compact"] .photo-fallback:before{width:70px;height:85px}}

/* Public review totals stay distinct from this visitor's own stars. */
.results-heading{flex-wrap:wrap}
.results-heading>div{min-width:0}
.sort-label{margin-left:auto;flex-shrink:0}
.sort-label select{width:236px;max-width:236px;cursor:pointer}
.review-summary{display:flex;flex-direction:column;gap:7px;margin:15px 0 0;padding:11px 0 0;border-top:1px solid #e8e9df;font-size:12px;line-height:1.55}
.review-score{display:flex;align-items:center;flex-wrap:wrap;gap:5px;color:#60705a;min-width:0}
.review-score svg{width:15px;height:15px;flex-shrink:0;color:#8b6b28;fill:#ede1b9}
.review-score strong{font-size:14px;font-variant-numeric:tabular-nums;color:var(--ink);line-height:1.4}
.review-score span{min-width:0;overflow-wrap:anywhere}
.review-empty{font-size:11px;line-height:1.6;color:#68745f}
/* Give each part of an overview card its own breathing room. */
.exhibition-card .card-title{margin-bottom:12px}
.exhibition-card .date-line{margin-bottom:16px}
.exhibition-card .review-summary{gap:12px;margin:18px 0;padding-top:14px}
.exhibition-card .card-tags{margin-top:18px}
.exhibition-card .card-practical{margin-top:20px;padding-top:16px}
.detail-review-summary{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px 24px;padding-top:15px;margin-top:19px;font-size:13px}
.detail-review-summary .review-score strong{font-size:17px}
.detail-review-summary .review-score svg{width:18px;height:18px}
.detail-review-summary .review-empty{font-size:12px}
.rating-sharing{flex-basis:100%;width:100%;margin-top:5px;font-size:11px;line-height:1.6}
.rating-sharing label{display:flex;align-items:flex-start;gap:7px;font-size:11px;line-height:1.6;cursor:pointer}
.rating-sharing input[type="checkbox"]{flex:0 0 auto;width:16px;height:16px;padding:0;margin:1px 0 0;accent-color:var(--ink);cursor:pointer}
.rating-sharing-status{display:block;margin:4px 0 0 23px;color:#68745f;font-size:10px;line-height:1.6;overflow-wrap:anywhere}
.detail-body .rating-sharing{max-width:560px;font-size:12px}
.detail-body .rating-sharing label{font-size:12px}
.detail-body .rating-sharing-status{font-size:11px}
.sharing-preferences{margin-top:18px}
.shared-rating-setting{padding:15px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.6}
.shared-rating-setting>strong{display:block;font-weight:600;overflow-wrap:anywhere}
.shared-rating-setting>.form-help{margin:4px 0 8px}
.shared-rating-setting .rating-sharing{margin-top:0}
.shared-rating-setting .rating-sharing label{font-size:12px}
.shared-rating-setting .rating-sharing-status{font-size:11px}
@media(min-width:1100px){
  .exhibition-grid[data-density="compact"] .review-summary{font-size:11px;gap:12px;margin:18px 0;padding-top:14px}
  .exhibition-grid[data-density="compact"] .review-score strong{font-size:13px}
  .exhibition-grid[data-density="compact"] .review-score svg{width:13px;height:13px}
  .exhibition-grid[data-density="compact"] .review-empty{font-size:10px}
  .exhibition-grid[data-density="compact"] .rating-sharing label{font-size:10px;gap:5px}
  .exhibition-grid[data-density="compact"] .rating-sharing input[type="checkbox"]{width:15px;height:15px;margin-top:1px}
  .exhibition-grid[data-density="compact"] .rating-sharing-status{margin-left:20px}
}
@media(max-width:800px){
  .results-heading{gap:13px}
  .sort-label select{font-size:12px;width:224px;max-width:224px}
}
@media(max-width:540px){
  .sort-label{justify-content:flex-end;gap:8px;max-width:100%}
  .sort-label select{width:224px;max-width:calc(100vw - 94px)}
  .review-summary{font-size:12px}
  .rating-sharing label{font-size:12px}
  .rating-sharing-status{font-size:11px}
}


/* Move the same search field beside the navigation while secondary controls fold away. */
.fixed-top{--compact-header-height:77px;--navigation-height:76px;--compact-search-start:520px;--header-duration:420ms;--header-ease:cubic-bezier(.22,1,.36,1);padding-top:env(safe-area-inset-top,0px);transition:box-shadow var(--header-duration) var(--header-ease),background-color var(--header-duration) var(--header-ease)}
.header-navigation{position:absolute;top:env(safe-area-inset-top,0px);inset-inline:0;z-index:1;pointer-events:none}
.header-navigation :is(.brand,.desktop-nav,.header-actions){pointer-events:auto}
.nav-icon{display:none}
.fixed-top .topbar{transition:height var(--header-duration) var(--header-ease),gap var(--header-duration) var(--header-ease),border-color var(--header-duration) var(--header-ease)}
.header-collapse{display:grid;grid-template-rows:1fr;opacity:1;transform:translateY(0);transition:grid-template-rows var(--header-duration) var(--header-ease),opacity 260ms ease,transform var(--header-duration) var(--header-ease)}
.header-collapse-inner{min-height:0;overflow:hidden}
.fixed-top .header-actions{max-width:600px;opacity:1;transition:max-width var(--header-duration) var(--header-ease),opacity 260ms ease}
.fixed-top .filter-area{width:100%;max-width:none;margin:0;padding-top:calc(var(--navigation-height) + 20px);transition:padding var(--header-duration) var(--header-ease)}
.fixed-top .search-row{height:60px;min-height:60px;align-items:center;padding:11px 18px;transition:height var(--header-duration) var(--header-ease),min-height var(--header-duration) var(--header-ease),padding var(--header-duration) var(--header-ease),gap var(--header-duration) var(--header-ease),border-color var(--header-duration) var(--header-ease)}
.fixed-top .search-box{min-width:0}
.fixed-top .search-box input{min-width:0}
.search-action-collapse{display:grid;grid-template-columns:1fr;min-width:0;max-width:170px;opacity:1;transform:translateX(0);transition:max-width var(--header-duration) var(--header-ease),opacity 200ms ease,transform var(--header-duration) var(--header-ease);overflow:hidden}
.search-action-inner{min-width:0;overflow:hidden}
.search-action-inner .filter-toggle{white-space:nowrap}
.fixed-top.is-compact{overflow:hidden;background:#f7f5eff5;box-shadow:0 6px 22px #263e3412}
.fixed-top.is-compact .header-collapse{grid-template-rows:0fr;opacity:0;transform:translateY(-10px);pointer-events:none}
.fixed-top.is-compact .header-actions{max-width:0;opacity:0;overflow:hidden;pointer-events:none}
.fixed-top.is-compact .topbar{border-bottom-color:transparent}
.fixed-top.is-compact .filter-area{padding:14px 32px 14px var(--compact-search-start)}
.fixed-top.is-compact .search-row{height:46px;min-height:46px;padding:7px 14px;gap:0;border-bottom-color:transparent}
.fixed-top.is-compact .search-action-collapse{max-width:0;opacity:0;transform:translateX(8px);pointer-events:none}
@media(min-width:1100px){.fixed-top:not(.is-compact) .filter-area{padding-inline:max(32px,calc((100% - 1056px)/2))}}
@media(min-width:801px) and (max-width:1099px){.fixed-top.is-compact .filter-area{padding-right:24px}}
@media(max-width:800px){
  .fixed-top{--navigation-height:66px;--compact-header-height:65px}
  .fixed-top .filter-area{padding-top:calc(var(--navigation-height) + 12px)}
  .fixed-top .search-row{height:56px;min-height:56px;padding:9px 12px}
  .fixed-top.is-compact .topbar{height:64px;gap:16px}
  .fixed-top.is-compact .desktop-nav{display:flex;gap:14px}
  .fixed-top.is-compact .nav-btn{font-size:12px}
  .fixed-top.is-compact .brand{font-size:21px}
  .fixed-top.is-compact .filter-area{padding:8px 20px 8px var(--compact-search-start)}
  .fixed-top.is-compact .search-row{height:46px;min-height:46px;padding:7px 10px}
}
@media(max-width:640px){
  .fixed-top .filter-area{padding-top:calc(var(--navigation-height) + 10px)}
  .fixed-top.is-compact .topbar{gap:10px;padding-inline:14px}
  .fixed-top.is-compact .brand-name{display:none}
  .fixed-top.is-compact .desktop-nav{gap:2px;align-items:center}
  .fixed-top.is-compact .nav-btn{display:grid;place-items:center;min-width:36px;height:44px;border-radius:7px}
  .fixed-top.is-compact .nav-btn.active{background:var(--sage)}
  .fixed-top.is-compact .nav-btn.active:after{content:none}
  .fixed-top.is-compact .nav-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
  .fixed-top.is-compact .nav-icon{display:flex}
  .fixed-top.is-compact .nav-icon svg{width:19px;height:19px}
  .fixed-top.is-compact .filter-area{padding-right:14px}
  .fixed-top.is-compact .search-box{gap:7px}
  .fixed-top.is-compact .search-box input{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
  .fixed-top,.fixed-top .topbar,.fixed-top .header-actions,.fixed-top .filter-area,.header-collapse,.fixed-top .search-row,.search-action-collapse{transition:none}
  .fixed-top.is-compact .header-collapse,.fixed-top.is-compact .search-action-collapse{transform:none}
}


/* The detail scrolls beneath a permanently reachable close button and edge gesture. */
.detail-dialog{overflow:hidden}
#detail-content{max-height:calc(92dvh - 2px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.detail-dialog>.detail-close{position:absolute;z-index:12;top:calc(12px + env(safe-area-inset-top,0px));right:14px;width:44px;height:44px;min-width:44px;background:#fffefaf5;border-color:#b7c0af;box-shadow:0 3px 14px #142b2025}
.detail-dialog>.detail-close:hover{background:var(--sage)}
.detail-dialog>.detail-close svg{width:22px;height:22px;stroke-width:2}
.detail-back-edge{position:absolute;inset:0 auto 0 0;width:18px;z-index:10;touch-action:pan-y}
.detail-body{touch-action:pan-y}
@media(max-width:540px){
  #detail-content{height:100dvh;max-height:100dvh;scrollbar-gutter:auto}
  .detail-dialog>.detail-close{right:12px}
  .detail-body{padding-bottom:calc(40px + env(safe-area-inset-bottom,0px))}
}

/* Keep the five stars centered, with the clear action in its own reserved space. */
.exhibition-grid .exhibition-card .card-body{padding-bottom:0}
.visitor-rating,.detail-body .visitor-rating{flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:24px 0}
.visitor-rating .star-rating{justify-content:center;flex-wrap:nowrap;max-width:100%;min-width:0}
.rating-clear-slot{position:absolute;left:0;bottom:0;display:flex;align-items:center;justify-content:center;width:100%;height:22px;min-height:22px}
.visitor-rating .rating-clear-slot .clear-rating{height:24px;min-height:24px;min-width:32px;padding:2px 8px}
