.ace-journey{max-width:1200px;margin:auto;padding:clamp(18px,3vw,36px);color:var(--shell-ink)}
.ace-event-memory{clear:both;padding:24px 0;border-top:1px solid var(--shell-line);color:var(--shell-ink)}
.ace-journey-view{min-width:0}.ace-journey-view h1,.ace-journey-view h2,.ace-journey-view h3{font-family:'Space Grotesk',sans-serif!important}
.ace-memory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:16px;margin-block:18px}
.ace-memory-card{min-width:0;overflow:hidden;border:1px solid var(--shell-line);background:var(--shell-card);border-radius:12px}
.ace-memory-card img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;display:block}.ace-memory-card__body{padding:16px}.ace-memory-card__body p{white-space:pre-wrap;overflow-wrap:anywhere}.ace-memory-card time,.ace-memory-visibility{font-size:12px;color:var(--shell-muted)}
.ace-memory-form{padding:18px;background:var(--shell-card);border:1px solid var(--shell-line);border-radius:12px;margin-block:18px;min-width:0}
.ace-memory-form>label{display:block;margin:12px 0}.ace-memory-form textarea,.ace-memory-form input[type=date],.ace-memory-form select{width:100%;max-width:100%;box-sizing:border-box;padding:12px;border:1px solid var(--shell-line);border-radius:8px;background:var(--shell-bg);color:var(--shell-ink);font:inherit}
.ace-memory-form fieldset{border:1px solid var(--shell-line);margin:18px 0;padding:14px;min-width:0}.ace-memory-form fieldset label{display:block;padding:8px 0}.ace-memory-form fieldset p{font-size:13px;color:var(--shell-muted)}
.ace-memory-photo-tools,.ace-memory-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.ace-memory-photo-tools{margin-block:16px}.ace-memory-file{display:block;padding:10px;border:1px solid var(--shell-line);border-radius:8px;max-width:100%}.ace-memory-file input{display:block;width:100%;max-width:220px;font-size:12px;margin-top:8px}
.ace-memory-preview,.ace-memory-camera video{display:block;width:100%;max-width:360px;aspect-ratio:1;object-fit:cover;border-radius:10px}.ace-memory-form figure{margin:16px 0}.ace-memory-form figcaption{color:var(--shell-muted);font-size:12px}
.ace-shell .ace-memory-checkin,.ace-shell .ace-memory-actions button[type=submit]{background:var(--shell-accent);color:var(--shell-bg);font-weight:600;min-height:44px}.ace-journey-view button{min-height:42px}.ace-journey-view nav{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ace-journey-map{height:360px;width:100%;margin-top:16px;border-radius:12px;overflow:hidden;isolation:isolate;background:var(--shell-card)}.ace-journey-pin{background:none;border:0}.ace-journey-pin span{display:grid;place-items:center;width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--shell-accent);color:var(--shell-bg);border:2px solid var(--shell-bg);box-shadow:0 2px 6px #0006;font-weight:700}.ace-journey-profile-link{display:block;padding:16px;color:var(--shell-accent);border-bottom:1px solid var(--shell-line)}
@media(max-width:600px){.ace-journey{padding:18px}.ace-memory-grid{grid-template-columns:1fr}.ace-memory-form{padding:14px}.ace-journey-map{height:300px}.ace-memory-photo-tools>label{width:100%}}

.ace-journey-pin b{transform:rotate(45deg);font:700 12px 'Space Grotesk',sans-serif}.ace-journey-map .leaflet-control a{background:var(--shell-card);color:var(--shell-ink)}.ace-journey-map .leaflet-control-attribution{background:var(--shell-panel);color:var(--shell-muted)}

.ace-memory-previews,.ace-memory-card__photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.ace-memory-card__photos figure{margin:0;min-width:0}.ace-memory-card__photos figcaption{padding:6px 8px;font-size:11px;color:var(--shell-muted)}.ace-memory-previews figure{min-width:0}.ace-memory-file input::file-selector-button{font:inherit;background:var(--shell-card);color:var(--shell-ink);border:1px solid var(--shell-line);border-radius:6px;padding:8px}
.ace-profile-dialog .ace-journey-view button{background:var(--shell-card);color:var(--shell-ink);border:1px solid var(--shell-line);border-radius:8px;padding:10px 12px;font:inherit;cursor:pointer}.ace-profile-dialog .ace-journey-view button:disabled{opacity:.5;cursor:default}.ace-profile-dialog .ace-journey-profile{padding:18px 0}.ace-profile-dialog .ace-journey-view button[type=submit]{background:var(--shell-accent);color:var(--shell-bg)}

/* A camera view outside the hub rails, with an optional steady selfie light. */
.ace-memory-camera-dialog{position:fixed;inset:0;z-index:2147483000;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:16px;overflow:auto;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:#13191b;color:#f7f7f2;font:16px 'Space Grotesk',sans-serif}
.ace-memory-camera-dialog.is-lit{background:#fff;color:#14191b}
.ace-memory-camera-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;width:100%}
.ace-memory-camera-controls label{display:flex;align-items:center;gap:8px;max-width:100%}
.ace-memory-camera-dialog select,.ace-memory-camera-dialog button{font:inherit;border:1px solid #737c7c;border-radius:8px;padding:12px;background:#20292b;color:#fff;min-height:46px;max-width:100%;cursor:pointer}
.ace-memory-camera-dialog.is-lit select,.ace-memory-camera-dialog.is-lit button{background:#fff;color:#14191b;border-color:#555}
.ace-memory-camera-dialog .ace-memory-camera{width:min(100%,560px);margin:auto;min-height:0;flex:0 1 auto}
.ace-memory-camera-dialog .ace-memory-camera video{display:block;width:100%;max-height:60dvh;object-fit:contain;background:#000;border-radius:8px}
.ace-memory-camera-dialog.is-lit .ace-memory-camera{width:min(68%,380px)}
.ace-memory-camera-dialog p{max-width:600px;text-align:center;margin:0}
.ace-memory-camera-dialog button.ace-memory-shutter{background:#efb665;color:#14191b;border-color:#efb665;font-weight:700;min-width:160px}
.ace-memory-camera-dialog button:disabled{opacity:.5;cursor:default}
.ace-memory-camera-dialog :focus-visible{outline:3px solid #dc920c;outline-offset:3px}
.ace-memory-screen-light input{width:22px;height:22px;accent-color:#ac6500}

/* TalkFuse-style photosets and the shared middle-panel photo viewer. */
.ace-photo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-block:16px;font-size:12px;color:var(--shell-muted)}
.ace-photo-modes{display:inline-flex;border:1px solid var(--shell-line);padding:3px;border-radius:999px;background:var(--shell-bg)}
.ace-journey-view .ace-photo-modes button{display:flex;align-items:center;gap:7px;border:0;border-radius:999px!important;background:transparent;color:var(--shell-ink);padding:9px 16px;transition:background .16s,color .16s}
.ace-journey-view .ace-photo-modes button[aria-pressed=true]{background:var(--shell-accent);color:var(--shell-bg)}
.ace-photo-masonry{columns:3 170px;column-gap:10px}.ace-photo-masonry figure{break-inside:avoid;margin:0 0 12px}.ace-photo-masonry figcaption{display:grid;gap:3px;padding:8px;font-size:12px;color:var(--shell-muted)}
.ace-journey-view button.ace-photo-tile{display:block;min-height:0;width:100%;padding:0;border:0;border-radius:8px;overflow:hidden;background:var(--shell-card);cursor:zoom-in}.ace-photo-tile img{display:block;width:100%;height:auto}
.ace-memory-card__photos{display:block;columns:2;column-gap:6px}.ace-memory-card__photos figure{break-inside:avoid;margin-bottom:6px}.ace-memory-card__photos:has(figure:only-child){columns:1}.ace-memory-card img{aspect-ratio:auto;object-fit:contain}
.ace-photo-viewer{position:fixed;inset:0;z-index:2147482000;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,30%);background:var(--shell-bg,#14191b);color:var(--shell-ink,#f6f6ef);border:1px solid var(--shell-line,#384340);font-family:'Space Grotesk',sans-serif;overflow:hidden;isolation:isolate}
.ace-photo-stage{min-width:0;min-height:0;display:flex;flex-direction:column;background:#0b0d0e;color:#fff;padding:48px 14px 14px}.ace-photo-image{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.ace-photo-image img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;aspect-ratio:auto}
.ace-photo-details{overflow:auto;min-width:0;padding:60px 22px 22px;border-left:1px solid var(--shell-line);background:var(--shell-panel,var(--shell-bg));overflow-wrap:anywhere}.ace-photo-details h2{font-size:22px;margin:8px 0 16px}.ace-photo-details p{white-space:pre-wrap}.ace-photo-details>a{display:block;margin-block:16px;color:var(--shell-accent)}.ace-photo-uploaded,.ace-photo-byline{font-size:12px;color:var(--shell-muted)}
.ace-photo-viewer button{font:inherit;min-height:44px;min-width:44px;padding:8px;border:1px solid var(--shell-line);border-radius:8px;background:var(--shell-card);color:var(--shell-ink);cursor:pointer}.ace-photo-viewer button:disabled{opacity:.4;cursor:default}
.ace-photo-viewer .ace-photo-close{position:absolute;top:10px;right:12px;border-radius:50%;z-index:2}
.ace-photo-filmstrip{display:flex!important;align-items:center;gap:8px;margin:14px 0 0;flex:none}.ace-photo-thumbs{display:flex;gap:6px;min-width:0;overflow:auto;flex:1;scrollbar-width:thin}.ace-photo-viewer .ace-photo-thumbs button{padding:2px;width:58px;height:58px;flex:none;background:#181c1e;border:2px solid transparent}.ace-photo-thumbs img{width:100%;height:100%;object-fit:cover}.ace-photo-viewer .ace-photo-thumbs button[aria-current=true]{border-color:var(--shell-accent)}.ace-photo-count{text-align:center;font-size:12px;margin:10px 0 0}.ace-photo-sets{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}
@media(max-width:900px){.ace-photo-viewer{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(150px,28%);height:100dvh}.ace-photo-details{padding:16px 20px;border-left:0;border-top:1px solid var(--shell-line)}.ace-photo-stage{padding-top:max(52px,env(safe-area-inset-top))}.ace-photo-masonry{columns:2 140px}}
@media(prefers-reduced-motion:reduce){.ace-photo-modes button{transition:none!important}}

.ace-journey-date-filters{display:flex;flex-wrap:wrap;gap:12px;margin-block:16px}.ace-journey-date-filters label{display:grid;gap:6px}.ace-journey-date-filters input,.ace-journey-date-filters select{min-height:44px;padding:10px;border:1px solid var(--shell-line);background:var(--shell-card);color:var(--shell-ink);border-radius:8px;font:inherit;max-width:180px}.ace-journey-summary{border:1px solid var(--shell-line);padding:18px;margin-block:16px;background:var(--shell-card);border-radius:12px}.ace-journey-summary dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ace-journey-summary dd{margin:6px 0;font-size:28px;font-weight:700;color:var(--shell-accent)}.ace-journey-summary dt{font-size:12px;color:var(--shell-muted)}@media(max-width:600px){.ace-journey-summary dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
