/* Shared controls; each room retains its own layout and materials. */
:root{--space-1:8px;--space-2:16px;--space-3:24px;--space-4:40px;--control-size:44px}
.icon-button,.gallery-layout,.save-button,.search-head button{min-width:var(--control-size);min-height:var(--control-size);display:inline-flex;align-items:center;justify-content:center}
.icon-button svg{width:22px;height:22px}.filter-chips button,.timeline-year-nav button,.journey-tools>summary,.journey-filter-options>summary{min-height:44px}
button,input,select,textarea,a{touch-action:manipulation}button:active{filter:brightness(.93)}button:disabled{cursor:not-allowed}
.page-toolbar{gap:16px}.page-description{font-size:15px;line-height:1.9;max-width:42em}.result-count,.small-meta,.article-date,.timeline-meta,.event-category{font-size:12px}
.article-copy>span{font-size:14px;line-height:1.9}.reader p:first-of-type{font:17px/2 var(--serif);color:inherit;border:0;padding:0}.reader p{font:17px/2 var(--serif)}.reader{max-width:760px;margin-inline:auto}.reader-meta{font-size:13px}.dialog-bar{min-height:60px;font-size:13px}
.reader h1,.project-detail h1,.collection-detail h1{text-wrap:balance}.reader a{text-decoration:underline;text-underline-offset:3px}
.dialog-share{display:flex;gap:8px;align-items:center}.dialog-share button:first-child{font-size:13px;min-height:44px;padding-inline:12px;border:1px solid var(--line);border-radius:4px}
.lightbox-stage{position:relative}.photo-load-status{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font-size:13px;padding:6px 12px;color:#fff;background:#1c2325e6;border-radius:4px}.photo-load-status:empty{display:none}.lightbox-stage[aria-busy=true] img{opacity:.4}
.photo-retry{min-height:44px;color:#fff;border:1px solid #abb8aa;padding:6px 14px}.photo-dialog .lightbox-caption #lightbox-description,.photo-dialog .lightbox-caption #lightbox-caption{max-height:none;overflow:visible;font-size:14px}
.project-source{margin-top:24px;border-top:1px solid var(--line);padding-top:12px}.project-source summary{cursor:pointer;min-height:44px;font-size:15px;display:list-item}.project-source .code-heading{margin-top:12px}.project-source pre{max-height:320px;overflow:auto}
.search-hint{display:flex;justify-content:space-between;gap:12px;font-size:13px}.search-retry{min-height:44px;text-decoration:underline}.search-result{min-height:64px}.search-result small{font-size:12px}.search-empty{font-size:14px}
.motion-enabled [data-motion=image] .photo-open img{clip-path:none!important;animation:none!important}.motion-enabled [data-motion=image] figcaption,.motion-enabled [data-motion=object] .collection-visual>span,.motion-enabled [data-motion=timeline] .timeline-content{animation:none!important;opacity:1;translate:none;rotate:none}
.motion-enabled .hero-photo-main,.motion-enabled .hero-photo-small{transform:none}.hero-orbit,.hero-star{animation:none!important}.motion-enabled dialog[open]{animation-duration:180ms}.motion-enabled dialog[open]::backdrop{animation-duration:150ms}
.stage-navigation summary{cursor:pointer;padding:8px 0;font-size:13px;min-height:44px}.stage-navigation .stage-preferences{margin-top:12px}
@media(max-width:800px){.site-shell{padding-inline:24px}.header-actions{gap:2px}.site-header{gap:16px}.header-author{display:none}.hero-description{font-size:15px}.section-heading p{font-size:14px;line-height:1.8}.project-info p,.collection-summary,.timeline-content p{font-size:14px}.content-tags .tag{font-size:12px}.journey-workspace .journey-entry time,.journey-workspace .journey-entry small,.journey-meta,.journey-workspace .journey-selected-label{font-size:12px}}
@media(max-width:600px){.site-shell{padding-inline:20px}.site-header .wordmark{font-size:24px}.site-header{gap:8px}.header-actions{gap:0}.site-nav{left:-20px;right:-20px}.site-nav a{min-height:44px}.page-description{font-size:15px}.article-copy>span,.featured-list .article-copy>span{font-size:14px}.article-date,.article-date small,.result-count{font-size:12px}.filter-chips{gap:4px}.filter-chips button{font-size:13px;padding:8px 12px}.reader,.project-detail,.collection-detail{padding:24px 20px 36px}.reader p{font-size:17px;line-height:2}.content-dialog{width:100%;max-width:100%;max-height:100dvh;height:100dvh;border-radius:0;margin:0}.photo-dialog{max-height:96dvh;height:96dvh}.search-head input{font-size:16px}.search-head{padding:12px}.search-result>span:first-child{font-size:15px}.search-hint{font-size:12px}.gallery-controls{gap:8px}.timeline-tag-filter,.timeline-important-filter{font-size:13px;min-height:44px}.photo-grid.compact figcaption{font-size:14px}.photo-grid.compact figcaption small{font-size:12px}body[data-page=home] .motion-toggle::after{display:none}body[data-page=home] .motion-toggle{padding:0;min-width:44px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.menu-toggle{display:none}body[data-page=home] .motion-toggle{display:inline-flex}
@media(max-width:1100px){.site-header{position:relative;flex-wrap:nowrap;height:82px;padding-block:0}.header-actions{margin-left:auto}.menu-toggle{display:inline-flex}.site-nav,body[data-page=home] .site-nav{display:none;position:absolute;top:100%;left:0;right:0;width:auto;order:initial;background:var(--paper);padding:16px 24px;margin:0;border-bottom:1px solid var(--line);box-shadow:0 12px 20px #22331112;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;z-index:60}.site-nav.open,body[data-page=home] .site-nav.open{display:grid}.site-nav a{min-height:44px;font-size:14px;text-align:center}.site-header{z-index:50}}

.shelf-item .collection-info h3,body[data-page=home] .home-collection .shelf-item .collection-info h3{padding-right:48px}.primary-link{min-height:44px}.travel-player button,.travel-player select,.map-tools button,.memory-controls button,.globe-modes button{min-height:44px;min-width:44px}.travel-player select{font-size:14px}.memory-description{font-size:14px;line-height:1.8}.journey-filter-fields input,.journey-filter-fields select{min-height:44px}

.header-actions .icon-button{min-width:44px;min-height:44px;flex-shrink:0}

html:not(.motion-off) .page-intro h1{animation:none}.page-doodle{pointer-events:none}

.journey-workspace .journey-entry time,.journey-workspace .journey-entry small,.journey-workspace .journey-open,.journey-caption .map-badge,.journey-meta{font-size:12px}.travel-player button,.travel-player select,.arrival-duration{font-size:13px}.journey-workspace .journey-filter-place input{font-size:14px}
