/* One reusable card footprint; overflowing content continues on the next card. */
html body .loom-card-stack{box-sizing:border-box!important;display:flex!important;flex-direction:column!important;gap:0!important;overflow:hidden!important;border-radius:20px!important;background:var(--map-surface,#fffdf5)!important;color:var(--map-ink,#244b43)!important;border:1px solid var(--map-border,#afc2b6)!important;box-shadow:0 10px 35px #173d3430!important}
html body .loom-card-stack.loom-has-stack{box-shadow:0 5px 0 -1px #dfebe1,0 6px 0 #aabfb3,0 11px 0 -2px #eaf1e8,0 12px 0 -1px #aabfb3,0 16px 30px #173d342b!important}
html body .loom-card-stack[hidden],html body dialog.loom-card-stack:not([open]){display:none!important}
html body .loom-card-stack>.loom-stack-head,html body .loom-card-stack>.loom-stack-foot{flex:0 0 auto;min-width:0}
html body .loom-card-stack>.loom-stack-head[hidden],html body .loom-card-stack>.loom-stack-foot[hidden]{display:none!important}
html body .loom-card-stack .loom-stack-head :is(h2,h3){font-size:20px;line-height:1.2;margin:0 38px 8px 0}
html body .loom-card-stack .loom-stack-head :is(.government-head,.block-property-head,.water-card-head,.post-heading){position:static!important;width:auto!important;height:auto!important;min-height:44px;margin:0 0 8px;padding:0;border:0}
html body .loom-card-stack>.loom-stack-viewport{position:relative;flex:1 1 0px;height:0;min-height:64px;min-width:0;width:100%;overflow:hidden!important;touch-action:pan-y pinch-zoom;overscroll-behavior:none}
html body .loom-card-stack .loom-stack-flow{display:block!important;height:var(--loom-stack-body-height)!important;width:100%!important;column-width:auto;column-count:1;column-gap:24px;column-fill:auto;overflow:visible!important;line-height:1.45}
html body .loom-card-stack .loom-stack-flow :is(.map-step,.map-step-copy,.location-step-content,.water-copy,.post-content,.post-form,.park-guide-scroll,.information-set,.place-profile,.loom-stack-fragment){display:block!important;max-height:none!important;min-height:0!important;height:auto!important;overflow:visible!important;flex:none!important;columns:auto!important}
html body .loom-card-stack .loom-stack-flow :is(.map-step,.water-copy){padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important}
html body .loom-card-stack .loom-stack-unscroll{max-height:none!important;max-width:100%!important;height:auto!important;overflow:visible!important;-webkit-line-clamp:unset!important;line-clamp:unset!important}
html body .loom-card-stack .loom-stack-fragment>*{margin-bottom:10px}
html body .loom-card-stack .loom-stack-flow :is(h1,h2,h3,h4,dt,label){break-after:avoid-column}
html body .loom-card-stack .loom-stack-flow :is(button,label,input,textarea,select,figure,img,video,canvas,tr,.event-card,.post-two,.reaction-buttons){break-inside:avoid-column;max-width:100%!important;box-sizing:border-box}
/* Keep a post's identity and controls on the same card, instead of showing
   Edit/Withdraw alone on the next page. Oversize entries can still fragment. */
html body .loom-card-stack .loom-stack-flow :is(.post-mine-list>article,.post-actions,.block-property-nav){break-inside:avoid-column;page-break-inside:avoid}
html body .loom-card-stack .loom-stack-flow :is(p,li,dd){orphans:2;widows:2;overflow-wrap:anywhere}
html body .loom-card-stack .loom-stack-flow :is(img,video,canvas){max-height:min(180px,calc(var(--loom-stack-body-height) - 40px))!important;object-fit:contain}
html body .loom-card-stack .loom-stack-flow textarea{max-height:120px!important;min-height:70px!important;resize:none;overflow:auto!important}
html body .loom-card-stack .loom-stack-flow label{display:block}
html body .loom-card-stack .loom-stack-flow :is(input,select,textarea){font-size:16px!important}
html body .loom-card-stack .loom-stack-flow :is(ul,ol){padding-left:24px}
html body .loom-card-stack .loom-stack-flow table{width:100%;table-layout:fixed;font-size:14px;overflow-wrap:anywhere}
html body .loom-card-stack .loom-stack-flow :is(th,td){white-space:normal!important}
html body .loom-card-stack>.loom-stack-pages{position:static!important;display:flex!important;flex:0 0 48px;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding:6px 0 0;border-top:1px solid var(--map-border,#afc2b6);background:transparent;color:inherit}
html body .loom-card-stack .loom-stack-pages button{display:grid;place-items:center;width:64px;min-width:64px;min-height:44px;margin:0!important;padding:4px 10px!important;border:1px solid var(--map-border,#afc2b6);border-radius:12px;background:var(--map-active,#e4efe2);color:inherit;font:600 14px/1 system-ui;cursor:pointer}
html body .loom-card-stack .loom-stack-pages button:disabled{opacity:.32;cursor:default}
html body .loom-card-stack .loom-stack-pages span{font-size:14px;line-height:1.3}
html body .loom-card-stack :is(.loom-stack-pages button,.loom-stack-viewport):focus-visible{outline:2px solid #b38b43;outline-offset:-2px}
html body .loom-card-stack .loom-stack-head :is(.map-step-back,.map-detail-back){min-height:40px!important;margin:0 0 8px!important}

html body .loom-card-stack .loom-stack-fragment>button{display:block;width:100%;margin-bottom:8px}

/* Reading uses horizontal cards; entering information uses familiar vertical forms. */
html body .loom-stack-progress{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
html body .loom-stack-progress small{font-size:11px;line-height:1.2;color:var(--map-ink,#244b43);opacity:.7}
html body .loom-stack-progress small[hidden]{display:none}
html body .loom-card-stack .loom-stack-flow{will-change:transform}
html body .loom-scroll-form,
html body #app .loom-scroll-form,
html body #app #discovery-tray.loom-scroll-form{height:auto!important;max-height:calc(100dvh - 150px)!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior-y:contain;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch;box-sizing:border-box}
html body dialog.loom-scroll-form{max-height:calc(100dvh - 32px)!important}
@media(max-width:600px){
 html body .loom-card-stack{border-radius:22px!important}
 html body .loom-card-stack .loom-stack-pages{flex-basis:56px}
 html body .loom-card-stack .loom-stack-flow{font-size:16px;line-height:1.5}
}

html body #app .loom-card-stack .map-step-options{display:block!important;overflow:visible!important;white-space:normal!important}
html body #app .loom-card-stack .map-step-options>button{display:block!important;width:100%!important;min-width:0!important;margin:0 0 8px!important;white-space:normal!important}

/* Explicit feeds show a short preview; See more opens paginated details. */
html body .loom-card-stack.loom-semantic-stack>.loom-stack-viewport{overflow:hidden!important}
html body .loom-card-stack.loom-semantic-stack .loom-stack-flow{height:var(--loom-stack-body-height)!important;columns:auto!important;column-count:auto!important}

html body .loom-semantic-stack #news-map-browser article h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.25}
html body .loom-semantic-stack #news-map-browser article .post-body{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.4}
html body .loom-semantic-stack .loom-stack-flow>.map-step,html body .loom-semantic-stack .map-step-copy{height:100%!important}
html body .loom-semantic-stack .map-step>h2,html body .loom-semantic-stack .map-step-options{display:none!important}
html body .loom-semantic-stack #news-map-browser{display:flex;flex-direction:column;height:100%;min-height:0;gap:8px}
html body .loom-semantic-stack #news-map-browser>.news-area-label{flex:none}
html body .loom-semantic-stack #news-map-browser article{display:flex;flex-direction:column;flex:1;min-height:0;gap:6px}
html body .loom-semantic-stack #news-map-browser article :is(h3,p){margin:0}
html body .loom-semantic-stack #news-map-browser article .post-body{flex:1;min-height:0}
html body .loom-semantic-stack #news-map-browser article>button{flex:none;margin-top:auto}

/* These reading cards own horizontal gestures; forms keep native scrolling. */
html body .loom-card-stack>.loom-stack-viewport{touch-action:pinch-zoom;user-select:none;-webkit-user-select:none}
html body .loom-card-stack>.loom-stack-close{position:absolute!important;top:3px;right:5px;width:44px;height:44px;min-width:44px;padding:0!important;display:grid;place-items:center;border:0!important;background:transparent!important;color:var(--card-accent,#294b40)!important;font:400 28px/1 system-ui!important;z-index:4;cursor:pointer}

/* Explicit decks also flow into continuation cards when their real content is taller. */
html body #app .loom-card-stack .loom-stack-flow,
html body dialog.loom-card-stack .loom-stack-flow{column-count:1!important;column-gap:24px!important;column-fill:auto!important}
html body .loom-semantic-stack .loom-stack-flow [data-loom-card-deck],
html body .loom-semantic-stack .loom-stack-flow :is(.council-rows,.layer-stat-list,.civic-highlight){display:block!important;height:auto!important;min-height:0!important;overflow:visible!important}
html body .loom-card-stack .loom-stack-flow :is(button,a,strong,small){white-space:normal;overflow-wrap:anywhere;min-width:0}
html body #app #civic-meetings .council-rows :is(button,a){break-inside:avoid;display:block!important}
html body #app #civic-meetings .council-rows :is(button,a)>span:last-child{display:none}
html body #app #layer-summary .layer-stat-row{height:auto!important;min-height:44px}
html body #app #layer-summary .layer-stat-row :is(span,strong){display:block;-webkit-line-clamp:unset;overflow:visible}
html body .loom-card-stack .loom-stack-flow .loom-stack-fragment{break-inside:auto!important}
/* Each park fact and its description travel together across card boundaries. */
html body .loom-card-stack .park-guide-info>div{break-inside:avoid-column}
html body .loom-card-stack .park-guide-links{display:block!important}
html body .loom-card-stack .park-guide-links>a{display:block;margin-bottom:8px}
html body .loom-card-stack .park-guide-footer{display:block;break-inside:auto}
html body .loom-card-stack .park-guide-footer>button{display:block;width:100%;margin:0 0 8px!important}

/* Keep short cards compact and inner layouts in their own flow. */
html body .loom-card-stack .loom-stack-flow :is(.location-step-head,.business-card-heading){position:static!important;min-width:0;max-width:100%;height:auto!important}
html body .loom-card-stack .loom-stack-head :is(h2,h3){min-width:0;overflow-wrap:anywhere}
html body .loom-card-stack .loom-stack-pages{min-height:44px;flex-basis:44px!important;margin-top:6px;padding-top:4px}
html body .loom-card-stack .loom-stack-flow :is(p,figure){margin-bottom:8px}
/* Search forms bypass pagination and need the same bounded mobile footprint. */
@media(max-width:700px){
 html body #app #discovery-tray.loom-scroll-form:not(:has(.compact-menu-card)){left:12px!important;right:12px!important;top:auto!important;bottom:calc(82px + env(safe-area-inset-bottom,0px))!important;width:auto!important;max-width:calc(100% - 24px)!important;transform:none!important;min-height:0!important;height:auto!important;max-height: min(52dvh,calc(var(--visible-height,100dvh) - 190px))!important;padding:12px!important}
 html body #app #discovery-tray.loom-scroll-form>.map-step{padding:0;border:0;box-shadow:none;background:transparent}
 html body #app #discovery-tray.loom-scroll-form .map-step-back{margin-bottom:6px!important}
 html body #app #discovery-tray.loom-scroll-form .event-list{max-height:none;overflow:visible}
}
/* A place preview is superseded by an opened reading card. */
html body #app:has(#discovery-tray.open):not(.journey-details)>.hud-bottom{display:none!important}
